PHP 8.2.30
Preview: abc.py Size: 5.45 KB
/opt/alt/python37/lib64/python3.7/abc.py

# Copyright 2007 Google, Inc. All Rights Reserved.
# Licensed to PSF under a Contributor Agreement.

"""Abstract Base Classes (ABCs) according to PEP 3119."""


def abstractmethod(funcobj):
    """A decorator indicating abstract methods.

    Requires that the metaclass is ABCMeta or derived from it.  A
    class that has a metaclass derived from ABCMeta cannot be
    instantiated unless all of its abstract methods are overridden.
    The abstract methods can be called using any of the normal
    'super' call mechanisms.

    Usage:

        class C(metaclass=ABCMeta):
            @abstractmethod
            def my_abstract_method(self, ...):
                ...
    """
    funcobj.__isabstractmethod__ = True
    return funcobj


class abstractclassmethod(classmethod):
    """A decorator indicating abstract classmethods.

    Similar to abstractmethod.

    Usage:

        class C(metaclass=ABCMeta):
            @abstractclassmethod
            def my_abstract_classmethod(cls, ...):
                ...

    'abstractclassmethod' is deprecated. Use 'classmethod' with
    'abstractmethod' instead.
    """

    __isabstractmethod__ = True

    def __init__(self, callable):
        callable.__isabstractmethod__ = True
        super().__init__(callable)


class abstractstaticmethod(staticmethod):
    """A decorator indicating abstract staticmethods.

    Similar to abstractmethod.

    Usage:

        class C(metaclass=ABCMeta):
            @abstractstaticmethod
            def my_abstract_staticmethod(...):
                ...

    'abstractstaticmethod' is deprecated. Use 'staticmethod' with
    'abstractmethod' instead.
    """

    __isabstractmethod__ = True

    def __init__(self, callable):
        callable.__isabstractmethod__ = True
        super().__init__(callable)


class abstractproperty(property):
    """A decorator indicating abstract properties.

    Requires that the metaclass is ABCMeta or derived from it.  A
    class that has a metaclass derived from ABCMeta cannot be
    instantiated unless all of its abstract properties are overridden.
    The abstract properties can be called using any of the normal
    'super' call mechanisms.

    Usage:

        class C(metaclass=ABCMeta):
            @abstractproperty
            def my_abstract_property(self):
                ...

    This defines a read-only property; you can also define a read-write
    abstract property using the 'long' form of property declaration:

        class C(metaclass=ABCMeta):
            def getx(self): ...
            def setx(self, value): ...
            x = abstractproperty(getx, setx)

    'abstractproperty' is deprecated. Use 'property' with 'abstractmethod'
    instead.
    """

    __isabstractmethod__ = True


try:
    from _abc import (get_cache_token, _abc_init, _abc_register,
                      _abc_instancecheck, _abc_subclasscheck, _get_dump,
                      _reset_registry, _reset_caches)
except ImportError:
    from _py_abc import ABCMeta, get_cache_token
    ABCMeta.__module__ = 'abc'
else:
    class ABCMeta(type):
        """Metaclass for defining Abstract Base Classes (ABCs).

        Use this metaclass to create an ABC.  An ABC can be subclassed
        directly, and then acts as a mix-in class.  You can also register
        unrelated concrete classes (even built-in classes) and unrelated
        ABCs as 'virtual subclasses' -- these and their descendants will
        be considered subclasses of the registering ABC by the built-in
        issubclass() function, but the registering ABC won't show up in
        their MRO (Method Resolution Order) nor will method
        implementations defined by the registering ABC be callable (not
        even via super()).
        """
        def __new__(mcls, name, bases, namespace, **kwargs):
            cls = super().__new__(mcls, name, bases, namespace, **kwargs)
            _abc_init(cls)
            return cls

        def register(cls, subclass):
            """Register a virtual subclass of an ABC.

            Returns the subclass, to allow usage as a class decorator.
            """
            return _abc_register(cls, subclass)

        def __instancecheck__(cls, instance):
            """Override for isinstance(instance, cls)."""
            return _abc_instancecheck(cls, instance)

        def __subclasscheck__(cls, subclass):
            """Override for issubclass(subclass, cls)."""
            return _abc_subclasscheck(cls, subclass)

        def _dump_registry(cls, file=None):
            """Debug helper to print the ABC registry."""
            print(f"Class: {cls.__module__}.{cls.__qualname__}", file=file)
            print(f"Inv. counter: {get_cache_token()}", file=file)
            (_abc_registry, _abc_cache, _abc_negative_cache,
             _abc_negative_cache_version) = _get_dump(cls)
            print(f"_abc_registry: {_abc_registry!r}", file=file)
            print(f"_abc_cache: {_abc_cache!r}", file=file)
            print(f"_abc_negative_cache: {_abc_negative_cache!r}", file=file)
            print(f"_abc_negative_cache_version: {_abc_negative_cache_version!r}",
                  file=file)

        def _abc_registry_clear(cls):
            """Clear the registry (for debugging or testing)."""
            _reset_registry(cls)

        def _abc_caches_clear(cls):
            """Clear the caches (for debugging or testing)."""
            _reset_caches(cls)


