[visitor] Don't recurse on private or TTFont attributes
This commit is contained in:
parent
24d63d068e
commit
8213c58a38
@ -70,6 +70,8 @@ class Visitor(object):
|
|||||||
_visitors = self._visitorsFor(obj)
|
_visitors = self._visitorsFor(obj)
|
||||||
defaultVisitor = _visitors.get("*", None)
|
defaultVisitor = _visitors.get("*", None)
|
||||||
for key in keys:
|
for key in keys:
|
||||||
|
if key[0] == "_":
|
||||||
|
continue
|
||||||
value = getattr(obj, key)
|
value = getattr(obj, key)
|
||||||
visitorFunc = _visitors.get(key, defaultVisitor)
|
visitorFunc = _visitors.get(key, defaultVisitor)
|
||||||
if visitorFunc is not None:
|
if visitorFunc is not None:
|
||||||
|
@ -5,6 +5,11 @@ from fontTools.ttLib import TTFont
|
|||||||
|
|
||||||
|
|
||||||
class TTVisitor(Visitor):
|
class TTVisitor(Visitor):
|
||||||
|
def visitAttr(self, obj, attr, value, *args, **kwargs):
|
||||||
|
if isinstance(value, TTFont):
|
||||||
|
return False
|
||||||
|
super().visitAttr(obj, attr, value, *args, **kwargs)
|
||||||
|
|
||||||
def visit(self, obj, *args, **kwargs):
|
def visit(self, obj, *args, **kwargs):
|
||||||
if hasattr(obj, "ensureDecompiled"):
|
if hasattr(obj, "ensureDecompiled"):
|
||||||
obj.ensureDecompiled(recurse=False)
|
obj.ensureDecompiled(recurse=False)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user