8.2.34 | Linux | www-data (uid:33)
πŸ‘ View: pipes.py
πŸ“ /snap/core20/current/lib/python3.8/pipes.py
"""Conversion pipeline templates. The problem: ------------ Suppose you have some data that you want to convert to another format, such as from GIF image format to PPM image format. Maybe the conversion involves several steps (e.g. piping it through compress or uuencode). Some of the conversion steps may require that their input is a disk file, others may be able to read standard input; similar for their output. The input to the entire conversion may also be read from a disk file or from an open file, and similar for its output. The module lets you construct a pipeline template by sticking one or more conversion steps together. It will take care of creating and removing temporary files if they are necessary to hold intermediate data. You can then use the template to do conversions from many different sources to many different destinations. The temporary file names used are different each time the template is used. The templates are objects so you can create templates for many different conversion steps and store them in a dictionary, for instance. Directions: ----------- To create a template: t = Template() To add a conversion step to a template: t.append(command, kind) where kind is a string of two characters: the first is '-' if the command reads its standard input or 'f' if it requires a file; the second likewise for the output. The command must be valid /bin/sh syntax. If input or output files are required, they are passed as $IN and $OUT; otherwise, it must be possible to use the command in a pipeline. To add a conversion step at the beginning: t.prepend(command, kind) To convert a file to another file using a template: sts = t.copy(infile, outfile) If infile or outfile are the empty string, standard input is read or standard output is written, respectively. The return value is the exit status of the conversion pipeline. To open a file for reading or writing through a conversion pipeline: fp = t.open(file, mode) where mode is 'r' to read the file, or 'w' to write it -- just like for the built-in function open() or for os.popen(). To create a new template object initialized to a given one: t2 = t.clone() """ # ' import re import os import tempfile # we import the quote function rather than the module for backward compat # (quote used to be an undocumented but used function in pipes) from shlex import quote __all__ = ["Template"] # Conversion step kinds FILEIN_FILEOUT = 'ff' # Must read & write real files STDIN_FILEOUT = '-f' # Must write a real file FILEIN_STDOUT = 'f-' # Must read a real file STDIN_STDOUT = '--' # Normal pipeline element SOURCE = '.-' # Must be first, writes stdout SINK = '-.' # Must be last, reads stdin stepkinds = [FILEIN_FILEOUT, STDIN_FILEOUT, FILEIN_STDOUT, STDIN_STDOUT, \ SOURCE, SINK] class Template: """Class representing a pipeline template.""" def __init__(self): """Template() returns a fresh pipeline template.""" self.debugging = 0 self.reset() def __repr__(self): """t.__repr__() implements repr(t).""" return '<Template instance, steps=%r>' % (self.steps,) def reset(self): """t.reset() restores a pipeline template to its initial state.""" self.steps = [] def clone(self): """t.clone() returns a new pipeline template with identical initial state as the current one.""" t = Template() t.steps = self.steps[:] t.debugging = self.debugging return t def debug(self, flag): """t.debug(flag) turns debugging on or off.""" self.debugging = flag def append(self, cmd, kind): """t.append(cmd, kind) adds a new step at the end.""" if type(cmd) is not type(''): raise TypeError('Template.append: cmd must be a string') if kind not in stepkinds: raise ValueError('Template.append: bad kind %r' % (kind,)) if kind == SOURCE: raise ValueError('Template.append: SOURCE can only be prepended') if self.steps and self.steps[-1][1] == SINK: raise ValueError('Template.append: already ends with SINK') if kind[0] == 'f' and not re.search(r'\$IN\b', cmd): raise ValueError('Template.append: missing $IN in cmd') if kind[1] == 'f' and not re.search(r'\$OUT\b', cmd): raise ValueError('Template.append: missing $OUT in cmd') self.steps.append((cmd, kind)) def prepend(self, cmd, kind): """t.prepend(cmd, kind) adds a new step at the front.""" if type(cmd) is not type(''): raise TypeError('Template.prepend: cmd must be a string') if kind not in stepkinds: raise ValueError('Template.prepend: bad kind %r' % (kind,)) if kind == SINK: raise ValueError('Template.prepend: SINK can only be appended') if self.steps and self.steps[0][1] == SOURCE: raise ValueError('Template.prepend: already begins with SOURCE') if kind[0] == 'f' and not re.search(r'\$IN\b', cmd): raise ValueError('Template.prepend: missing $IN in cmd') if kind[1] == 'f' and not re.search(r'\$OUT\b', cmd): raise ValueError('Template.prepend: missing $OUT in cmd') self.steps.insert(0, (cmd, kind)) def open(self, file, rw): """t.open(file, rw) returns a pipe or file object open for reading or writing; the file is the other end of the pipeline.""" if rw == 'r': return self.open_r(file) if rw == 'w': return self.open_w(file) raise ValueError('Template.open: rw must be \'r\' or \'w\', not %r' % (rw,)) def open_r(self, file): """t.open_r(file) and t.open_w(file) implement t.open(file, 'r') and t.open(file, 'w') respectively.""" if not self.steps: return open(file, 'r') if self.steps[-1][1] == SINK: raise ValueError('Template.open_r: pipeline ends width SINK') cmd = self.makepipeline(file, '') return os.popen(cmd, 'r') def open_w(self, file): if not self.steps: return open(file, 'w') if self.steps[0][1] == SOURCE: raise ValueError('Template.open_w: pipeline begins with SOURCE') cmd = self.makepipeline('', file) return os.popen(cmd, 'w') def copy(self, infile, outfile): return os.system(self.makepipeline(infile, outfile)) def makepipeline(self, infile, outfile): cmd = makepipeline(infile, self.steps, outfile) if self.debugging: print(cmd) cmd = 'set -x; ' + cmd return cmd def makepipeline(infile, steps, outfile): # Build a list with for each command: # [input filename or '', command string, kind, output filename or ''] list = [] for cmd, kind in steps: list.append(['', cmd, kind, '']) # # Make sure there is at least one step # if not list: list.append(['', 'cat', '--', '']) # # Take care of the input and output ends # [cmd, kind] = list[0][1:3] if kind[0] == 'f' and not infile: list.insert(0, ['', 'cat', '--', '']) list[0][0] = infile # [cmd, kind] = list[-1][1:3] if kind[1] == 'f' and not outfile: list.append(['', 'cat', '--', '']) list[-1][-1] = outfile # # Invent temporary files to connect stages that need files # garbage = [] for i in range(1, len(list)): lkind = list[i-1][2] rkind = list[i][2] if lkind[1] == 'f' or rkind[0] == 'f': (fd, temp) = tempfile.mkstemp() os.close(fd) garbage.append(temp) list[i-1][-1] = list[i][0] = temp # for item in list: [inf, cmd, kind, outf] = item if kind[1] == 'f': cmd = 'OUT=' + quote(outf) + '; ' + cmd if kind[0] == 'f': cmd = 'IN=' + quote(inf) + '; ' + cmd if kind[0] == '-' and inf: cmd = cmd + ' <' + quote(inf) if kind[1] == '-' and outf: cmd = cmd + ' >' + quote(outf) item[1] = cmd # cmdlist = list[0][1] for item in list[1:]: [cmd, kind] = item[1:3] if item[0] == '': if 'f' in kind: cmd = '{ ' + cmd + '; }' cmdlist = cmdlist + ' |\n' + cmd else: cmdlist = cmdlist + '\n' + cmd # if garbage: rmcmd = 'rm -f' for file in garbage: rmcmd = rmcmd + ' ' + quote(file) trapcmd = 'trap ' + quote(rmcmd + '; exit') + ' 1 2 3 13 14 15' cmdlist = trapcmd + '\n' + cmdlist + '\n' + rmcmd # return cmdlist
← Back
πŸ’» Terminal
πŸ“€ Upload
πŸ“‚
Click or Drag & Drop
πŸ“ /snap/core20/current/lib/python3.8
NameSizePermModifiedActions
πŸ“ __pycache__/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ asyncio/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ collections/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ concurrent/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ ctypes/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ curses/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ dbm/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ distutils/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ email/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ encodings/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ html/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ http/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ importlib/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ json/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ lib-dynload/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ lib2to3/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ logging/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ multiprocessing/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ pydoc_data/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ sqlite3/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ test/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ unittest/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ urllib/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ venv/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ wsgiref/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ xml/-07552026-09-01 05:21πŸ—‘ Delete
πŸ“ xmlrpc/-07552026-09-01 05:21πŸ—‘ Delete
LICENSE.txt13.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
__future__.py5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
__phello__.foo.py64B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_bootlocale.py1.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_collections_abc.py25.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_compat_pickle.py8.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_compression.py5.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_dummy_thread.py5.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_markupbase.py14.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_osx_support.py21.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_py_abc.py6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_pydecimal.py223.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_pyio.py91K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_sitebuiltins.py3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_strptime.py24.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_sysconfigdata__linux_x86_64-linux-gnu.py25.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_sysconfigdata__x86_64-linux-gnu.py25.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_threading_local.py7.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
_weakrefset.py5.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
abc.py4.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
aifc.py32K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
antigravity.py477B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
argparse.py94.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
ast.py18.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
asynchat.py11.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
asyncore.py19.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
base64.py19.9K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
bdb.py31.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
binhex.py13.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
bisect.py2.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
bz2.py12.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cProfile.py6.8K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
calendar.py24.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cgi.py33.1K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cgitb.py11.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
chunk.py5.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
cmd.py14.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
code.py10.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
codecs.py35.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
codeop.py6.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
colorsys.py4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
compileall.py13.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
configparser.py53.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
contextlib.py24.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
contextvars.py129B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
copy.py8.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
copyreg.py7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
crypt.py3.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
csv.py15.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
dataclasses.py48.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
datetime.py86.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
decimal.py320B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
difflib.py82.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
dis.py20.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
doctest.py102.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
dummy_threading.py2.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
enum.py37.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
filecmp.py9.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
fileinput.py14.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
fnmatch.py4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
formatter.py14.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
fractions.py23.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
ftplib.py34.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
functools.py36.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
genericpath.py4.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
getopt.py7.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
getpass.py5.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
gettext.py26.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
glob.py5.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
gzip.py20.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
hashlib.py9.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
heapq.py22.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
hmac.py6.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
imaplib.py52.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
imghdr.py3.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
imp.py10.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
inspect.py115.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
io.py3.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
ipaddress.py74.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
keyword.py945B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
linecache.py5.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
locale.py76.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
lzma.py12.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mailbox.py76.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mailcap.py8.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
mimetypes.py21.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
modulefinder.py23.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
netrc.py5.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
nntplib.py42.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
ntpath.py25.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
nturl2path.py2.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
numbers.py10K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
opcode.py5.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
operator.py10.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
optparse.py59K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
os.py38.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pathlib.py51.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pdb.py61.3K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pickle.py63K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pickletools.py91.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pipes.py8.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pkgutil.py21K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
platform.py39.5K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
plistlib.py31.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
poplib.py14.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
posixpath.py15.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pprint.py21K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
profile.py23K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pstats.py26.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pty.py4.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
py_compile.py8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pyclbr.py14.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
pydoc.py104.4K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
queue.py11.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
quopri.py7.1K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
random.py28.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
re.py15.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
reprlib.py5.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
rlcompleter.py6.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
runpy.py11.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sched.py6.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
secrets.py2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
selectors.py18.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
shelve.py8.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
shlex.py13K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
shutil.py50.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
signal.py2.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
site.py21.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sitecustomize.pyB01970-01-01 00:00πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
smtpd.py33.9K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
smtplib.py43.8K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sndhdr.py6.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
socket.py34.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
socketserver.py26.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sre_compile.py26.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sre_constants.py7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sre_parse.py39.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
ssl.py51.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
stat.py5.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
statistics.py38.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
string.py10.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
stringprep.py12.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
struct.py257B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
subprocess.py75.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sunau.py17.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
symbol.py2.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
symtable.py7.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
sysconfig.py24.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
tabnanny.py11.1K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
tarfile.py93.3K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
telnetlib.py22.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
tempfile.py32.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
textwrap.py19K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
this.py1003B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
threading.py49.6K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
timeit.py13.2K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
token.py2.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
tokenize.py25.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
trace.py29.2K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
traceback.py23.1K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
tracemalloc.py16.7K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
tty.py879B06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
turtle.py140.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
types.py9.5K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
typing.py67.3K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
uu.py6.8K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
uuid.py29.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
warnings.py19.2K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
wave.py17.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
weakref.py20.9K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
webbrowser.py23.5K07552026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
xdrlib.py5.8K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
zipapp.py7.4K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
zipfile.py87K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del
zipimport.py30K06442026-03-03 11:49πŸ‘ View ✏️ Edit πŸ“ Rename πŸ“¦ Move πŸ—‘ Del