From e74fc55c20f6cb544eacf7348f528d3d346b3ddd Mon Sep 17 00:00:00 2001 From: Nikolaus Waxweiler Date: Tue, 24 Aug 2021 14:12:22 +0100 Subject: [PATCH] Opportunistically use iondrive if available --- Lib/fontmake/font_project.py | 7 +++++++ setup.py | 1 + 2 files changed, 8 insertions(+) diff --git a/Lib/fontmake/font_project.py b/Lib/fontmake/font_project.py index c34694eb..a9d1b4af 100644 --- a/Lib/fontmake/font_project.py +++ b/Lib/fontmake/font_project.py @@ -27,6 +27,7 @@ import ufo2ft import ufo2ft.errors import ufoLib2 +import ufoLib2.objects from fontTools import designspaceLib from fontTools.misc.loggingTools import Timer, configLogger from fontTools.misc.plistlib import load as readPlist @@ -118,6 +119,12 @@ def __init__(self, timing=False, verbose="INFO", validate_ufo=False): def open_ufo(self, path): try: + try: + import iondrive + + return iondrive.load(ufoLib2.objects, path) + except ImportError: + pass return ufoLib2.Font.open(path, validate=self.validate_ufo) except Exception as e: raise FontmakeError("Reading UFO source failed", path) from e diff --git a/setup.py b/setup.py index 3f7e7144..ba5386ea 100644 --- a/setup.py +++ b/setup.py @@ -34,6 +34,7 @@ # "lxml>=4.2.4", ], "mutatormath": ["MutatorMath>=2.1.2"], + "iondrive": ["iondrive>=1.0"], } # use a special 'all' key as shorthand to includes all the extra dependencies extras_require["all"] = sum(extras_require.values(), [])