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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python37/lib64/python3.7/cgitb.py
"""More comprehensive traceback formatting for Python scripts.

To enable this module, do:

    import cgitb; cgitb.enable()

at the top of your script.  The optional arguments to enable() are:

    display     - if true, tracebacks are displayed in the web browser
    logdir      - if set, tracebacks are written to files in this directory
    context     - number of lines of source code to show for each stack frame
    format      - 'text' or 'html' controls the output format

By default, tracebacks are displayed but not saved, the context is 5 lines
and the output format is 'html' (for backwards compatibility with the
original use of this module)

Alternatively, if you have caught an exception and want cgitb to display it
for you, call cgitb.handler().  The optional argument to handler() is a
3-item tuple (etype, evalue, etb) just like the value of sys.exc_info().
The default handler displays output as HTML.

"""
import inspect
import keyword
import linecache
import os
import pydoc
import sys
import tempfile
import time
import tokenize
import traceback

def reset():
    """Return a string that resets the CGI and browser to a known state."""
    return '''<!--: spam
Content-Type: text/html

<body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> -->
<body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> --> -->
</font> </font> </font> </script> </object> </blockquote> </pre>
</table> </table> </table> </table> </table> </font> </font> </font>'''

__UNDEF__ = []                          # a special sentinel object
def small(text):
    if text:
        return '<small>' + text + '</small>'
    else:
        return ''

def strong(text):
    if text:
        return '<strong>' + text + '</strong>'
    else:
        return ''

def grey(text):
    if text:
        return '<font color="#909090">' + text + '</font>'
    else:
        return ''

def lookup(name, frame, locals):
    """Find the value for a given name in the given environment."""
    if name in locals:
        return 'local', locals[name]
    if name in frame.f_globals:
        return 'global', frame.f_globals[name]
    if '__builtins__' in frame.f_globals:
        builtins = frame.f_globals['__builtins__']
        if type(builtins) is type({}):
            if name in builtins:
                return 'builtin', builtins[name]
        else:
            if hasattr(builtins, name):
                return 'builtin', getattr(builtins, name)
    return None, __UNDEF__

def scanvars(reader, frame, locals):
    """Scan one logical line of Python and look up values of variables used."""
    vars, lasttoken, parent, prefix, value = [], None, None, '', __UNDEF__
    for ttype, token, start, end, line in tokenize.generate_tokens(reader):
        if ttype == tokenize.NEWLINE: break
        if ttype == tokenize.NAME and token not in keyword.kwlist:
            if lasttoken == '.':
                if parent is not __UNDEF__:
                    value = getattr(parent, token, __UNDEF__)
                    vars.append((prefix + token, prefix, value))
            else:
                where, value = lookup(token, frame, locals)
                vars.append((token, where, value))
        elif token == '.':
            prefix += lasttoken + '.'
            parent = value
        else:
            parent, prefix = None, ''
        lasttoken = token
    return vars

