예제 #1
0
def compare_cmap_data_files(
    base_file, target_file, scripts, except_scripts, opts=None):
  base_cmap_data = cmap_data.read_cmap_data_file(base_file)
  target_cmap_data = cmap_data.read_cmap_data_file(target_file)
  compare = compare_cmap_data(
      base_cmap_data, target_cmap_data, scripts, except_scripts, opts)
  return compare, base_cmap_data, target_cmap_data
예제 #2
0
def compare_cmap_data_files(base_file, target_file, scripts, ranges,
                            except_scripts, except_ranges, no_additions,
                            no_removals):
    base_cmap_data = cmap_data.read_cmap_data_file(base_file)
    target_cmap_data = cmap_data.read_cmap_data_file(target_file)
    compare = compare_cmap_data(base_cmap_data, target_cmap_data, scripts,
                                ranges, except_scripts, except_ranges,
                                no_additions, no_removals)
    return compare, base_cmap_data, target_cmap_data
예제 #3
0
def compare_cmap_data_files(base_file, target_file, scripts, ranges,
                            except_scripts, except_ranges,
                            no_additions, no_removals):
  base_cmap_data = cmap_data.read_cmap_data_file(base_file)
  target_cmap_data = cmap_data.read_cmap_data_file(target_file)
  compare = compare_cmap_data(
      base_cmap_data, target_cmap_data, scripts, ranges,
      except_scripts, except_ranges, no_additions, no_removals)
  return compare, base_cmap_data, target_cmap_data
예제 #4
0
def main():
  default_cmap = '[tools]/nototools/data/noto_cmap_phase3.xml'
  default_namepats = ['cps_%s.txt']

  epilog = """If a namepat contains the string "%s" then the script id will
  be substituted for it. If one namepat is provided it is used for all scripts,
  otherwise there should be as many namepats as there are scripts."""

  parser = argparse.ArgumentParser(epilog=epilog)
  parser.add_argument(
      '-c', '--cmap_file', help='cmap data file to use (default %s)' %
      default_cmap, default=default_cmap, metavar='file')
  parser.add_argument(
      '-d', '--dest_dir', help='directory for output, (defaults to current '
      'directory)', metavar='dir', default='.')
  parser.add_argument(
      '-s', '--scripts', help='script ids of data to output', nargs='+',
      metavar='id', required=True)
  parser.add_argument(
      '-n', '--namepats', help='name patterns used to generate output '
      'filenames (default "cps_%%s.txt")',
      default=default_namepats, metavar='npat', nargs='+')
  args = parser.parse_args()

  cmap_filepath = tool_utils.resolve_path(args.cmap_file)
  cmapdata = cmap_data.read_cmap_data_file(cmap_filepath)
  generate(cmapdata, args.dest_dir, args.scripts, args.namepats)
예제 #5
0
def xml_to_csv(xml_file, csv_file, scripts, exclude_scripts):
  data = cmap_data.read_cmap_data_file(xml_file)
  csv_data = csv_from_cmap_data(data, scripts, exclude_scripts)
  if csv_file:
    with open(csv_file, 'w') as f:
      f.write(csv_data)
  else:
    print csv_data
예제 #6
0
def xml_to_csv(xml_file, csv_file, scripts, exclude_scripts):
    data = cmap_data.read_cmap_data_file(xml_file)
    csv_data = csv_from_cmap_data(data, scripts, exclude_scripts)
    if csv_file:
        with open(csv_file, 'w') as f:
            f.write(csv_data)
    else:
        print csv_data
예제 #7
0
def _covered_cps(cmap_file):
    all_cps = set()
    tree = cmap_data.read_cmap_data_file(cmap_file)
    for rowdata in tree.table.rows:
        if rowdata.script == 'EXCL':
            continue
        cps = tool_utils.parse_int_ranges(rowdata.ranges)
        all_cps |= cps
    return all_cps
