示例#1
0
def _get_script_required(script,
                         unicode_version,
                         noto_phase,
                         unicode_only=False,
                         verbose=False):
    needed_chars = set()
    if script == "Zsye":  # Emoji
        # TODO: Check emoji coverage
        if not unicode_only:
            needed_chars = _emoji_pua_set()  # legacy PUA for android emoji
    elif script == "Zmth":  # Math
        if not unicode_only:
            needed_chars = _math_set()
    elif script == "Zsym":  # Symbols
        if not unicode_only:
            needed_chars = _symbol_set()
    elif script == "LGC":
        needed_chars = (unicode_data.defined_characters(
            scr="Latn", version=unicode_version)
                        | unicode_data.defined_characters(
                            scr="Grek", version=unicode_version)
                        | unicode_data.defined_characters(
                            scr="Cyrl", version=unicode_version))
        if not unicode_only:
            needed_chars -= _symbol_set()
            needed_chars -= _cjk_set()
    elif script == "Aran":
        if unicode_only:
            needed_chars = unicode_data.defined_characters(
                scr="Arab", version=unicode_version)
        else:
            needed_chars = noto_data.urdu_set()
    elif script in ["Hans", "Hant", "Jpan", "Kore"]:
        needed_chars = _cjk_set()
    else:
        needed_chars = unicode_data.defined_characters(scr=script,
                                                       version=unicode_version)
        if not unicode_only:
            needed_chars -= _symbol_set()

    if not unicode_only:
        needed_chars |= noto_data.get_extra_characters_needed(
            script, noto_phase)
        try:
            needed_chars |= set(
                opentype_data.SPECIAL_CHARACTERS_NEEDED[script])
        except KeyError:
            pass
        needed_chars -= noto_data.get_characters_not_needed(script, noto_phase)

    if not unicode_only:
        needed_chars |= {0, 0xD, 0x20}

    if verbose:
        sys.stderr.write(script + "\n")

    needed_chars &= unicode_data.defined_characters(version=unicode_version)

    return needed_chars
示例#2
0
def _get_script_required(script,
                         unicode_version,
                         noto_phase,
                         unicode_only=False,
                         verbose=False):
    needed_chars = set()
    if script == 'Zsye':  # Emoji
        # TODO: Check emoji coverage
        if not unicode_only:
            needed_chars = _emoji_pua_set()  # legacy PUA for android emoji
    elif script == 'Zmth':  # Math
        if not unicode_only:
            needed_chars = _math_set()
    elif script == 'Zsym':  # Symbols
        if not unicode_only:
            needed_chars = _symbol_set()
    elif script == 'LGC':
        needed_chars = (unicode_data.defined_characters(
            scr='Latn', version=unicode_version)
                        | unicode_data.defined_characters(
                            scr='Grek', version=unicode_version)
                        | unicode_data.defined_characters(
                            scr='Cyrl', version=unicode_version))
        if not unicode_only:
            needed_chars -= _symbol_set()
            needed_chars -= _cjk_set()
    elif script == "Aran":
        if unicode_only:
            needed_chars = unicode_data.defined_characters(
                scr='Arab', version=unicode_version)
        else:
            needed_chars = noto_data.urdu_set()
    elif script in ['Hans', 'Hant', 'Jpan', 'Kore']:
        needed_chars = _cjk_set()
    else:
        needed_chars = unicode_data.defined_characters(scr=script,
                                                       version=unicode_version)
        if not unicode_only:
            needed_chars -= _symbol_set()

    if not unicode_only:
        needed_chars |= noto_data.get_extra_characters_needed(
            script, noto_phase)
        try:
            needed_chars |= set(
                opentype_data.SPECIAL_CHARACTERS_NEEDED[script])
        except KeyError:
            pass
        needed_chars -= noto_data.get_characters_not_needed(script, noto_phase)

    if not unicode_only:
        needed_chars |= {0, 0xd, 0x20}

    if verbose:
        sys.stderr.write(script + '\n')

    needed_chars &= unicode_data.defined_characters(version=unicode_version)

    return needed_chars
示例#3
0
def _get_script_required(
    script, unicode_version, noto_phase, unicode_only=False, verbose=False):
  needed_chars = set()
  if script == 'Zsye':  # Emoji
    # TODO: Check emoji coverage
    if not unicode_only:
      needed_chars = _emoji_pua_set()  # legacy PUA for android emoji
  elif script == 'Zmth':  # Math
    if not unicode_only:
      needed_chars = _math_set()
  elif script == 'Zsym':  # Symbols
    if not unicode_only:
      needed_chars = _symbol_set()
  elif script == 'LGC':
    needed_chars = (
        unicode_data.defined_characters(scr='Latn', version=unicode_version)
        | unicode_data.defined_characters(scr='Grek', version=unicode_version)
        | unicode_data.defined_characters(scr='Cyrl', version=unicode_version))
    if not unicode_only:
      needed_chars -= _symbol_set()
      needed_chars -= _cjk_set()
  elif script == "Aran":
    if unicode_only:
      needed_chars = unicode_data.defined_characters(
          scr='Arab', version=unicode_version)
    else:
      needed_chars = noto_data.urdu_set()
  elif script in ['Hans', 'Hant', 'Jpan', 'Kore']:
      needed_chars = _cjk_set()
  else:
    needed_chars = unicode_data.defined_characters(
        scr=script, version=unicode_version)
    if not unicode_only:
      needed_chars -= _symbol_set()

  if not unicode_only:
    needed_chars |= noto_data.get_extra_characters_needed(script, noto_phase)
    try:
      needed_chars |= set(opentype_data.SPECIAL_CHARACTERS_NEEDED[script])
    except KeyError:
      pass
    needed_chars -= noto_data.get_characters_not_needed(script, noto_phase)

  if not unicode_only:
    needed_chars |= set([0, 0xd, 0x20])

  if verbose:
    print >> sys.stderr, script,

  needed_chars &= unicode_data.defined_characters(version=unicode_version)

  return needed_chars