Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python34/lib64/python3.4/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python34/lib64/python3.4/copyreg.py
"""Helper to provide extensibility for pickle.

This is only useful to add pickle support for extension types defined in
C, not for instances of user-defined classes.
"""

__all__ = ["pickle", "constructor",
           "add_extension", "remove_extension", "clear_extension_cache"]

dispatch_table = {}

def pickle(ob_type, pickle_function, constructor_ob=None):
    if not callable(pickle_function):
        raise TypeError("reduction functions must be callable")
    dispatch_table[ob_type] = pickle_function

    # The constructor_ob function is a vestige of safe for unpickling.
    # There is no reason for the caller to pass it anymore.
    if constructor_ob is not None:
        constructor(constructor_ob)

def constructor(object):
    if not callable(object):
        raise TypeError("constructors must be callable")

# Example: provide pickling support for complex numbers.

try:
    complex
except NameError:
    pass
else:

    def pickle_complex(c):
        return complex, (c.real, c.imag)

    pickle(complex, pickle_complex, complex)

# Support for pickling new-style objects

def _reconstructor(cls, base, state):
    if base is object:
        obj = object.__new__(cls)
    else:
        obj = base.__new__(cls, state)
        if base.__init__ != object.__init__:
            base.__init__(obj, state)
    return obj

_HEAPTYPE = 1<<9

# Python code for object.__reduce_ex__ for protocols 0 and 1

def _reduce_ex(self, proto):
    assert proto < 2
    for base in self.__class__.__mro__:
        if hasattr(base, '__flags__') and not base.__flags__ & _HEAPTYPE:
            break
    else:
        base = object # not really reachable
    if base is object:
        state = None
    else:
        if base is self.__class__:
            raise TypeError("can't pickle %s objects" % base.__name__)
        state = base(self)
    args = (self.__class__, base, state)
    try:
        getstate = self.__getstate__
    except AttributeError:
        if getattr(self, "__slots__", None):
            raise TypeError("a class that defines __slots__ without "
                            "defining __getstate__ cannot be pickled")
        try:
            dict = self.__dict__
        except AttributeError:
            dict = None
    else:
        dict = getstate()
    if dict:
        return _reconstructor, args, dict
    else:
        return _reconstructor, args

# Helper for __reduce_ex__ protocol 2

def __newobj__(cls, *args):
    return cls.__new__(cls, *args)

def __newobj_ex__(cls, args, kwargs):
    """Used by pickle protocol 4, instead of __newobj__ to allow classes with
    keyword-only arguments to be pickled correctly.
    """
    return cls.__new__(cls, *args, **kwargs)

def _slotnames(cls):
    """Return a list of slot names for a given class.

    This needs to find slots defined by the class and its bases, so we
    can't simply return the __slots__ attribute.  We must walk down
    the Method Resolution Order and concatenate the __slots__ of each
    class found there.  (This assumes classes don't modify their
    __slots__ attribute to misrepresent their slots after the class is
    defined.)
    """

    # Get the value from a cache in the class if possible
    names = cls.__dict__.get("__slotnames__")
    if names is not None:
        return names

    # Not cached -- calculate the value
    names = []
    if not hasattr(cls, "__slots__"):
        # This class has no slots
        pass
    else:
        # Slots found -- gather slot names from all base classes
        for c in cls.__mro__:
            if "__slots__" in c.__dict__:
                slots = c.__dict__['__slots__']
                # if class has a single slot, it can be given as a string
                if isinstance(slots, str):
                    slots = (slots,)
                for name in slots:
                    # special descriptors
                    if name in ("__dict__", "__weakref__"):
                        continue
                    # mangled names
                    elif name.startswith('__') and not name.endswith('__'):
                        names.append('_%s%s' % (c.__name__, name))
                    else:
                        names.append(name)

    # Cache the outcome in the class if at all possible
    try:
        cls.__slotnames__ = names
    except:
        pass # But don't die if we can't

    return names

# A registry of extension codes.  This is an ad-hoc compression
# mechanism.  Whenever a global reference to <module>, <name> is about
# to be pickled, the (<module>, <name>) tuple is looked up here to see
# if it is a registered extension code for it.  Extension codes are
# universal, so that the meaning of a pickle does not depend on
# context.  (There are also some codes reserved for local use that
# don't have this restriction.)  Codes are positive ints; 0 is
# reserved.

