summaryrefslogtreecommitdiffstats
path: root/contrib/python/fonttools/fontTools/misc/visitor.py
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-07-18 09:09:17 +0300
committerrobot-piglet <[email protected]>2025-07-18 09:21:36 +0300
commitb27290b9f146a42ce239e15c67cf203f4a151aa7 (patch)
treef1aea70e5c4f342eb93a862e4ed3b5714b353cce /contrib/python/fonttools/fontTools/misc/visitor.py
parent9976b916cb8114c23b8b981651f6c4b6256a502a (diff)
Intermediate changes
commit_hash:134fe147a2593cd4e39895d6b77ac876aa724f8b
Diffstat (limited to 'contrib/python/fonttools/fontTools/misc/visitor.py')
-rw-r--r--contrib/python/fonttools/fontTools/misc/visitor.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/contrib/python/fonttools/fontTools/misc/visitor.py b/contrib/python/fonttools/fontTools/misc/visitor.py
index 6de432ef934..65f305632de 100644
--- a/contrib/python/fonttools/fontTools/misc/visitor.py
+++ b/contrib/python/fonttools/fontTools/misc/visitor.py
@@ -1,11 +1,19 @@
"""Generic visitor pattern implementation for Python objects."""
import enum
+import weakref
class Visitor(object):
defaultStop = False
+ _visitors = {
+ # By default we skip visiting weak references to avoid recursion
+ # issues. Users can override this by registering a visit
+ # function for weakref.ProxyType.
+ weakref.ProxyType: {None: lambda self, obj, *args, **kwargs: False}
+ }
+
@classmethod
def _register(celf, clazzes_attrs):
assert celf != Visitor, "Subclass Visitor instead."