parameters: (line)
docstring: Determines the width of the line in column positions.
  
    Args:
      line: A string, which may be a Unicode string.
  
    Returns:
      The width of the line in column positions, accounting for Unicode
      combining characters and wide characters.
docstring_summary: Determines the width of the line in column positions.
docstring_tokens: Determines the width of the line in column positions .
function: def GetLineWidth(line):
    """Determines the width of the line in column positions.
  
    Args:
      line: A string, which may be a Unicode string.
  
    Returns:
      The width of the line in column positions, accounting for Unicode
      combining characters and wide characters.
    """
    if isinstance(line, unicode):
      width = 0
      for uc in unicodedata.normalize('NFC', line):
        if unicodedata.east_asian_width(uc) in ('W', 'F'):
          width += 2
        elif not unicodedata.combining(uc):
          width += 1
      return width
    else:
      return len(line)
function_tokens: def GetLineWidth ( line ) : if isinstance ( line , unicode ) : width = 0 for uc in unicodedata . normalize ( 'NFC' , line ) : if unicodedata . east_asian_width ( uc ) in ( 'W' , 'F' ) : width += 2 elif not unicodedata . combining ( uc ) : width += 1 return width else : return len ( line )