def html(einfo, context=5):
    """Return a nice HTML document describing a given traceback."""
    etype, evalue, etb = einfo
    if isinstance(etype, type):
        etype = etype.__name__
    pyver = 'Python ' + sys.version.split()[0] + ': ' + sys.executable
    date = time.ctime(time.time())
    head = '<body bgcolor="#f0f0f8">' + pydoc.html.heading(
        '<big><big>%s</big></big>' %
        strong(pydoc.html.escape(str(etype))),
        '#ffffff', '#6622aa', pyver + '<br>' + date) + '''
<p>A problem occurred in a Python script.  Here is the sequence of
function calls leading up to the error, in the order they occurred.</p>'''

    indent = '<tt>' + small('&nbsp;' * 5) + '&nbsp;</tt>'
    frames = []
    records = inspect.getinnerframes(etb, context)
    for frame, file, lnum, func, lines, index in records:
        if file:
            file = os.path.abspath(file)
            link = '<a href="file://%s">%s</a>' % (file, pydoc.html.escape(file))
        else:
            file = link = '?'
        args, varargs, varkw, locals = inspect.getargvalues(frame)
        call = ''
        if func != '?':
            call = 'in ' + strong(pydoc.html.escape(func)) + \
                inspect.formatargvalues(args, varargs, varkw, locals,
                    formatvalue=lambda value: '=' + pydoc.html.repr(value))

        highlight = {}
        def reader(lnum=[lnum]):
            highlight[lnum[0]] = 1
            try: return linecache.getline(file, lnum[0])
            finally: lnum[0] += 1
        vars = scanvars(reader, frame, locals)

        rows = ['<tr><td bgcolor="#d8bbff">%s%s %s</td></tr>' %
                ('<big>&nbsp;</big>', link, call)]
        if index is not None:
            i = lnum - index
            for line in lines:
                num = small('&nbsp;' * (5-len(str(i))) + str(i)) + '&nbsp;'
                if i in highlight:
                    line = '<tt>=&gt;%s%s</tt>' % (num, pydoc.html.preformat(line))
                    rows.append('<tr><td bgcolor="#ffccee">%s</td></tr>' % line)
                else:
                    line = '<tt>&nbsp;&nbsp;%s%s</tt>' % (num, pydoc.html.preformat(line))
                    rows.append('<tr><td>%s</td></tr>' % grey(line))
                i += 1

        done, dump = {}, []
        for name, where, value in vars:
            if name in done: continue
            done[name] = 1
            if value is not __UNDEF__:
                if where in ('global', 'builtin'):
                    name = ('<em>%s</em> ' % where) + strong(name)
                elif where == 'local':
                    name = strong(name)
                else:
                    name = where + strong(name.split('.')[-1])
                dump.append('%s&nbsp;= %s' % (name, pydoc.html.repr(value)))
            else:
                dump.append(name + ' <em>undefined</em>')

        rows.append('<tr><td>%s</td></tr>' % small(grey(', '.join(dump))))
        frames.append('''
<table width="100%%" cellspacing=0 cellpadding=0 border=0>
%s</table>''' % '\n'.join(rows))

    exception = ['<p>%s: %s' % (strong(pydoc.html.escape(str(etype))),
                                pydoc.html.escape(str(evalue)))]
    for name in dir(evalue):
        if name[:1] == '_': continue
        value = pydoc.html.repr(getattr(evalue, name))
        exception.append('\n<br>%s%s&nbsp;=\n%s' % (indent, name, value))

    return head + ''.join(frames) + ''.join(exception) + '''


<!-- The above is a description of an error in a Python program, formatted
     for a Web browser because the 'cgitb' module was enabled.  In case you
     are not reading this in a Web browser, here is the original traceback:

%s
-->
''' % pydoc.html.escape(
          ''.join(traceback.format_exception(etype, evalue, etb)))

def text(einfo, context=5):
    """Return a plain text document describing a given traceback."""
    etype, evalue, etb = einfo
    if isinstance(etype, type):
        etype = etype.__name__
    pyver = 'Python ' + sys.version.split()[0] + ': ' + sys.executable
    date = time.ctime(time.time())
    head = "%s\n%s\n%s\n" % (str(etype), pyver, date) + '''
A problem occurred in a Python script.  Here is the sequence of
function calls leading up to the error, in the order they occurred.
'''

    frames = []
    records = inspect.getinnerframes(etb, context)
    for frame, file, lnum, func, lines, index in records:
        file = file and os.path.abspath(file) or '?'
        args, varargs, varkw, locals = inspect.getargvalues(frame)
        call = ''
        if func != '?':
            call = 'in ' + func + \
                inspect.formatargvalues(args, varargs, varkw, locals,
                    formatvalue=lambda value: '=' + pydoc.text.repr(value))

        highlight = {}
        def reader(lnum=[lnum]):
            highlight[lnum[0]] = 1
            try: return linecache.getline(file, lnum[0])
            finally: lnum[0] += 1
        vars = scanvars(reader, frame, locals)

        rows = [' %s %s' % (file, call)]
        if index is not None:
            i = lnum - index
            for line in lines:
                num = '%5d ' % i
                rows.append(num+line.rstrip())
                i += 1

        done, dump = {}, []
        for name, where, value in vars:
            if name in done: continue
            done[name] = 1
            if value is not __UNDEF__:
                if where == 'global': name = 'global ' + name
                elif where != 'local': name = where + name.split('.')[-1]
                dump.append('%s = %s' % (name, pydoc.text.repr(value)))
            else:
                dump.append(name + ' undefined')

        rows.append('\n'.join(dump))
        frames.append('\n%s\n' % '\n'.join(rows))

    exception = ['%s: %s' % (str(etype), str(evalue))]
    for name in dir(evalue):
        value = pydoc.text.repr(getattr(evalue, name))
        exception.append('\n%s%s = %s' % (" "*4, name, value))

    return head + ''.join(frames) + ''.join(exception) + '''

The above is a description of an error in a Python program.  Here is
the original traceback:

%s
''' % ''.join(traceback.format_exception(etype, evalue, etb))