class ABC(metaclass=ABCMeta):
    """Helper class that provides a standard way to create an ABC using
    inheritance.
    """
    __slots__ = ()

Directory Contents

Dirs: 31 × Files: 172

Name Size Perms Modified Actions
asyncio DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2024-05-23 07:10:43
Edit Download
ctypes DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
curses DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
dbm DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
distutils DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
email DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
encodings DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
ensurepip DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
html DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
http DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
idlelib DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
importlib DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
json DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
lib2to3 DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
logging DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2025-09-17 08:08:35
Edit Download
sqlite3 DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
test DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
unittest DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
urllib DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
venv DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
wsgiref DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
xml DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
xmlrpc DIR
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
- drwxr-xr-x 2024-05-23 07:07:51
Edit Download
5.45 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
32.04 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
477 B lrw-r--r-- 2024-04-17 17:36:04
Edit Download
93.14 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
12.54 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
11.06 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
19.65 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
19.92 KB lrwxr-xr-x 2024-04-17 17:36:04
Edit Download
30.99 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
13.63 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
2.50 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
12.12 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
24.24 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
34.23 KB lrwxr-xr-x 2024-04-17 17:36:07
Edit Download
11.74 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
5.31 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
14.51 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
10.37 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
35.76 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
6.13 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
3.97 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
13.46 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
53.01 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
24.18 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
129 B lrw-r--r-- 2024-04-17 17:36:07
Edit Download
8.65 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
6.85 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
6.11 KB lrwxr-xr-x 2024-04-17 17:36:03
Edit Download
3.27 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
15.80 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
48.36 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
84.52 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
320 B lrw-r--r-- 2024-04-17 17:36:07
Edit Download
82.42 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
19.42 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
102.11 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
2.75 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
34.22 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
9.60 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
14.28 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
3.96 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
14.79 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
23.20 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
34.78 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
32.16 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
4.80 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
7.31 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
5.85 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
21.45 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
5.51 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
20.15 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
9.31 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
22.48 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
6.36 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
52.04 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
3.71 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
10.29 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
114.88 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
3.43 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
71.85 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
2.20 KB lrwxr-xr-x 2024-04-17 17:36:07
Edit Download
5.21 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
76.36 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
12.68 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
5.98 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
76.81 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
8.85 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
20.99 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
22.50 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
5.44 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
42.08 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
21.82 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
2.52 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
10.00 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
5.69 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
10.61 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
58.96 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
37.01 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
49.15 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
61.04 KB lrwxr-xr-x 2024-04-17 17:36:04
Edit Download
56.63 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
89.08 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
8.71 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
20.96 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
45.89 KB lrwxr-xr-x 2024-04-17 17:36:03
Edit Download
29.99 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
14.61 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
15.40 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
20.39 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
21.97 KB lrwxr-xr-x 2024-04-17 17:36:04
Edit Download
26.67 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
4.65 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
14.78 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
103.39 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
7.81 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
11.09 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
7.09 KB lrwxr-xr-x 2024-04-17 17:36:07
Edit Download
26.91 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
14.95 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
5.14 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
6.93 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
11.68 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
6.29 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
1.99 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
18.13 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
8.33 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
12.79 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
40.97 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
2.07 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
21.07 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
33.91 KB lrwxr-xr-x 2024-04-17 17:36:04
Edit Download
43.40 KB lrwxr-xr-x 2024-04-17 17:36:03
Edit Download
6.92 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
26.83 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
26.29 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
26.24 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
7.01 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
38.24 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
44.43 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
5.26 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
20.17 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
11.29 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
12.61 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
257 B lrw-r--r-- 2024-04-17 17:36:04
Edit Download
70.95 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
17.94 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
2.09 KB lrwxr-xr-x 2024-04-17 17:36:03
Edit Download
7.11 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
23.87 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
11.15 KB lrwxr-xr-x 2024-04-17 17:36:07
Edit Download
90.50 KB lrwxr-xr-x 2024-04-17 17:36:03
Edit Download
22.59 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
26.10 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
18.95 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
1003 B lrw-r--r-- 2024-04-17 17:36:04
Edit Download
48.13 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
13.18 KB lrwxr-xr-x 2024-04-17 17:36:03
Edit Download
3.67 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
26.40 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
28.23 KB lrwxr-xr-x 2024-04-17 17:36:03
Edit Download
22.89 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
16.68 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
879 B lrw-r--r-- 2024-04-17 17:36:03
Edit Download
9.67 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
55.12 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
7.11 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
28.83 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
19.61 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
17.80 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
21.00 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
23.16 KB lrwxr-xr-x 2024-04-17 17:36:07
Edit Download
5.77 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
7.36 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
79.19 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
1.76 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
25.80 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
8.54 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
5.21 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
5.89 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
14.26 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
19.14 KB lrw-r--r-- 2024-04-17 17:36:07
Edit Download
223.33 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
89.47 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
6.04 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
3.04 KB lrw-r--r-- 2024-04-17 17:36:04
Edit Download
24.91 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
30.59 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
27.93 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
7.04 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
5.55 KB lrw-r--r-- 2024-04-17 17:36:03
Edit Download
4.98 KB lrw-r--r-- 2024-04-17 17:36:08
Edit Download
64 B lrw-r--r-- 2024-04-17 17:36:07
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).