コード例 #1
0
ファイル: __main__.py プロジェクト: typoman/fontmake
def _loadFeatureWriters(parser, specs):
    feature_writers = []
    for s in specs:
        if s == "None":
            # magic value that means "don't generate any features!"
            return []
        try:
            feature_writers.append(loadFeatureWriterFromString(s))
        except Exception as e:
            parser.error("Failed to load --feature-writer:\n  {}: {}".format(
                type(e).__name__, e))
    return feature_writers
コード例 #2
0
def test_loadFeatureWriterFromString_valid(spec, FontClass):
    writer = loadFeatureWriterFromString(spec)
    assert writer.tableTag in {"GSUB", "GPOS"}
    assert callable(writer.write)
コード例 #3
0
logging.basicConfig(level=logging.INFO)

parser = argparse.ArgumentParser(
    description="Apply feature writers to a UFO file")
parser.add_argument("--output",
                    "-o",
                    metavar="OUTPUT",
                    help="output file name")
parser.add_argument("ufo", metavar="UFO", help="UFO file")
parser.add_argument(
    "writers",
    metavar="WRITER",
    nargs="*",
    help="list of feature writers to enable",
)

args = parser.parse_args()
if not args.output:
    args.output = makeOutputFileName(args.ufo)

ufo = loader(args.ufo)
writers = [loadFeatureWriterFromString(w) for w in args.writers]
compiler = FeatureCompiler(ufo, featureWriters=writers or None)
compiler.setupFeatures()
buf = StringIO()
compiler.writeFeatures(buf)
ufo.features.text = buf.getvalue()

logger.info("Written on %s" % args.output)
ufo.save(args.output)