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
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
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