class Hook:
    """A hook to replace sys.excepthook that shows tracebacks in HTML."""

    def __init__(self, display=1, logdir=None, context=5, file=None,
                 format="html"):
        self.display = display          # send tracebacks to browser if true
        self.logdir = logdir            # log tracebacks to files if not None
        self.context = context          # number of source code lines per frame
        self.file = file or sys.stdout  # place to send the output
        self.format = format

    def __call__(self, etype, evalue, etb):
        self.handle((etype, evalue, etb))

    def handle(self, info=None):
        info = info or sys.exc_info()
        if self.format == "html":
            self.file.write(reset())

        formatter = (self.format=="html") and html or text
        plain = False
        try:
            doc = formatter(info, self.context)
        except:                         # just in case something goes wrong
            doc = ''.join(traceback.format_exception(*info))
            plain = True

        if self.display:
            if plain:
                doc = pydoc.html.escape(doc)
                self.file.write('<pre>' + doc + '</pre>\n')
            else:
                self.file.write(doc + '\n')
        else:
            self.file.write('<p>A problem occurred in a Python script.\n')

        if self.logdir is not None:
            suffix = ['.txt', '.html'][self.format=="html"]
            (fd, path) = tempfile.mkstemp(suffix=suffix, dir=self.logdir)

            try:
                with os.fdopen(fd, 'w') as file:
                    file.write(doc)
                msg = '%s contains the description of this error.' % path
            except:
                msg = 'Tried to save traceback to %s, but failed.' % path

            if self.format == 'html':
                self.file.write('<p>%s</p>\n' % msg)
            else:
                self.file.write(msg + '\n')
        try:
            self.file.flush()
        except: pass

handler = Hook().handle
def enable(display=1, logdir=None, context=5, format="html"):
    """Install an exception handler that formats tracebacks as HTML.

    The optional argument 'display' can be set to 0 to suppress sending the
    traceback to the browser, and 'logdir' can be set to a directory to cause
    tracebacks to be written to files there."""
    sys.excepthook = Hook(display=display, logdir=logdir,
                          context=context, format=format)
