Python-Dateien

Neu laden
Gefunden: 162 Datei(en)
_py_abc.py
# Source Generated with Decompyle++
# File: _py_abc.pyc (Python 3.13)

from _weakrefset import WeakSet

def get_cache_token():
    return ABCMeta._abc_invalidation_counter


class ABCMeta(type):
    # MAKE_CELL(0)
    __module__ = __name__
    __qualname__ = 'ABCMeta'
    _abc_invalidation_counter = 0
    
    def __new__(mcls = None, name = None, bases = None, namespace = None, **kwargs):
        # COPY_FREE_VARS(1)
    # WARNING: Decompyle incomplete

    
    def register(cls, subclass):
        if not isinstance(subclass, type):
            raise TypeError('Can only register classes')
        if None(subclass, cls):
            return subclass
        if None(cls, subclass):
            raise RuntimeError('Refusing to create an inheritance cycle')
        None._abc_registry.add(subclass)
        return subclass

    
    def _dump_registry(cls, file = (None,)):
        print(f'''Class: {cls.__module__}.{cls.__qualname__}''', file = file)
        print(f'''Inv. counter: {get_cache_token()}''', file = file)
        for name in cls.__dict__:
            if name.startswith('_abc_'):
                value = getattr(cls, name)
                if isinstance(value, WeakSet):
                    value = set(value)
                print(f'''{name}: {value!r}''', file = file)
            return None

    
    def _abc_registry_clear(cls):
        cls._abc_registry.clear()

    
    def _abc_caches_clear(cls):
        cls._abc_cache.clear()
        cls._abc_negative_cache.clear()

    
    def __instancecheck__(cls, instance):
        # MAKE_CELL(0)
        subclass = instance.__class__
        if subclass in cls._abc_cache:
            return True
        subtype = None(instance)
        if subtype is subclass:
            if cls._abc_negative_cache_version < ABCMeta._abc_invalidation_counter and subclass in cls._abc_negative_cache:
                return False
            return None.__subclasscheck__(subclass)
        return (lambda .0 = None: # COPY_FREE_VARS(1)# Return a generator
for c in .0:
cls.__subclasscheck__(c)None)((subclass, subtype)())

    
    def __subclasscheck__(cls, subclass):
        if not isinstance(subclass, type):
            raise TypeError('issubclass() arg 1 must be a class')
        if None in cls._abc_cache:
            return True
        if None._abc_negative_cache_version < ABCMeta._abc_invalidation_counter:
            cls._abc_negative_cache = WeakSet()
            cls._abc_negative_cache_version = ABCMeta._abc_invalidation_counter
        elif subclass in cls._abc_negative_cache:
            return False
        ok = cls.__subclasshook__(subclass)
        if ok is not NotImplemented:
            if ok:
                cls._abc_cache.add(subclass)
            else:
                cls._abc_negative_cache.add(subclass)
            return ok
        if None in getattr(subclass, '__mro__', ()):
            cls._abc_cache.add(subclass)
            return True
        for rcls in None._abc_registry:
            if issubclass(subclass, rcls):
                cls._abc_cache.add(subclass)
                return True
            for scls in cls.__subclasses__():
                if issubclass(subclass, scls):
                    cls._abc_cache.add(subclass)
                    return True
                cls._abc_negative_cache.add(subclass)
                return False

    __classcell__ = None