def _InconsistentSubsetSupport(file1, file2, subsetcps):
    """Returns difference in number of codepoints supported.

  Args:
    file1: Name of font file
    file2: Name of font file
    subsetcps: Complete set of codepoints to be supported
  Returns:
    Difference in number of codepoints between file1 and file2.
  """
    supportcps1 = len(subsetcps.intersection(fonts.CodepointsInFont(file1)))
    supportcps2 = len(subsetcps.intersection(fonts.CodepointsInFont(file2)))
    return abs(supportcps1 - supportcps2)
def main(argv):
    if len(argv) != 2 or not os.path.isdir(argv[1]):
        sys.exit('Must have one argument, a directory containing font files.')

    dirpath = argv[1]
    cps = set()
    for f in _GetFontFiles(dirpath):
        cps.update(fonts.CodepointsInFont(os.path.join(dirpath, f)))

    for f in _GetFontFiles(dirpath):
        diff = cps - fonts.CodepointsInFont(os.path.join(dirpath, f))
        if bool(diff):
            print('%s failed' % (f))
            for c in diff:
                print('0x%04X' % (c))
        else:
            print('%s passed' % (f))
示例#3
0
def _GetSampleGlyphs(fontfile):
    codepoints = fonts.CodepointsInFont(fontfile)
    for section in unicode_sections.DATA:
        supported = []
        for codepoint in unicode_sections.DATA[section]:
            if len(codepoint) == 0: continue
            if _Ordinal(codepoint) in codepoints:
                supported.append(codepoint)
        if len(supported) > 0:
            yield section, ' '.join(supported)
示例#4
0
def DiffCoverage(font_filename1, font_filename2, subset):
  """Prints a comparison of the coverage of a given subset by two fonts.

  Args:
    font_filename1: The first font to compare.
    font_filename2: The second font to compare.
    subset: The lowercase name of the subset to compare coverage of.
  """
  f1cps = fonts.CodepointsInFont(font_filename1)
  f2cps = fonts.CodepointsInFont(font_filename2)

  if subset != 'all':
    subset_cps = fonts.CodepointsInSubset(subset)
    f1cps &= subset_cps
    f2cps &= subset_cps
  else:
    subset_cps = None

  subset_cp_str = ('/%d' % len(subset_cps)) if subset_cps is not None else ''

  print '  %s %+d (%d%s => %d%s)' % (
      subset, len(f2cps) - len(f1cps), len(f1cps), subset_cp_str, len(f2cps),
      subset_cp_str)
def main(argv):
  if len(argv) < 2:
    sys.exit('Must specify one or more font files.')

  cps = set()
  for filename in argv[1:]:
    if not os.path.isfile(filename):
      sys.exit('%s is not a file' % filename)
    cps |= fonts.CodepointsInFont(filename)

  for cp in sorted(cps):
    show_char = ''
    if FLAGS.show_char:
      show_char = (' ' + unichr(cp).strip() + ' ' +
                   unicodedata.name(unichr(cp), ''))
    show_subset = ''
    if FLAGS.show_subsets:
      show_subset = ' subset:%s' % ','.join(fonts.SubsetsForCodepoint(cp))

    print(u'0x%04X%s%s' % (cp, show_char, show_subset))