Lines Matching refs:cls

36         cls = super().__new__(mcls, name, bases, namespace, **kwargs)
43 value = getattr(cls, name, None)
46 cls.__abstractmethods__ = frozenset(abstracts)
48 cls._abc_registry = WeakSet()
49 cls._abc_cache = WeakSet()
50 cls._abc_negative_cache = WeakSet()
51 cls._abc_negative_cache_version = ABCMeta._abc_invalidation_counter
52 return cls
54 def register(cls, subclass):
61 if issubclass(subclass, cls):
65 if issubclass(cls, subclass):
68 cls._abc_registry.add(subclass)
72 def _dump_registry(cls, file=None):
74 print(f"Class: {cls.__module__}.{cls.__qualname__}", file=file)
76 for name in cls.__dict__:
78 value = getattr(cls, name)
83 def _abc_registry_clear(cls):
85 cls._abc_registry.clear()
87 def _abc_caches_clear(cls):
89 cls._abc_cache.clear()
90 cls._abc_negative_cache.clear()
92 def __instancecheck__(cls, instance):
93 """Override for isinstance(instance, cls)."""
96 if subclass in cls._abc_cache:
100 if (cls._abc_negative_cache_version ==
102 subclass in cls._abc_negative_cache):
105 return cls.__subclasscheck__(subclass)
106 return any(cls.__subclasscheck__(c) for c in (subclass, subtype))
108 def __subclasscheck__(cls, subclass):
109 """Override for issubclass(subclass, cls)."""
113 if subclass in cls._abc_cache:
116 if cls._abc_negative_cache_version < ABCMeta._abc_invalidation_counter:
118 cls._abc_negative_cache = WeakSet()
119 cls._abc_negative_cache_version = ABCMeta._abc_invalidation_counter
120 elif subclass in cls._abc_negative_cache:
123 ok = cls.__subclasshook__(subclass)
127 cls._abc_cache.add(subclass)
129 cls._abc_negative_cache.add(subclass)
132 if cls in getattr(subclass, '__mro__', ()):
133 cls._abc_cache.add(subclass)
136 for rcls in cls._abc_registry:
138 cls._abc_cache.add(subclass)
141 for scls in cls.__subclasses__():
143 cls._abc_cache.add(subclass)
146 cls._abc_negative_cache.add(subclass)