Name
Size
Permissions
Options
__pycache__
--
drwxr-xr-x
asyncio
--
drwxr-xr-x
collections
--
drwxr-xr-x
concurrent
--
drwxr-xr-x
config-3.7m
--
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
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.981 KB
-rw-r--r--
__phello__.foo.py
0.063 KB
-rw-r--r--
_bootlocale.py
1.759 KB
-rw-r--r--
_collections_abc.py
25.805 KB
-rw-r--r--
_compat_pickle.py
8.544 KB
-rw-r--r--
_compression.py
5.215 KB
-rw-r--r--
_dummy_thread.py
5.886 KB
-rw-r--r--
_markupbase.py
14.256 KB
-rw-r--r--
_osx_support.py
19.141 KB
-rw-r--r--
_py_abc.py
6.041 KB
-rw-r--r--
_pydecimal.py
223.33 KB
-rw-r--r--
_pyio.py
89.469 KB
-rw-r--r--
_sitebuiltins.py
3.042 KB
-rw-r--r--
_strptime.py
24.906 KB
-rw-r--r--
_sysconfigdata_dm_linux_x86_64-linux-gnu.py
30.595 KB
-rw-r--r--
_sysconfigdata_m_linux_x86_64-linux-gnu.py
27.93 KB
-rw-r--r--
_threading_local.py
7.045 KB
-rw-r--r--
_weakrefset.py
5.546 KB
-rw-r--r--
abc.py
5.449 KB
-rw-r--r--
aifc.py
32.045 KB
-rw-r--r--
antigravity.py
0.466 KB
-rw-r--r--
argparse.py
93.137 KB
-rw-r--r--
ast.py
12.541 KB
-rw-r--r--
asynchat.py
11.063 KB
-rw-r--r--
asyncore.py
19.646 KB
-rw-r--r--
base64.py
19.915 KB
-rwxr-xr-x
bdb.py
30.986 KB
-rw-r--r--
binhex.py
13.627 KB
-rw-r--r--
bisect.py
2.497 KB
-rw-r--r--
bz2.py
12.119 KB
-rw-r--r--
cProfile.py
6.106 KB
-rwxr-xr-x
calendar.py
24.244 KB
-rw-r--r--
cgi.py
34.229 KB
-rwxr-xr-x
cgitb.py
11.736 KB
-rw-r--r--
chunk.py
5.308 KB
-rw-r--r--
cmd.py
14.512 KB
-rw-r--r--
code.py
10.373 KB
-rw-r--r--
codecs.py
35.757 KB
-rw-r--r--
codeop.py
6.128 KB
-rw-r--r--
colorsys.py
3.969 KB
-rw-r--r--
compileall.py
13.465 KB
-rw-r--r--
configparser.py
53.011 KB
-rw-r--r--
contextlib.py
24.183 KB
-rw-r--r--
contextvars.py
0.126 KB
-rw-r--r--
copy.py
8.648 KB
-rw-r--r--
copyreg.py
6.853 KB
-rw-r--r--
crypt.py
3.268 KB
-rw-r--r--
csv.py
15.801 KB
-rw-r--r--
dataclasses.py
48.359 KB
-rw-r--r--
datetime.py
84.516 KB
-rw-r--r--
decimal.py
0.313 KB
-rw-r--r--
difflib.py
82.415 KB
-rw-r--r--
dis.py
19.422 KB
-rw-r--r--
doctest.py
102.109 KB
-rw-r--r--
dummy_threading.py
2.749 KB
-rw-r--r--
enum.py
34.222 KB
-rw-r--r--
filecmp.py
9.6 KB
-rw-r--r--
fileinput.py
14.282 KB
-rw-r--r--
fnmatch.py
3.961 KB
-rw-r--r--
formatter.py
14.788 KB
-rw-r--r--
fractions.py
23.195 KB
-rw-r--r--
ftplib.py
34.783 KB
-rw-r--r--
functools.py
32.16 KB
-rw-r--r--
genericpath.py
4.797 KB
-rw-r--r--
getopt.py
7.313 KB
-rw-r--r--
getpass.py
5.854 KB
-rw-r--r--
gettext.py
21.452 KB
-rw-r--r--
glob.py
5.506 KB
-rw-r--r--
gzip.py
20.153 KB
-rw-r--r--
hashlib.py
9.311 KB
-rw-r--r--
heapq.py
22.478 KB
-rw-r--r--
hmac.py
6.364 KB
-rw-r--r--
imaplib.py
52.043 KB
-rw-r--r--
imghdr.py
3.706 KB
-rw-r--r--
imp.py
10.289 KB
-rw-r--r--
inspect.py
114.878 KB
-rw-r--r--
io.py
3.435 KB
-rw-r--r--
ipaddress.py
71.854 KB
-rw-r--r--
keyword.py
2.203 KB
-rwxr-xr-x
linecache.py
5.205 KB
-rw-r--r--
locale.py
76.358 KB
-rw-r--r--
lzma.py
12.679 KB
-rw-r--r--
macpath.py
5.979 KB
-rw-r--r--
mailbox.py
76.811 KB
-rw-r--r--
mailcap.py
8.854 KB
-rw-r--r--
mimetypes.py
20.992 KB
-rw-r--r--
modulefinder.py
22.495 KB
-rw-r--r--
netrc.py
5.436 KB
-rw-r--r--
nntplib.py
42.077 KB
-rw-r--r--
ntpath.py
21.816 KB
-rw-r--r--
nturl2path.py
2.523 KB
-rw-r--r--
numbers.py
10.004 KB
-rw-r--r--
opcode.py
5.688 KB
-rw-r--r--
operator.py
10.608 KB
-rw-r--r--
optparse.py
58.956 KB
-rw-r--r--
os.py
37.013 KB
-rw-r--r--
pathlib.py
49.149 KB
-rw-r--r--
pdb.py
61.04 KB
-rwxr-xr-x
pickle.py
56.635 KB
-rw-r--r--
pickletools.py
89.082 KB
-rw-r--r--
pipes.py
8.707 KB
-rw-r--r--
pkgutil.py
20.958 KB
-rw-r--r--
platform.py
45.893 KB
-rwxr-xr-x
plistlib.py
29.989 KB
-rw-r--r--
poplib.py
14.613 KB
-rw-r--r--
posixpath.py
15.401 KB
-rw-r--r--
pprint.py
20.395 KB
-rw-r--r--
profile.py
21.967 KB
-rwxr-xr-x
pstats.py
26.675 KB
-rw-r--r--
pty.py
4.651 KB
-rw-r--r--
py_compile.py
7.813 KB
-rw-r--r--
pyclbr.py
14.782 KB
-rw-r--r--
pydoc.py
103.395 KB
-rw-r--r--
queue.py
11.093 KB
-rw-r--r--
quopri.py
7.095 KB
-rwxr-xr-x
random.py
26.911 KB
-rw-r--r--
re.py
14.947 KB
-rw-r--r--
reprlib.py
5.144 KB
-rw-r--r--
rlcompleter.py
6.931 KB
-rw-r--r--
runpy.py
11.679 KB
-rw-r--r--
sched.py
6.291 KB
-rw-r--r--
secrets.py
1.99 KB
-rw-r--r--
selectors.py
18.126 KB
-rw-r--r--
shelve.py
8.327 KB
-rw-r--r--
shlex.py
12.793 KB
-rw-r--r--
shutil.py
40.967 KB
-rw-r--r--
signal.py
2.073 KB
-rw-r--r--
site.py
21.069 KB
-rw-r--r--
smtpd.py
33.908 KB
-rwxr-xr-x
smtplib.py
43.401 KB
-rwxr-xr-x
sndhdr.py
6.92 KB
-rw-r--r--
socket.py
26.825 KB
-rw-r--r--
socketserver.py
26.292 KB
-rw-r--r--
sre_compile.py
26.242 KB
-rw-r--r--
sre_constants.py
7.009 KB
-rw-r--r--
sre_parse.py
38.238 KB
-rw-r--r--
ssl.py
44.429 KB
-rw-r--r--
stat.py
5.265 KB
-rw-r--r--
statistics.py
20.167 KB
-rw-r--r--
string.py
11.293 KB
-rw-r--r--
stringprep.py
12.614 KB
-rw-r--r--
struct.py
0.251 KB
-rw-r--r--
subprocess.py
70.946 KB
-rw-r--r--
sunau.py
17.944 KB
-rw-r--r--
symbol.py
2.092 KB
-rwxr-xr-x
symtable.py
7.108 KB
-rw-r--r--
sysconfig.py
23.867 KB
-rw-r--r--
tabnanny.py
11.151 KB
-rwxr-xr-x
tarfile.py
90.503 KB
-rwxr-xr-x
telnetlib.py
22.593 KB
-rw-r--r--
tempfile.py
26.104 KB
-rw-r--r--
textwrap.py
18.952 KB
-rw-r--r--
this.py
0.979 KB
-rw-r--r--
threading.py
48.129 KB
-rw-r--r--
timeit.py
13.177 KB
-rwxr-xr-x
token.py
3.675 KB
-rw-r--r--
tokenize.py
26.397 KB
-rw-r--r--
trace.py
28.226 KB
-rwxr-xr-x
traceback.py
22.888 KB
-rw-r--r--
tracemalloc.py
16.676 KB
-rw-r--r--
tty.py
0.858 KB
-rw-r--r--
types.py
9.665 KB
-rw-r--r--
typing.py
55.115 KB
-rw-r--r--
uu.py
7.106 KB
-rw-r--r--
uuid.py
28.826 KB
-rw-r--r--
warnings.py
19.609 KB
-rw-r--r--
wave.py
17.803 KB
-rw-r--r--
weakref.py
21.004 KB
-rw-r--r--
webbrowser.py
23.159 KB
-rwxr-xr-x
xdrlib.py
5.774 KB
-rw-r--r--
zipapp.py
7.358 KB
-rw-r--r--
zipfile.py
79.193 KB
-rw-r--r--