| 
				
				
				
				 | 
			
			 | 
			@@ -0,0 +1,13 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			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')]) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  |