def symbology(s):
 symbols = sorted((ord(c) for c in s))
 current_charset = 0
 char_tally = Counter()
 for symbol in symbols:
  while (CHARSET_RANGES[current_charset].end < symbol):
   current_charset += 1
  if (CHARSET_RANGES[current_charset].start <= symbol):
   name = CHARSET_RANGES[current_charset].name
  else:
   name = 'Unknown'
  char_tally[name] += 1
 return char_tally

def symbology ( s ) : symbols = sorted ( ( ord ( c ) for c in s ) ) current_charset = 0 char_tally = Counter ( ) for symbol in symbols : while ( CHARSET_RANGES [ current_charset ] . end < symbol ) : current_charset += 1 if ( CHARSET_RANGES [ current_charset ] . start <= symbol ) : name = CHARSET_RANGES [ current_charset ] . name else : name = 'Unknown' char_tally [ name ] += 1 return char_tally
return a count of what unicode charsets the string contains .