예제 #1
0
def find_font_features(postscript_name: str) -> Tuple[str, ...]:
    pat = fc_match_postscript_name(postscript_name)

    if pat.get('postscript_name') != postscript_name or 'fontfeatures' not in pat:
        return ()

    features = []
    for feat in pat['fontfeatures']:
        try:
            parsed = parse_font_feature(feat)
        except ValueError:
            log_error('Ignoring invalid font feature: {}'.format(feat))
        else:
            features.append(FontFeature(feat, parsed))

    return tuple(features)
예제 #2
0
파일: utils.py 프로젝트: dandycheung/kitty
def font_features(val: str) -> Iterable[Tuple[str, Tuple[FontFeature, ...]]]:
    if val == 'none':
        return
    parts = val.split()
    if len(parts) < 2:
        log_error(f"Ignoring invalid font_features {val}")
        return
    if parts[0]:
        features = []
        for feat in parts[1:]:
            try:
                parsed = defines.parse_font_feature(feat)
            except ValueError:
                log_error(f'Ignoring invalid font feature: {feat}')
            else:
                features.append(FontFeature(feat, parsed))
        yield parts[0], tuple(features)