[designspaceLib] Add a roundtripping __main__

Works as a normalizer as well.
This commit is contained in:
Behdad Esfahbod 2024-02-02 12:47:38 -07:00
parent 0572f78718
commit 1418b4c916
3 changed files with 26 additions and 3 deletions

View File

@ -3279,3 +3279,23 @@ class DesignSpaceDocument(LogMixin, AsDictMixin):
finally:
for source, font in zip(self.sources, fonts):
source.font = font
def main(args=None):
"""Roundtrip .designspace file through the DesignSpaceDocument class"""
if args is None:
import sys
args = sys.argv[1:]
from argparse import ArgumentParser
parser = ArgumentParser(prog="designspaceLib", description=main.__doc__)
parser.add_argument("input")
parser.add_argument("output")
options = parser.parse_args(args)
ds = DesignSpaceDocument.fromfile(options.input)
ds.write(options.output)

View File

@ -0,0 +1,6 @@
import sys
from fontTools.designspaceLib import main
if __name__ == "__main__":
sys.exit(main())

View File

@ -3733,6 +3733,3 @@ __all__ = [
"parse_unicodes",
"main",
]
if __name__ == "__main__":
sys.exit(main())