_extension_registry = {}                # key -> code
_inverted_registry = {}                 # code -> key
_extension_cache = {}                   # code -> object
# Don't ever rebind those names:  pickling grabs a reference to them when
# it's initialized, and won't see a rebinding.

def add_extension(module, name, code):
    """Register an extension code."""
    code = int(code)
    if not 1 <= code <= 0x7fffffff:
        raise ValueError("code out of range")
    key = (module, name)
    if (_extension_registry.get(key) == code and
        _inverted_registry.get(code) == key):
        return # Redundant registrations are benign
    if key in _extension_registry:
        raise ValueError("key %s is already registered with code %s" %
                         (key, _extension_registry[key]))
    if code in _inverted_registry:
        raise ValueError("code %s is already in use for key %s" %
                         (code, _inverted_registry[code]))
    _extension_registry[key] = code
    _inverted_registry[code] = key

def remove_extension(module, name, code):
    """Unregister an extension code.  For testing only."""
    key = (module, name)
    if (_extension_registry.get(key) != code or
        _inverted_registry.get(code) != key):
        raise ValueError("key %s is not registered with code %s" %
                         (key, code))
    del _extension_registry[key]
    del _inverted_registry[code]
    if code in _extension_cache:
        del _extension_cache[code]

def clear_extension_cache():
    _extension_cache.clear()

# Standard extension code assignments

# Reserved ranges

# First  Last Count  Purpose
#     1   127   127  Reserved for Python standard library
#   128   191    64  Reserved for Zope
#   192   239    48  Reserved for 3rd parties
#   240   255    16  Reserved for private use (will never be assigned)
#   256   Inf   Inf  Reserved for future assignment

