[visitor] Split TTVisitor into its own module
This commit is contained in:
parent
61d651e387
commit
f582469cb8
@ -1,4 +1,5 @@
|
|||||||
from fontTools.ttLib import TTFont
|
"""Generic visitor pattern implementation for Python objects."""
|
||||||
|
|
||||||
import enum
|
import enum
|
||||||
|
|
||||||
|
|
||||||
@ -94,21 +95,3 @@ class Visitor(object):
|
|||||||
self.visitObject(obj, *args, **kwargs)
|
self.visitObject(obj, *args, **kwargs)
|
||||||
elif isinstance(obj, list):
|
elif isinstance(obj, list):
|
||||||
self.visitList(obj, *args, **kwargs)
|
self.visitList(obj, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class TTVisitor(Visitor):
|
|
||||||
def visit(self, obj, *args, **kwargs):
|
|
||||||
if hasattr(obj, "ensureDecompiled"):
|
|
||||||
obj.ensureDecompiled(recurse=False)
|
|
||||||
super().visit(obj, *args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
@TTVisitor.register(TTFont)
|
|
||||||
def visit(visitor, font):
|
|
||||||
if hasattr(visitor, "font"):
|
|
||||||
return False
|
|
||||||
visitor.font = font
|
|
||||||
for tag in font.keys():
|
|
||||||
visitor.visit(font[tag])
|
|
||||||
del visitor.font
|
|
||||||
return False
|
|
||||||
|
22
Lib/fontTools/ttLib/ttVisitor.py
Normal file
22
Lib/fontTools/ttLib/ttVisitor.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
"""Specialization of fontTools.misc.visitor to work with TTFont."""
|
||||||
|
|
||||||
|
from fontTools.misc.visitor import Visitor
|
||||||
|
from fontTools.ttLib import TTFont
|
||||||
|
|
||||||
|
|
||||||
|
class TTVisitor(Visitor):
|
||||||
|
def visit(self, obj, *args, **kwargs):
|
||||||
|
if hasattr(obj, "ensureDecompiled"):
|
||||||
|
obj.ensureDecompiled(recurse=False)
|
||||||
|
super().visit(obj, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@TTVisitor.register(TTFont)
|
||||||
|
def visit(visitor, font):
|
||||||
|
if hasattr(visitor, "font"):
|
||||||
|
return False
|
||||||
|
visitor.font = font
|
||||||
|
for tag in font.keys():
|
||||||
|
visitor.visit(font[tag])
|
||||||
|
del visitor.font
|
||||||
|
return False
|
@ -1,4 +1,4 @@
|
|||||||
from fontTools.misc.visitor import TTVisitor
|
from fontTools.ttLib.ttVisitor import TTVisitor
|
||||||
import fontTools.ttLib as ttLib
|
import fontTools.ttLib as ttLib
|
||||||
import fontTools.ttLib.tables.otBase as otBase
|
import fontTools.ttLib.tables.otBase as otBase
|
||||||
import fontTools.ttLib.tables.otTables as otTables
|
import fontTools.ttLib.tables.otTables as otTables
|
||||||
|
Loading…
x
Reference in New Issue
Block a user