Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
google-cloud-sdk /
lib /
third_party /
attr /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2026-06-08 18:08
__init__.py
2.01
KB
-rw-r--r--
1980-01-01 08:00
__init__.pyi
11.04
KB
-rw-r--r--
1980-01-01 08:00
_cmp.py
4.02
KB
-rw-r--r--
1980-01-01 08:00
_cmp.pyi
368
B
-rw-r--r--
1980-01-01 08:00
_compat.py
2.76
KB
-rw-r--r--
1980-01-01 08:00
_config.py
843
B
-rw-r--r--
1980-01-01 08:00
_funcs.py
16.09
KB
-rw-r--r--
1980-01-01 08:00
_make.py
101.7
KB
-rw-r--r--
1980-01-01 08:00
_next_gen.py
25.66
KB
-rw-r--r--
1980-01-01 08:00
_typing_compat.pyi
469
B
-rw-r--r--
1980-01-01 08:00
_version_info.py
2.17
KB
-rw-r--r--
1980-01-01 08:00
_version_info.pyi
209
B
-rw-r--r--
1980-01-01 08:00
converters.py
3.77
KB
-rw-r--r--
1980-01-01 08:00
converters.pyi
643
B
-rw-r--r--
1980-01-01 08:00
exceptions.py
1.93
KB
-rw-r--r--
1980-01-01 08:00
exceptions.pyi
539
B
-rw-r--r--
1980-01-01 08:00
filters.py
1.75
KB
-rw-r--r--
1980-01-01 08:00
filters.pyi
208
B
-rw-r--r--
1980-01-01 08:00
py.typed
0
B
-rw-r--r--
1980-01-01 08:00
setters.py
1.58
KB
-rw-r--r--
1980-01-01 08:00
setters.pyi
584
B
-rw-r--r--
1980-01-01 08:00
validators.py
20.96
KB
-rw-r--r--
1980-01-01 08:00
validators.pyi
3.99
KB
-rw-r--r--
1980-01-01 08:00
Save
Rename
# SPDX-License-Identifier: MIT import inspect import platform import sys import threading from collections.abc import Mapping, Sequence # noqa: F401 from typing import _GenericAlias PYPY = platform.python_implementation() == "PyPy" PY_3_10_PLUS = sys.version_info[:2] >= (3, 10) PY_3_11_PLUS = sys.version_info[:2] >= (3, 11) PY_3_12_PLUS = sys.version_info[:2] >= (3, 12) PY_3_13_PLUS = sys.version_info[:2] >= (3, 13) PY_3_14_PLUS = sys.version_info[:2] >= (3, 14) if PY_3_14_PLUS: import annotationlib # We request forward-ref annotations to not break in the presence of # forward references. def _get_annotations(cls): return annotationlib.get_annotations( cls, format=annotationlib.Format.FORWARDREF ) else: def _get_annotations(cls): """ Get annotations for *cls*. """ return cls.__dict__.get("__annotations__", {}) class _AnnotationExtractor: """ Extract type annotations from a callable, returning None whenever there is none. """ __slots__ = ["sig"] def __init__(self, callable): try: self.sig = inspect.signature(callable) except (ValueError, TypeError): # inspect failed self.sig = None def get_first_param_type(self): """ Return the type annotation of the first argument if it's not empty. """ if not self.sig: return None params = list(self.sig.parameters.values()) if params and params[0].annotation is not inspect.Parameter.empty: return params[0].annotation return None def get_return_type(self): """ Return the return type if it's not empty. """ if ( self.sig and self.sig.return_annotation is not inspect.Signature.empty ): return self.sig.return_annotation return None # Thread-local global to track attrs instances which are already being repr'd. # This is needed because there is no other (thread-safe) way to pass info # about the instances that are already being repr'd through the call stack # in order to ensure we don't perform infinite recursion. # # For instance, if an instance contains a dict which contains that instance, # we need to know that we're already repr'ing the outside instance from within # the dict's repr() call. # # This lives here rather than in _make.py so that the functions in _make.py # don't have a direct reference to the thread-local in their globals dict. # If they have such a reference, it breaks cloudpickle. repr_context = threading.local() def get_generic_base(cl): """If this is a generic class (A[str]), return the generic base for it.""" if cl.__class__ is _GenericAlias: return cl.__origin__ return None