# Extension codes are assigned by the Python Software Foundation.
Name
Size
Permissions
Options
__pycache__
--
drwxr-xr-x
asyncio
--
drwxr-xr-x
collections
--
drwxr-xr-x
concurrent
--
drwxr-xr-x
config-3.4m
--
drwxr-xr-x
ctypes
--
drwxr-xr-x
curses
--
drwxr-xr-x
dbm
--
drwxr-xr-x
distutils
--
drwxr-xr-x
email
--
drwxr-xr-x
encodings
--
drwxr-xr-x
ensurepip
--
drwxr-xr-x
html
--
drwxr-xr-x
http
--
drwxr-xr-x
idlelib
--
drwxr-xr-x
importlib
--
drwxr-xr-x
json
--
drwxr-xr-x
lib-dynload
--
drwxr-xr-x
lib2to3
--
drwxr-xr-x
logging
--
drwxr-xr-x
multiprocessing
--
drwxr-xr-x
plat-linux
--
drwxr-xr-x
pydoc_data
--
drwxr-xr-x
site-packages
--
drwxr-xr-x
sqlite3
--
drwxr-xr-x
test
--
drwxr-xr-x
unittest
--
drwxr-xr-x
urllib
--
drwxr-xr-x
venv
--
drwxr-xr-x
wsgiref
--
drwxr-xr-x
xml
--
drwxr-xr-x
xmlrpc
--
drwxr-xr-x
__future__.py
4.477 KB
-rw-r--r--
__phello__.foo.py
0.063 KB
-rw-r--r--
_bootlocale.py
1.271 KB
-rw-r--r--
_collections_abc.py
19.432 KB
-rw-r--r--
_compat_pickle.py
8.123 KB
-rw-r--r--
_dummy_thread.py
4.758 KB
-rw-r--r--
_markupbase.py
14.256 KB
-rw-r--r--
_osx_support.py
18.653 KB
-rw-r--r--
_pyio.py
72.161 KB
-rw-r--r--
_sitebuiltins.py
3.042 KB
-rw-r--r--
_strptime.py
21.536 KB
-rw-r--r--
_sysconfigdata.py
28.055 KB
-rw-r--r--
_threading_local.py
7.236 KB
-rw-r--r--
_weakrefset.py
5.571 KB
-rw-r--r--
abc.py
8.422 KB
-rw-r--r--
aifc.py
30.838 KB
-rw-r--r--
antigravity.py
0.464 KB
-rw-r--r--
argparse.py
87.917 KB
-rw-r--r--
ast.py
11.752 KB
-rw-r--r--
asynchat.py
11.548 KB
-rw-r--r--
asyncore.py
20.506 KB
-rw-r--r--
base64.py
19.707 KB
-rwxr-xr-x
bdb.py
22.807 KB
-rw-r--r--
binhex.py
13.602 KB
-rw-r--r--
bisect.py
2.534 KB
-rw-r--r--
bz2.py
18.418 KB
-rw-r--r--
cProfile.py
5.199 KB
-rwxr-xr-x
calendar.py
22.403 KB
-rw-r--r--
cgi.py
35.099 KB
-rwxr-xr-x
cgitb.py
11.759 KB
-rw-r--r--
chunk.py
5.298 KB
-rw-r--r--
cmd.py
14.512 KB
-rw-r--r--
code.py
9.802 KB
-rw-r--r--
codecs.py
35.068 KB
-rw-r--r--
codeop.py
5.854 KB
-rw-r--r--
colorsys.py
3.969 KB
-rw-r--r--
compileall.py
9.393 KB
-rw-r--r--
configparser.py
48.533 KB
-rw-r--r--
contextlib.py
11.366 KB
-rw-r--r--
copy.py
8.794 KB
-rw-r--r--
copyreg.py
6.673 KB
-rw-r--r--
crypt.py
1.835 KB
-rw-r--r--
csv.py
15.806 KB
-rw-r--r--
datetime.py
74.027 KB
-rw-r--r--
decimal.py
223.328 KB
-rw-r--r--
difflib.py
79.77 KB
-rw-r--r--
dis.py
16.758 KB
-rw-r--r--
doctest.py
102.043 KB
-rw-r--r--
dummy_threading.py
2.749 KB
-rw-r--r--
enum.py
21.033 KB
-rw-r--r--
filecmp.py
9.6 KB
-rw-r--r--
fileinput.py
14.517 KB
-rw-r--r--
fnmatch.py
3.089 KB
-rw-r--r--
formatter.py
14.817 KB
-rw-r--r--
fractions.py
22.659 KB
-rw-r--r--
ftplib.py
37.629 KB
-rw-r--r--
functools.py
27.843 KB
-rw-r--r--
genericpath.py
3.791 KB
-rw-r--r--
getopt.py
7.313 KB
-rw-r--r--
getpass.py
5.927 KB
-rw-r--r--
gettext.py
20.28 KB
-rw-r--r--
glob.py
3.38 KB
-rw-r--r--
gzip.py
23.744 KB
-rw-r--r--
hashlib.py
9.619 KB
-rw-r--r--
heapq.py
17.575 KB
-rw-r--r--
hmac.py
4.944 KB
-rw-r--r--
imaplib.py
49.089 KB
-rw-r--r--
imghdr.py
3.445 KB
-rw-r--r--
imp.py
9.75 KB
-rw-r--r--
inspect.py
102.188 KB
-rw-r--r--
io.py
3.316 KB
-rw-r--r--
ipaddress.py
69.92 KB
-rw-r--r--
keyword.py
2.17 KB
-rwxr-xr-x
linecache.py
3.86 KB
-rw-r--r--
locale.py
72.783 KB
-rw-r--r--
lzma.py
18.917 KB
-rw-r--r--
macpath.py
5.487 KB
-rw-r--r--
macurl2path.py
2.668 KB
-rw-r--r--
mailbox.py
76.545 KB
-rw-r--r--
mailcap.py
7.263 KB
-rw-r--r--
mimetypes.py
20.294 KB
-rw-r--r--
modulefinder.py
22.872 KB
-rw-r--r--
netrc.py
5.613 KB
-rw-r--r--
nntplib.py
42.072 KB
-rw-r--r--
ntpath.py
19.997 KB
-rw-r--r--
nturl2path.py
2.387 KB
-rw-r--r--
numbers.py
10.003 KB
-rw-r--r--
opcode.py
5.314 KB
-rw-r--r--
operator.py
8.979 KB
-rw-r--r--
optparse.py
58.932 KB
-rw-r--r--
os.py
33.088 KB
-rw-r--r--
pathlib.py
41.472 KB
-rw-r--r--
pdb.py
59.563 KB
-rwxr-xr-x
pickle.py
54.677 KB
-rw-r--r--
pickletools.py
89.611 KB
-rw-r--r--
pipes.py
8.707 KB
-rw-r--r--
pkgutil.py
20.718 KB
-rw-r--r--
platform.py
45.665 KB
-rwxr-xr-x
plistlib.py
31.046 KB
-rw-r--r--
poplib.py
13.983 KB
-rw-r--r--
posixpath.py
13.133 KB
-rw-r--r--
pprint.py
14.569 KB
-rw-r--r--
profile.py
21.516 KB
-rwxr-xr-x
pstats.py
25.699 KB
-rw-r--r--
pty.py
4.651 KB
-rw-r--r--
py_compile.py
6.937 KB
-rw-r--r--
pyclbr.py
13.203 KB
-rw-r--r--
pydoc.py
100.597 KB
-rwxr-xr-x
queue.py
8.628 KB
-rw-r--r--
quopri.py
7.095 KB
-rwxr-xr-x
random.py
25.473 KB
-rw-r--r--
re.py
15.238 KB
-rw-r--r--
reprlib.py
4.99 KB
-rw-r--r--
rlcompleter.py
5.927 KB
-rw-r--r--
runpy.py
10.563 KB
-rw-r--r--
sched.py
6.205 KB
-rw-r--r--
selectors.py
16.696 KB
-rw-r--r--
shelve.py
8.328 KB
-rw-r--r--
shlex.py
11.277 KB
-rw-r--r--
shutil.py
38.967 KB
-rw-r--r--
site.py
21.048 KB
-rw-r--r--
smtpd.py
29.288 KB
-rwxr-xr-x
smtplib.py
38.058 KB
-rwxr-xr-x
sndhdr.py
6.109 KB
-rw-r--r--
socket.py
18.62 KB
-rw-r--r--
socketserver.py
23.801 KB
-rw-r--r--
sre_compile.py
19.437 KB
-rw-r--r--
sre_constants.py
7.097 KB
-rw-r--r--
sre_parse.py
30.692 KB
-rw-r--r--
ssl.py
33.933 KB
-rw-r--r--
stat.py
4.297 KB
-rw-r--r--
statistics.py
19.098 KB
-rw-r--r--
string.py
11.177 KB
-rw-r--r--
stringprep.py
12.614 KB
-rw-r--r--
struct.py
0.251 KB
-rw-r--r--
subprocess.py
63.036 KB
-rw-r--r--
sunau.py
17.671 KB
-rw-r--r--
symbol.py
2.005 KB
-rwxr-xr-x
symtable.py
7.23 KB
-rw-r--r--
sysconfig.py
24.055 KB
-rw-r--r--
tabnanny.py
11.143 KB
-rwxr-xr-x
tarfile.py
89.411 KB
-rwxr-xr-x
telnetlib.py
22.533 KB
-rw-r--r--
tempfile.py
21.997 KB
-rw-r--r--
textwrap.py
18.83 KB
-rw-r--r--
this.py
0.979 KB
-rw-r--r--
threading.py
47.658 KB
-rw-r--r--
timeit.py
11.691 KB
-rwxr-xr-x
token.py
2.963 KB
-rw-r--r--
tokenize.py
24.996 KB
-rw-r--r--
trace.py
30.749 KB
-rwxr-xr-x
traceback.py
10.905 KB
-rw-r--r--
tracemalloc.py
15.284 KB
-rw-r--r--
tty.py
0.858 KB
-rw-r--r--
types.py
5.284 KB
-rw-r--r--
uu.py
6.607 KB
-rwxr-xr-x
uuid.py
23.168 KB
-rw-r--r--
warnings.py
13.968 KB
-rw-r--r--
wave.py
17.268 KB
-rw-r--r--
weakref.py
18.93 KB
-rw-r--r--
webbrowser.py
20.93 KB
-rwxr-xr-x
xdrlib.py
5.774 KB
-rw-r--r--
zipfile.py
66.94 KB
-rw-r--r--