Dane Sabo 3299181c70 Auto sync: 2025-09-02 22:47:53 (10335 files changed)
M  lazy-lock.json

M  lua/custom/configs/lspconfig.lua

M  lua/custom/init.lua

A  lua/custom/journal.lua

A  nvim_venv/bin/Activate.ps1

A  nvim_venv/bin/activate

A  nvim_venv/bin/activate.csh

A  nvim_venv/bin/activate.fish
2025-09-02 22:47:53 -04:00

33 lines
1.0 KiB
Python

"""Specialization of fontTools.misc.visitor to work with TTFont."""
from fontTools.misc.visitor import Visitor
from fontTools.ttLib import TTFont
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):
if hasattr(obj, "ensureDecompiled"):
obj.ensureDecompiled(recurse=False)
super().visit(obj, *args, **kwargs)
@TTVisitor.register(TTFont)
def visit(visitor, font, *args, **kwargs):
# Some objects have links back to TTFont; even though we
# have a check in visitAttr to stop them from recursing
# onto TTFont, sometimes they still do, for example when
# someone overrides visitAttr.
if hasattr(visitor, "font"):
return False
visitor.font = font
for tag in font.keys():
visitor.visit(font[tag], *args, **kwargs)
del visitor.font
return False