Example #1
0
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)
Example #2
0
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"
Example #3
0
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"]