예제 #8
0
def _covered_cps(cmap_file):
  all_cps = set()
  tree = cmap_data.read_cmap_data_file(cmap_file)
  for rowdata in tree.table.rows:
    if rowdata.script == 'EXCL':
      continue
    cps = tool_utils.parse_int_ranges(rowdata.ranges)
    all_cps |= cps
  return all_cps
예제 #9
0
def block_coverage(
    cmap_file, start=0, limit=0x20000, only_scripts=None, details=0,
    summary=False):
  data = cmap_data.read_cmap_data_file(cmap_file)
  cp_to_scripts, all_scripts = _create_cp_to_scripts(data, only_scripts)
  defined_cps = unicode_data.defined_characters(version=9.0)

  if summary:
    _summarize_blocks(
        start, limit, defined_cps, cp_to_scripts, all_scripts)
  else:
    _list_blocks(
        start, limit, defined_cps, cp_to_scripts, all_scripts, only_scripts,
        details)
예제 #10
0
def block_coverage(
    cmap_file, start=0, limit=0x20000, only_scripts=None, details=0,
    summary=False):
  data = cmap_data.read_cmap_data_file(cmap_file)
  cp_to_scripts, all_scripts = _create_cp_to_scripts(data, only_scripts)
  defined_cps = unicode_data.defined_characters(version=9.0)

  if summary:
    _summarize_blocks(
        start, limit, defined_cps, cp_to_scripts, all_scripts)
  else:
    _list_blocks(
        start, limit, defined_cps, cp_to_scripts, all_scripts, only_scripts,
        details)
예제 #11
0
파일: gen_cplist.py 프로젝트: hmr/nototools
def main():
    default_cmap = "[tools]/nototools/data/noto_cmap_phase3.xml"
    default_namepats = ["cps_%s.txt"]

    epilog = """If a namepat contains the string "%s" then the script id will
  be substituted for it. If one namepat is provided it is used for all scripts,
  otherwise there should be as many namepats as there are scripts."""

    parser = argparse.ArgumentParser(epilog=epilog)
    parser.add_argument(
        "-c",
        "--cmap_file",
        help="cmap data file to use (default %s)" % default_cmap,
        default=default_cmap,
        metavar="file",
    )
    parser.add_argument(
        "-d",
        "--dest_dir",
        help="directory for output, (defaults to current " "directory)",
        metavar="dir",
        default=".",
    )
    parser.add_argument(
        "-s",
        "--scripts",
        help="script ids of data to output",
        nargs="+",
        metavar="id",
        required=True,
    )
    parser.add_argument(
        "-n",
        "--namepats",
        help="name patterns used to generate output "
        'filenames (default "cps_%%s.txt")',
        default=default_namepats,
        metavar="npat",
        nargs="+",
    )
    args = parser.parse_args()

    cmap_filepath = tool_utils.resolve_path(args.cmap_file)
    cmapdata = cmap_data.read_cmap_data_file(cmap_filepath)
    generate(cmapdata, args.dest_dir, args.scripts, args.namepats)
예제 #12
0
def compare_interscript_data_file(base_file, scripts, opts=None):
    base_cmap_data = cmap_data.read_cmap_data_file(base_file)
    compare = compare_interscript_data(base_cmap_data, scripts, opts)
    return compare, base_cmap_data
예제 #13
0
def get_cps_from_cmap_data_file(data_file):
  cps = set()
  data = cmap_data.read_cmap_data_file(data_file)
  for row in data.table.rows:
    cps |= tool_utils.parse_int_ranges(row.ranges)
  return cps
예제 #14
0
def compare_interscript_data_file(base_file, scripts, opts=None):
  base_cmap_data = cmap_data.read_cmap_data_file(base_file)
  compare = compare_interscript_data(base_cmap_data, scripts, opts)
  return compare, base_cmap_data
예제 #15
0
def get_cps_from_cmap_data_file(data_file):
  cps = set()
  data = cmap_data.read_cmap_data_file(data_file)
  for row in data.table.rows:
    cps |= tool_utils.parse_int_ranges(row.ranges)
  return cps