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/python311/lib64/python3.11/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python311/lib64/python3.11/reprlib.py
"""Redo the builtin repr() (representation) but with limits on most sizes."""

__all__ = ["Repr", "repr", "recursive_repr"]

import builtins
from itertools import islice
from _thread import get_ident

def recursive_repr(fillvalue='...'):
    'Decorator to make a repr function return fillvalue for a recursive call'

    def decorating_function(user_function):
        repr_running = set()

        def wrapper(self):
            key = id(self), get_ident()
            if key in repr_running:
                return fillvalue
            repr_running.add(key)
            try:
                result = user_function(self)
            finally:
                repr_running.discard(key)
            return result

        # Can't use functools.wraps() here because of bootstrap issues
        wrapper.__module__ = getattr(user_function, '__module__')
        wrapper.__doc__ = getattr(user_function, '__doc__')
        wrapper.__name__ = getattr(user_function, '__name__')
        wrapper.__qualname__ = getattr(user_function, '__qualname__')
        wrapper.__annotations__ = getattr(user_function, '__annotations__', {})
        return wrapper

    return decorating_function

class Repr:

    def __init__(self):
        self.fillvalue = '...'
        self.maxlevel = 6
        self.maxtuple = 6
        self.maxlist = 6
        self.maxarray = 5
        self.maxdict = 4
        self.maxset = 6
        self.maxfrozenset = 6
        self.maxdeque = 6
        self.maxstring = 30
        self.maxlong = 40
        self.maxother = 30

    def repr(self, x):
        return self.repr1(x, self.maxlevel)

    def repr1(self, x, level):
        typename = type(x).__name__
        if ' ' in typename:
            parts = typename.split()
            typename = '_'.join(parts)
        if hasattr(self, 'repr_' + typename):
            return getattr(self, 'repr_' + typename)(x, level)
        else:
            return self.repr_instance(x, level)

    def _repr_iterable(self, x, level, left, right, maxiter, trail=''):
        n = len(x)
        if level <= 0 and n:
            s = self.fillvalue
        else:
            newlevel = level - 1
            repr1 = self.repr1
            pieces = [repr1(elem, newlevel) for elem in islice(x, maxiter)]
            if n > maxiter:
                pieces.append(self.fillvalue)
            s = ', '.join(pieces)
            if n == 1 and trail:
                right = trail + right
        return '%s%s%s' % (left, s, right)

    def repr_tuple(self, x, level):
        return self._repr_iterable(x, level, '(', ')', self.maxtuple, ',')

    def repr_list(self, x, level):
        return self._repr_iterable(x, level, '[', ']', self.maxlist)

    def repr_array(self, x, level):
        if not x:
            return "array('%s')" % x.typecode
        header = "array('%s', [" % x.typecode
        return self._repr_iterable(x, level, header, '])', self.maxarray)

    def repr_set(self, x, level):
        if not x:
            return 'set()'
        x = _possibly_sorted(x)
        return self._repr_iterable(x, level, '{', '}', self.maxset)

    def repr_frozenset(self, x, level):
        if not x:
            return 'frozenset()'
        x = _possibly_sorted(x)
        return self._repr_iterable(x, level, 'frozenset({', '})',
                                   self.maxfrozenset)

    def repr_deque(self, x, level):
        return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)

    def repr_dict(self, x, level):
        n = len(x)
        if n == 0:
            return '{}'
        if level <= 0:
            return '{' + self.fillvalue + '}'
        newlevel = level - 1
        repr1 = self.repr1
        pieces = []
        for key in islice(_possibly_sorted(x), self.maxdict):
            keyrepr = repr1(key, newlevel)
            valrepr = repr1(x[key], newlevel)
            pieces.append('%s: %s' % (keyrepr, valrepr))
        if n > self.maxdict:
            pieces.append(self.fillvalue)
        s = ', '.join(pieces)
        return '{%s}' % (s,)

    def repr_str(self, x, level):
        s = builtins.repr(x[:self.maxstring])
        if len(s) > self.maxstring:
            i = max(0, (self.maxstring-3)//2)
            j = max(0, self.maxstring-3-i)
            s = builtins.repr(x[:i] + x[len(x)-j:])
            s = s[:i] + self.fillvalue + s[len(s)-j:]
        return s

    def repr_int(self, x, level):
        s = builtins.repr(x) # XXX Hope this isn't too slow...
        if len(s) > self.maxlong:
            i = max(0, (self.maxlong-3)//2)
            j = max(0, self.maxlong-3-i)
            s = s[:i] + self.fillvalue + s[len(s)-j:]
        return s

    def repr_instance(self, x, level):
        try:
            s = builtins.repr(x)
            # Bugs in x.__repr__() can cause arbitrary
            # exceptions -- then make up something
        except Exception:
            return '<%s instance at %#x>' % (x.__class__.__name__, id(x))
        if len(s) > self.maxother:
            i = max(0, (self.maxother-3)//2)
            j = max(0, self.maxother-3-i)
            s = s[:i] + self.fillvalue + s[len(s)-j:]
        return s


def _possibly_sorted(x):
    # Since not all sequences of items can be sorted and comparison
    # functions may raise arbitrary exceptions, return an unsorted
    # sequence in that case.
    try:
        return sorted(x)
    except Exception:
        return list(x)

aRepr = Repr()
repr = aRepr.repr
Name
Size
Permissions
Options
__pycache__
--
drwxr-xr-x
asyncio
--
drwxr-xr-x
collections
--
drwxr-xr-x
concurrent
--
drwxr-xr-x
config-3.11-x86_64-linux-gnu
--
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
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
pydoc_data
--
drwxr-xr-x
re
--
drwxr-xr-x
site-packages
--
drwxr-xr-x
sqlite3
--
drwxr-xr-x
tomllib
--
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
zoneinfo
--
drwxr-xr-x
LICENSE.txt
13.609 KB
-rw-r--r--
__future__.py
5.096 KB
-rw-r--r--
__hello__.py
0.222 KB
-rw-r--r--
_aix_support.py
3.31 KB
-rw-r--r--
_bootsubprocess.py
2.612 KB
-rw-r--r--
_collections_abc.py
29.485 KB
-rw-r--r--
_compat_pickle.py
8.556 KB
-rw-r--r--
_compression.py
5.548 KB
-rw-r--r--
_markupbase.py
14.31 KB
-rw-r--r--
_osx_support.py
21.507 KB
-rw-r--r--
_py_abc.py
6.044 KB
-rw-r--r--
_pydecimal.py
223.83 KB
-rw-r--r--
_pyio.py
91.985 KB
-rw-r--r--
_sitebuiltins.py
3.055 KB
-rw-r--r--
_strptime.py
24.585 KB
-rw-r--r--
_sysconfigdata__linux_x86_64-linux-gnu.py
57.282 KB
-rw-r--r--
_sysconfigdata_d_linux_x86_64-linux-gnu.py
56.524 KB
-rw-r--r--
_threading_local.py
7.051 KB
-rw-r--r--
_weakrefset.py
5.755 KB
-rw-r--r--
abc.py
6.385 KB
-rw-r--r--
aifc.py
33.409 KB
-rw-r--r--
antigravity.py
0.488 KB
-rw-r--r--
argparse.py
97.933 KB
-rw-r--r--
ast.py
60.004 KB
-rw-r--r--
asynchat.py
11.299 KB
-rw-r--r--
asyncore.py
19.834 KB
-rw-r--r--
base64.py
20.548 KB
-rwxr-xr-x
bdb.py
31.702 KB
-rw-r--r--
bisect.py
3.062 KB
-rw-r--r--
bz2.py
11.569 KB
-rw-r--r--
cProfile.py
6.21 KB
-rwxr-xr-x
calendar.py
24.151 KB
-rw-r--r--
cgi.py
33.625 KB
-rwxr-xr-x
cgitb.py
12.13 KB
-rw-r--r--
chunk.py
5.371 KB
-rw-r--r--
cmd.py
14.524 KB
-rw-r--r--
code.py
10.373 KB
-rw-r--r--
codecs.py
36.279 KB
-rw-r--r--
codeop.py
5.769 KB
-rw-r--r--
colorsys.py
3.967 KB
-rw-r--r--
compileall.py
19.777 KB
-rw-r--r--
configparser.py
54.355 KB
-rw-r--r--
contextlib.py
26.771 KB
-rw-r--r--
contextvars.py
0.126 KB
-rw-r--r--
copy.py
8.478 KB
-rw-r--r--
copyreg.py
7.497 KB
-rw-r--r--
crypt.py
3.821 KB
-rw-r--r--
csv.py
15.654 KB
-rw-r--r--
dataclasses.py
57.102 KB
-rw-r--r--
datetime.py
89.68 KB
-rw-r--r--
decimal.py
0.313 KB
-rw-r--r--
difflib.py
81.355 KB
-rw-r--r--
dis.py
28.229 KB
-rw-r--r--
doctest.py
103.806 KB
-rw-r--r--
enum.py
77.718 KB
-rw-r--r--
filecmp.py
9.939 KB
-rw-r--r--
fileinput.py
15.346 KB
-rw-r--r--
fnmatch.py
5.858 KB
-rw-r--r--
fractions.py
28.005 KB
-rw-r--r--
ftplib.py
34.976 KB
-rw-r--r--
functools.py
37.513 KB
-rw-r--r--
genericpath.py
5.123 KB
-rw-r--r--
getopt.py
7.313 KB
-rw-r--r--
getpass.py
5.85 KB
-rw-r--r--
gettext.py
20.82 KB
-rw-r--r--
glob.py
8.527 KB
-rw-r--r--
graphlib.py
9.43 KB
-rw-r--r--
gzip.py
23.51 KB
-rw-r--r--
hashlib.py
11.489 KB
-rw-r--r--
heapq.py
22.484 KB
-rw-r--r--
hmac.py
7.535 KB
-rw-r--r--
imaplib.py
53.923 KB
-rw-r--r--
imghdr.py
3.859 KB
-rw-r--r--
imp.py
10.357 KB
-rw-r--r--
inspect.py
120.526 KB
-rw-r--r--
io.py
4.219 KB
-rw-r--r--
ipaddress.py
79.506 KB
-rw-r--r--
keyword.py
1.036 KB
-rw-r--r--
linecache.py
5.517 KB
-rw-r--r--
locale.py
77.241 KB
-rw-r--r--
lzma.py
12.966 KB
-rw-r--r--
mailbox.py
76.982 KB
-rw-r--r--
mailcap.py
9.149 KB
-rw-r--r--
mimetypes.py
22.424 KB
-rw-r--r--
modulefinder.py
23.144 KB
-rw-r--r--
netrc.py
6.767 KB
-rw-r--r--
nntplib.py
40.124 KB
-rw-r--r--
ntpath.py
29.967 KB
-rw-r--r--
nturl2path.py
2.819 KB
-rw-r--r--
numbers.py
10.105 KB
-rw-r--r--
opcode.py
10.202 KB
-rw-r--r--
operator.py
10.708 KB
-rw-r--r--
optparse.py
58.954 KB
-rw-r--r--
os.py
38.604 KB
-rw-r--r--
pathlib.py
47.428 KB
-rw-r--r--
pdb.py
62.682 KB
-rwxr-xr-x
pickle.py
63.605 KB
-rw-r--r--
pickletools.py
91.661 KB
-rw-r--r--
pipes.py
8.768 KB
-rw-r--r--
pkgutil.py
24.061 KB
-rw-r--r--
platform.py
41.296 KB
-rwxr-xr-x
plistlib.py
27.689 KB
-rw-r--r--
poplib.py
14.842 KB
-rw-r--r--
posixpath.py
16.796 KB
-rw-r--r--
pprint.py
24.007 KB
-rw-r--r--
profile.py
22.359 KB
-rwxr-xr-x
pstats.py
28.668 KB
-rw-r--r--
pty.py
6.169 KB
-rw-r--r--
py_compile.py
7.653 KB
-rw-r--r--
pyclbr.py
11.129 KB
-rw-r--r--
pydoc.py
110.023 KB
-rwxr-xr-x
queue.py
11.227 KB
-rw-r--r--
quopri.py
7.11 KB
-rwxr-xr-x
random.py
31.408 KB
-rw-r--r--
reprlib.py
5.31 KB
-rw-r--r--
rlcompleter.py
7.644 KB
-rw-r--r--
runpy.py
12.851 KB
-rw-r--r--
sched.py
6.202 KB
-rw-r--r--
secrets.py
1.98 KB
-rw-r--r--
selectors.py
19.21 KB
-rw-r--r--
shelve.py
8.359 KB
-rw-r--r--
shlex.py
13.185 KB
-rw-r--r--
shutil.py
55.192 KB
-rw-r--r--
signal.py
2.437 KB
-rw-r--r--
site.py
22.448 KB
-rw-r--r--
smtpd.py
30.444 KB
-rwxr-xr-x
smtplib.py
44.366 KB
-rwxr-xr-x
sndhdr.py
7.273 KB
-rw-r--r--
socket.py
36.677 KB
-rw-r--r--
socketserver.py
26.939 KB
-rw-r--r--
sre_compile.py
0.226 KB
-rw-r--r--
sre_constants.py
0.227 KB
-rw-r--r--
sre_parse.py
0.224 KB
-rw-r--r--
ssl.py
53.032 KB
-rw-r--r--
stat.py
5.356 KB
-rw-r--r--
statistics.py
46.587 KB
-rw-r--r--
string.py
11.51 KB
-rw-r--r--
stringprep.py
12.614 KB
-rw-r--r--
struct.py
0.251 KB
-rw-r--r--
subprocess.py
86.646 KB
-rw-r--r--
sunau.py
18.047 KB
-rw-r--r--
symtable.py
10.125 KB
-rw-r--r--
sysconfig.py
29.604 KB
-rw-r--r--
tabnanny.py
11.047 KB
-rwxr-xr-x
tarfile.py
109.211 KB
-rwxr-xr-x
telnetlib.py
22.755 KB
-rw-r--r--
tempfile.py
31.126 KB
-rw-r--r--
textwrap.py
19.256 KB
-rw-r--r--
this.py
0.979 KB
-rw-r--r--
threading.py
56.866 KB
-rw-r--r--
timeit.py
13.215 KB
-rwxr-xr-x
token.py
2.33 KB
-rw-r--r--
tokenize.py
25.719 KB
-rw-r--r--
trace.py
28.512 KB
-rwxr-xr-x
traceback.py
39.597 KB
-rw-r--r--
tracemalloc.py
17.624 KB
-rw-r--r--
tty.py
0.858 KB
-rw-r--r--
types.py
9.831 KB
-rw-r--r--
typing.py
118.116 KB
-rw-r--r--
uu.py
7.169 KB
-rw-r--r--
uuid.py
26.95 KB
-rw-r--r--
warnings.py
20.615 KB
-rw-r--r--
wave.py
21.307 KB
-rw-r--r--
weakref.py
21.009 KB
-rw-r--r--
webbrowser.py
24.56 KB
-rwxr-xr-x
xdrlib.py
5.837 KB
-rw-r--r--
zipapp.py
7.358 KB
-rw-r--r--
zipfile.py
91.59 KB
-rw-r--r--
zipimport.py
30.173 KB
-rw-r--r--