def main(): parser = argparse.ArgumentParser( prog="sfd2ufo", description="Convert FontForge fonts to UFO.") parser.add_argument("sfdfile", metavar="FILE", help="input font to process") parser.add_argument("ufofile", metavar="FILE", help="output font to write") parser.add_argument( "--ufo-anchors", action="store_true", help="output UFO anchors instead of writing them to feature file", ) parser.add_argument( "--ufo-kerning", action="store_true", help="output UFO kerning instead of writing it to feature file", ) parser.add_argument("--minimal", action="store_true", help="output enough UFO to build the font") args = parser.parse_args() font = Font() parser = SFDParser( args.sfdfile, font, args.ufo_anchors, args.ufo_kerning, args.minimal, ) parser.parse() font.save(args.ufofile, overwrite=True, validate=False)
def test_dataset(tmp_path: Path) -> None: font = Font() font.data["test.png"] = b"123" font.data["directory/test2.png"] = b"456" font_path = tmp_path / "a.ufo" font.save(font_path) font = Font.open(font_path) assert font.data["test.png"] == b"123" assert font.data["directory/test2.png"] == b"456"
def test_imageset(tmp_path: Path) -> None: font = Font() font.images["test.png"] = b"\x89PNG\r\n\x1a\n123" font.images["test2.png"] = b"\x89PNG\r\n\x1a\n456" font_path = tmp_path / "a.ufo" font.save(font_path) font = Font.open(font_path) assert font.images["test.png"] == b"\x89PNG\r\n\x1a\n123" assert font.images["test2.png"] == b"\x89PNG\r\n\x1a\n456" with pytest.raises(ValueError, match=r".*subdirectories.*"): font.images["directory/test2.png"] = b"\x89PNG\r\n\x1a\n456" with pytest.raises(KeyError): font.images["directory/test2.png"]