Current Path: > > opt > alt > python33 > lib64 > python3.3 >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
collections | Directory | - | - | |
concurrent | Directory | - | - | |
config-3.3m | Directory | - | - | |
ctypes | Directory | - | - | |
curses | Directory | - | - | |
dbm | Directory | - | - | |
distutils | Directory | - | - | |
Directory | - | - | ||
encodings | Directory | - | - | |
html | Directory | - | - | |
http | Directory | - | - | |
idlelib | Directory | - | - | |
importlib | Directory | - | - | |
json | Directory | - | - | |
lib-dynload | Directory | - | - | |
lib2to3 | Directory | - | - | |
logging | Directory | - | - | |
multiprocessing | Directory | - | - | |
plat-linux | Directory | - | - | |
pydoc_data | Directory | - | - | |
site-packages | Directory | - | - | |
sqlite3 | Directory | - | - | |
test | Directory | - | - | |
unittest | Directory | - | - | |
urllib | Directory | - | - | |
venv | Directory | - | - | |
wsgiref | Directory | - | - | |
xml | Directory | - | - | |
xmlrpc | Directory | - | - | |
__future__.py | File | 4584 bytes | April 17 2024 16:58:21. | |
__phello__.foo.py | File | 64 bytes | April 17 2024 16:58:20. | |
_compat_pickle.py | File | 4338 bytes | April 17 2024 16:58:19. | |
_dummy_thread.py | File | 4769 bytes | April 17 2024 16:58:20. | |
_markupbase.py | File | 14598 bytes | April 17 2024 16:58:15. | |
_osx_support.py | File | 18855 bytes | April 17 2024 16:58:20. | |
_pyio.py | File | 72905 bytes | April 17 2024 16:58:17. | |
_strptime.py | File | 21674 bytes | April 17 2024 16:58:20. | |
_sysconfigdata.py | File | 22842 bytes | April 17 2024 16:58:20. | |
_threading_local.py | File | 7410 bytes | April 17 2024 16:58:15. | |
_weakrefset.py | File | 5705 bytes | April 17 2024 16:58:14. | |
abc.py | File | 8057 bytes | April 17 2024 16:58:15. | |
aifc.py | File | 31054 bytes | April 17 2024 16:58:21. | |
antigravity.py | File | 475 bytes | April 17 2024 16:58:16. | |
argparse.py | File | 89069 bytes | April 17 2024 16:58:20. | |
ast.py | File | 12142 bytes | April 17 2024 16:58:20. | |
asynchat.py | File | 11588 bytes | April 17 2024 16:58:19. | |
asyncore.py | File | 20753 bytes | April 17 2024 16:58:21. | |
base64.py | File | 13986 bytes | April 17 2024 16:58:17. | |
bdb.py | File | 21894 bytes | April 17 2024 16:58:19. | |
binhex.py | File | 13708 bytes | April 17 2024 16:58:14. | |
bisect.py | File | 2595 bytes | April 17 2024 16:58:13. | |
bz2.py | File | 18473 bytes | April 17 2024 16:58:20. | |
cProfile.py | File | 6361 bytes | April 17 2024 16:58:14. | |
calendar.py | File | 22940 bytes | April 17 2024 16:58:20. | |
cgi.py | File | 35554 bytes | April 17 2024 16:58:20. | |
cgitb.py | File | 12041 bytes | April 17 2024 16:58:21. | |
chunk.py | File | 5377 bytes | April 17 2024 16:58:17. | |
cmd.py | File | 14860 bytes | April 17 2024 16:58:14. | |
code.py | File | 10030 bytes | April 17 2024 16:58:16. | |
codecs.py | File | 35956 bytes | April 17 2024 16:58:15. | |
codeop.py | File | 5994 bytes | April 17 2024 16:58:14. | |
colorsys.py | File | 3691 bytes | April 17 2024 16:58:15. | |
compileall.py | File | 9743 bytes | April 17 2024 16:58:14. | |
configparser.py | File | 49437 bytes | April 17 2024 16:58:15. | |
contextlib.py | File | 9125 bytes | April 17 2024 16:58:14. | |
copy.py | File | 8991 bytes | April 17 2024 16:58:15. | |
copyreg.py | File | 6611 bytes | April 17 2024 16:58:20. | |
crypt.py | File | 1879 bytes | April 17 2024 16:58:14. | |
csv.py | File | 16185 bytes | April 17 2024 16:58:15. | |
datetime.py | File | 74954 bytes | April 17 2024 16:58:21. | |
decimal.py | File | 228558 bytes | April 17 2024 16:58:19. | |
difflib.py | File | 82519 bytes | April 17 2024 16:58:17. | |
dis.py | File | 10134 bytes | April 17 2024 16:58:15. | |
doctest.py | File | 102933 bytes | April 17 2024 16:58:15. | |
dummy_threading.py | File | 2815 bytes | April 17 2024 16:58:14. | |
filecmp.py | File | 9597 bytes | April 17 2024 16:58:15. | |
fileinput.py | File | 14256 bytes | April 17 2024 16:58:17. | |
fnmatch.py | File | 3163 bytes | April 17 2024 16:58:15. | |
formatter.py | File | 14930 bytes | April 17 2024 16:58:15. | |
fractions.py | File | 23033 bytes | April 17 2024 16:58:14. | |
ftplib.py | File | 40253 bytes | April 17 2024 16:58:15. | |
functools.py | File | 13596 bytes | April 17 2024 16:58:21. | |
genericpath.py | File | 3093 bytes | April 17 2024 16:58:21. | |
getopt.py | File | 7488 bytes | April 17 2024 16:58:20. | |
getpass.py | File | 5793 bytes | April 17 2024 16:58:14. | |
gettext.py | File | 20637 bytes | April 17 2024 16:58:20. | |
glob.py | File | 2838 bytes | April 17 2024 16:58:14. | |
gzip.py | File | 24403 bytes | April 17 2024 16:58:20. | |
hashlib.py | File | 6193 bytes | April 17 2024 16:58:21. | |
heapq.py | File | 17997 bytes | April 17 2024 16:58:13. | |
hmac.py | File | 4440 bytes | April 17 2024 16:58:17. | |
imaplib.py | File | 50111 bytes | April 17 2024 16:58:20. | |
imghdr.py | File | 3528 bytes | April 17 2024 16:58:20. | |
imp.py | File | 9727 bytes | April 17 2024 16:58:15. | |
inspect.py | File | 78960 bytes | April 17 2024 16:58:19. | |
io.py | File | 3280 bytes | April 17 2024 16:58:15. | |
ipaddress.py | File | 70303 bytes | April 17 2024 16:58:20. | |
keyword.py | File | 2060 bytes | April 17 2024 16:58:20. | |
linecache.py | File | 3864 bytes | April 17 2024 16:58:16. | |
locale.py | File | 93215 bytes | April 17 2024 16:58:19. | |
lzma.py | File | 17454 bytes | April 17 2024 16:58:20. | |
macpath.py | File | 5617 bytes | April 17 2024 16:58:15. | |
macurl2path.py | File | 2732 bytes | April 17 2024 16:58:15. | |
mailbox.py | File | 79093 bytes | April 17 2024 16:58:19. | |
mailcap.py | File | 7437 bytes | April 17 2024 16:58:14. | |
mimetypes.py | File | 20735 bytes | April 17 2024 16:58:19. | |
modulefinder.py | File | 23198 bytes | April 17 2024 16:58:14. | |
netrc.py | File | 5747 bytes | April 17 2024 16:58:17. | |
nntplib.py | File | 42786 bytes | April 17 2024 16:58:13. | |
ntpath.py | File | 20437 bytes | April 17 2024 16:58:14. | |
nturl2path.py | File | 2396 bytes | April 17 2024 16:58:20. | |
numbers.py | File | 10398 bytes | April 17 2024 16:58:20. | |
opcode.py | File | 5098 bytes | April 17 2024 16:58:21. | |
optparse.py | File | 60346 bytes | April 17 2024 16:58:20. | |
os.py | File | 34779 bytes | April 17 2024 16:58:14. | |
os2emxpath.py | File | 4659 bytes | April 17 2024 16:58:15. | |
pdb.py | File | 60653 bytes | April 17 2024 16:58:16. | |
pickle.py | File | 47858 bytes | April 17 2024 16:58:17. | |
pickletools.py | File | 81349 bytes | April 17 2024 16:58:15. | |
pipes.py | File | 8916 bytes | April 17 2024 16:58:20. | |
pkgutil.py | File | 21539 bytes | April 17 2024 16:58:15. | |
platform.py | File | 50742 bytes | April 17 2024 16:58:15. | |
plistlib.py | File | 14777 bytes | April 17 2024 16:58:13. | |
poplib.py | File | 11372 bytes | April 17 2024 16:58:13. | |
posixpath.py | File | 14254 bytes | April 17 2024 16:58:16. | |
pprint.py | File | 12700 bytes | April 17 2024 16:58:15. | |
profile.py | File | 21448 bytes | April 17 2024 16:58:17. | |
pstats.py | File | 26372 bytes | April 17 2024 16:58:14. | |
pty.py | File | 5055 bytes | April 17 2024 16:58:14. | |
py_compile.py | File | 6717 bytes | April 17 2024 16:58:19. | |
pyclbr.py | File | 13438 bytes | April 17 2024 16:58:13. | |
pydoc.py | File | 101644 bytes | April 17 2024 16:58:15. | |
queue.py | File | 8835 bytes | April 17 2024 16:58:20. | |
quopri.py | File | 7315 bytes | April 17 2024 16:58:20. | |
random.py | File | 25660 bytes | April 17 2024 16:58:14. | |
re.py | File | 14973 bytes | April 17 2024 16:58:17. | |
reprlib.py | File | 5110 bytes | April 17 2024 16:58:15. | |
rlcompleter.py | File | 5526 bytes | April 17 2024 16:58:21. | |
runpy.py | File | 10413 bytes | April 17 2024 16:58:14. | |
sched.py | File | 6399 bytes | April 17 2024 16:58:19. | |
shelve.py | File | 8243 bytes | April 17 2024 16:58:20. | |
shlex.py | File | 11502 bytes | April 17 2024 16:58:21. | |
shutil.py | File | 39147 bytes | April 17 2024 16:58:20. | |
site.py | File | 21971 bytes | April 17 2024 16:58:19. | |
smtpd.py | File | 30207 bytes | April 17 2024 16:58:16. | |
smtplib.py | File | 38021 bytes | April 17 2024 16:58:14. | |
sndhdr.py | File | 6219 bytes | April 17 2024 16:58:20. | |
socket.py | File | 14913 bytes | April 17 2024 16:58:20. | |
socketserver.py | File | 24196 bytes | April 17 2024 16:58:21. | |
sre_compile.py | File | 16345 bytes | April 17 2024 16:58:14. | |
sre_constants.py | File | 7231 bytes | April 17 2024 16:58:14. | |
sre_parse.py | File | 30212 bytes | April 17 2024 16:58:16. | |
ssl.py | File | 24478 bytes | April 17 2024 16:58:19. | |
stat.py | File | 4304 bytes | April 17 2024 16:58:19. | |
string.py | File | 9410 bytes | April 17 2024 16:58:20. | |
stringprep.py | File | 12917 bytes | April 17 2024 16:58:17. | |
struct.py | File | 238 bytes | April 17 2024 16:58:16. | |
subprocess.py | File | 67578 bytes | April 17 2024 16:58:14. | |
sunau.py | File | 17523 bytes | April 17 2024 16:58:15. | |
symbol.py | File | 2051 bytes | April 17 2024 16:58:14. | |
symtable.py | File | 7383 bytes | April 17 2024 16:58:20. | |
sysconfig.py | File | 25174 bytes | April 17 2024 16:58:20. | |
tabnanny.py | File | 11410 bytes | April 17 2024 16:58:20. | |
tarfile.py | File | 88864 bytes | April 17 2024 16:58:15. | |
telnetlib.py | File | 27349 bytes | April 17 2024 16:58:15. | |
tempfile.py | File | 23013 bytes | April 17 2024 16:58:14. | |
textwrap.py | File | 16488 bytes | April 17 2024 16:58:14. | |
this.py | File | 1003 bytes | April 17 2024 16:58:17. | |
threading.py | File | 45641 bytes | April 17 2024 16:58:19. | |
timeit.py | File | 12395 bytes | April 17 2024 16:58:15. | |
token.py | File | 3034 bytes | April 17 2024 16:58:14. | |
tokenize.py | File | 24876 bytes | April 17 2024 16:58:20. | |
trace.py | File | 31487 bytes | April 17 2024 16:58:13. | |
traceback.py | File | 11982 bytes | April 17 2024 16:58:20. | |
tty.py | File | 879 bytes | April 17 2024 16:58:13. | |
types.py | File | 3167 bytes | April 17 2024 16:58:14. | |
uu.py | File | 6766 bytes | April 17 2024 16:58:14. | |
uuid.py | File | 22349 bytes | April 17 2024 16:58:15. | |
warnings.py | File | 13825 bytes | April 17 2024 16:58:15. | |
wave.py | File | 18579 bytes | April 17 2024 16:58:15. | |
weakref.py | File | 11495 bytes | April 17 2024 16:58:19. | |
webbrowser.py | File | 22913 bytes | April 17 2024 16:58:20. | |
xdrlib.py | File | 5381 bytes | April 17 2024 16:58:21. | |
zipfile.py | File | 66424 bytes | April 17 2024 16:58:21. |
# Author: Fred L. Drake, Jr. # fdrake@acm.org # # This is a simple little module I wrote to make life easier. I didn't # see anything quite like it in the library, though I may have overlooked # something. I wrote this when I was trying to read some heavily nested # tuples with fairly non-descriptive content. This is modeled very much # after Lisp/Scheme - style pretty-printing of lists. If you find it # useful, thank small children who sleep at night. """Support to pretty-print lists, tuples, & dictionaries recursively. Very simple, but useful, especially in debugging data structures. Classes ------- PrettyPrinter() Handle pretty-printing operations onto a stream using a configured set of formatting parameters. Functions --------- pformat() Format a Python object into a pretty-printed representation. pprint() Pretty-print a Python object to a stream [default is sys.stdout]. saferepr() Generate a 'standard' repr()-like value, but protect against recursive data structures. """ import sys as _sys from collections import OrderedDict as _OrderedDict from io import StringIO as _StringIO __all__ = ["pprint","pformat","isreadable","isrecursive","saferepr", "PrettyPrinter"] # cache these for faster access: _commajoin = ", ".join _id = id _len = len _type = type def pprint(object, stream=None, indent=1, width=80, depth=None): """Pretty-print a Python object to a stream [default is sys.stdout].""" printer = PrettyPrinter( stream=stream, indent=indent, width=width, depth=depth) printer.pprint(object) def pformat(object, indent=1, width=80, depth=None): """Format a Python object into a pretty-printed representation.""" return PrettyPrinter(indent=indent, width=width, depth=depth).pformat(object) def saferepr(object): """Version of repr() which can handle recursive data structures.""" return _safe_repr(object, {}, None, 0)[0] def isreadable(object): """Determine if saferepr(object) is readable by eval().""" return _safe_repr(object, {}, None, 0)[1] def isrecursive(object): """Determine if object requires a recursive representation.""" return _safe_repr(object, {}, None, 0)[2] class _safe_key: """Helper function for key functions when sorting unorderable objects. The wrapped-object will fallback to an Py2.x style comparison for unorderable types (sorting first comparing the type name and then by the obj ids). Does not work recursively, so dict.items() must have _safe_key applied to both the key and the value. """ __slots__ = ['obj'] def __init__(self, obj): self.obj = obj def __lt__(self, other): try: rv = self.obj.__lt__(other.obj) except TypeError: rv = NotImplemented if rv is NotImplemented: rv = (str(type(self.obj)), id(self.obj)) < \ (str(type(other.obj)), id(other.obj)) return rv def _safe_tuple(t): "Helper function for comparing 2-tuples" return _safe_key(t[0]), _safe_key(t[1]) class PrettyPrinter: def __init__(self, indent=1, width=80, depth=None, stream=None): """Handle pretty printing operations onto a stream using a set of configured parameters. indent Number of spaces to indent for each level of nesting. width Attempted maximum number of columns in the output. depth The maximum depth to print out nested structures. stream The desired output stream. If omitted (or false), the standard output stream available at construction will be used. """ indent = int(indent) width = int(width) assert indent >= 0, "indent must be >= 0" assert depth is None or depth > 0, "depth must be > 0" assert width, "width must be != 0" self._depth = depth self._indent_per_level = indent self._width = width if stream is not None: self._stream = stream else: self._stream = _sys.stdout def pprint(self, object): self._format(object, self._stream, 0, 0, {}, 0) self._stream.write("\n") def pformat(self, object): sio = _StringIO() self._format(object, sio, 0, 0, {}, 0) return sio.getvalue() def isrecursive(self, object): return self.format(object, {}, 0, 0)[2] def isreadable(self, object): s, readable, recursive = self.format(object, {}, 0, 0) return readable and not recursive def _format(self, object, stream, indent, allowance, context, level): level = level + 1 objid = _id(object) if objid in context: stream.write(_recursion(object)) self._recursive = True self._readable = False return rep = self._repr(object, context, level - 1) typ = _type(object) sepLines = _len(rep) > (self._width - 1 - indent - allowance) write = stream.write if self._depth and level > self._depth: write(rep) return if sepLines: r = getattr(typ, "__repr__", None) if issubclass(typ, dict): write('{') if self._indent_per_level > 1: write((self._indent_per_level - 1) * ' ') length = _len(object) if length: context[objid] = 1 indent = indent + self._indent_per_level if issubclass(typ, _OrderedDict): items = list(object.items()) else: items = sorted(object.items(), key=_safe_tuple) key, ent = items[0] rep = self._repr(key, context, level) write(rep) write(': ') self._format(ent, stream, indent + _len(rep) + 2, allowance + 1, context, level) if length > 1: for key, ent in items[1:]: rep = self._repr(key, context, level) write(',\n%s%s: ' % (' '*indent, rep)) self._format(ent, stream, indent + _len(rep) + 2, allowance + 1, context, level) indent = indent - self._indent_per_level del context[objid] write('}') return if ((issubclass(typ, list) and r is list.__repr__) or (issubclass(typ, tuple) and r is tuple.__repr__) or (issubclass(typ, set) and r is set.__repr__) or (issubclass(typ, frozenset) and r is frozenset.__repr__) ): length = _len(object) if issubclass(typ, list): write('[') endchar = ']' elif issubclass(typ, tuple): write('(') endchar = ')' else: if not length: write(rep) return if typ is set: write('{') endchar = '}' else: write(typ.__name__) write('({') endchar = '})' indent += len(typ.__name__) + 1 object = sorted(object, key=_safe_key) if self._indent_per_level > 1: write((self._indent_per_level - 1) * ' ') if length: context[objid] = 1 indent = indent + self._indent_per_level self._format(object[0], stream, indent, allowance + 1, context, level) if length > 1: for ent in object[1:]: write(',\n' + ' '*indent) self._format(ent, stream, indent, allowance + 1, context, level) indent = indent - self._indent_per_level del context[objid] if issubclass(typ, tuple) and length == 1: write(',') write(endchar) return write(rep) def _repr(self, object, context, level): repr, readable, recursive = self.format(object, context.copy(), self._depth, level) if not readable: self._readable = False if recursive: self._recursive = True return repr def format(self, object, context, maxlevels, level): """Format object for a specific context, returning a string and flags indicating whether the representation is 'readable' and whether the object represents a recursive construct. """ return _safe_repr(object, context, maxlevels, level) # Return triple (repr_string, isreadable, isrecursive). def _safe_repr(object, context, maxlevels, level): typ = _type(object) if typ is str: if 'locale' not in _sys.modules: return repr(object), True, False if "'" in object and '"' not in object: closure = '"' quotes = {'"': '\\"'} else: closure = "'" quotes = {"'": "\\'"} qget = quotes.get sio = _StringIO() write = sio.write for char in object: if char.isalpha(): write(char) else: write(qget(char, repr(char)[1:-1])) return ("%s%s%s" % (closure, sio.getvalue(), closure)), True, False r = getattr(typ, "__repr__", None) if issubclass(typ, dict) and r is dict.__repr__: if not object: return "{}", True, False objid = _id(object) if maxlevels and level >= maxlevels: return "{...}", False, objid in context if objid in context: return _recursion(object), False, True context[objid] = 1 readable = True recursive = False components = [] append = components.append level += 1 saferepr = _safe_repr items = sorted(object.items(), key=_safe_tuple) for k, v in items: krepr, kreadable, krecur = saferepr(k, context, maxlevels, level) vrepr, vreadable, vrecur = saferepr(v, context, maxlevels, level) append("%s: %s" % (krepr, vrepr)) readable = readable and kreadable and vreadable if krecur or vrecur: recursive = True del context[objid] return "{%s}" % _commajoin(components), readable, recursive if (issubclass(typ, list) and r is list.__repr__) or \ (issubclass(typ, tuple) and r is tuple.__repr__): if issubclass(typ, list): if not object: return "[]", True, False format = "[%s]" elif _len(object) == 1: format = "(%s,)" else: if not object: return "()", True, False format = "(%s)" objid = _id(object) if maxlevels and level >= maxlevels: return format % "...", False, objid in context if objid in context: return _recursion(object), False, True context[objid] = 1 readable = True recursive = False components = [] append = components.append level += 1 for o in object: orepr, oreadable, orecur = _safe_repr(o, context, maxlevels, level) append(orepr) if not oreadable: readable = False if orecur: recursive = True del context[objid] return format % _commajoin(components), readable, recursive rep = repr(object) return rep, (rep and not rep.startswith('<')), False def _recursion(object): return ("<Recursion on %s with id=%s>" % (_type(object).__name__, _id(object))) def _perfcheck(object=None): import time if object is None: object = [("string", (1, 2), [3, 4], {5: 6, 7: 8})] * 100000 p = PrettyPrinter() t1 = time.time() _safe_repr(object, {}, None, 0) t2 = time.time() p.pformat(object) t3 = time.time() print("_safe_repr:", t2 - t1) print("pformat:", t3 - t2) if __name__ == "__main__": _perfcheck()
SILENT KILLER Tool