import unicodedata class CommonModule: @staticmethod def is_wide (c: str) -> bool: return unicodedata.east_asian_width (c) in ['F', 'W', 'A'] @classmethod def string_width_per_pt (cls, string: str) -> float: return sum ([1 if cls.is_wide (c) else .5 for c in string.decode ('utf-8')])