/
usr
/
lib
/
python3
/
dist-packages
/
/usr/lib/python3/dist-packages
mkdir
upload
Name
Size
Mode
Actions
acme/
-
0755
rm
acme-1.1.0.egg-info/
-
0755
rm
apport/
-
0755
rm
apt/
-
0755
rm
aptsources/
-
0755
rm
apt_inst-stubs/
-
0755
rm
apt_pkg-stubs/
-
0755
rm
attr/
-
0755
rm
attrs-19.3.0.egg-info/
-
0755
rm
automat/
-
0755
rm
Automat-0.8.0.egg-info/
-
0755
rm
blinker/
-
0755
rm
certbot/
-
0755
rm
certbot-0.40.0.egg-info/
-
0755
rm
certbot_nginx/
-
0755
rm
certbot_nginx-0.40.0.egg-info/
-
0755
rm
certifi/
-
0755
rm
certifi-2019.11.28.egg-info/
-
0755
rm
chardet/
-
0755
rm
chardet-3.0.4.egg-info/
-
0755
rm
click/
-
0755
rm
Click-7.0.egg-info/
-
0755
rm
cloudinit/
-
0755
rm
cloud_init-23.1.2.egg-info/
-
0755
rm
colorama/
-
0755
rm
colorama-0.4.3.egg-info/
-
0755
rm
CommandNotFound/
-
0755
rm
ConfigArgParse-0.13.0.egg-info/
-
0755
rm
configobj-5.0.6.egg-info/
-
0755
rm
constantly/
-
0755
rm
constantly-15.1.0.egg-info/
-
0755
rm
cryptography/
-
0755
rm
cryptography-2.8.egg-info/
-
0755
rm
dbus/
-
0755
rm
dbus_python-1.2.16.egg-info/
-
0755
rm
debian/
-
0755
rm
debian_bundle/
-
0755
rm
distro-1.4.0.egg-info/
-
0755
rm
distro_info-0.23ubuntu1.egg-info/
-
0755
rm
DistUpgrade/
-
0755
rm
future/
-
0755
rm
future-0.18.2.egg-info/
-
0755
rm
gi/
-
0755
rm
hamcrest/
-
0755
rm
httplib2/
-
0755
rm
httplib2-0.14.0.egg-info/
-
0755
rm
HweSupportStatus/
-
0755
rm
hyperlink/
-
0755
rm
hyperlink-19.0.0.egg-info/
-
0755
rm
icu/
-
0755
rm
idna/
-
0755
rm
idna-2.8.egg-info/
-
0755
rm
importlib_metadata/
-
0755
rm
importlib_metadata-1.5.0.egg-info/
-
0755
rm
incremental/
-
0755
rm
incremental-16.10.1.egg-info/
-
0755
rm
janitor/
-
0755
rm
jinja2/
-
0755
rm
Jinja2-2.10.1.egg-info/
-
0755
rm
josepy/
-
0755
rm
josepy-1.2.0.egg-info/
-
0755
rm
jsonpatch-1.22.egg-info/
-
0755
rm
jsonpointer-2.0.egg-info/
-
0755
rm
jsonschema/
-
0755
rm
jsonschema-3.2.0.egg-info/
-
0755
rm
jwt/
-
0755
rm
keyring/
-
0755
rm
keyring-18.0.1.egg-info/
-
0755
rm
landscape/
-
0755
rm
LanguageSelector/
-
0755
rm
language_selector-0.1.egg-info/
-
0755
rm
launchpadlib/
-
0755
rm
launchpadlib-1.10.13.egg-info/
-
0755
rm
lazr/
-
0755
rm
lazr.restfulclient-0.14.2.egg-info/
-
0755
rm
lazr.uri-1.0.3.egg-info/
-
0755
rm
libfuturize/
-
0755
rm
libpasteurize/
-
0755
rm
markupsafe/
-
0755
rm
MarkupSafe-1.1.0.egg-info/
-
0755
rm
mock/
-
0755
rm
mock-3.0.5.egg-info/
-
0755
rm
more_itertools/
-
0755
rm
more_itertools-4.2.0.egg-info/
-
0755
rm
nacl/
-
0755
rm
netifaces-0.10.4.egg-info/
-
0755
rm
oauthlib/
-
0755
rm
oauthlib-3.1.0.egg-info/
-
0755
rm
OpenSSL/
-
0755
rm
parsedatetime/
-
0755
rm
parsedatetime-2.4.egg-info/
-
0755
rm
past/
-
0755
rm
pbr/
-
0755
rm
pbr-5.4.5.egg-info/
-
0755
rm
pexpect/
-
0755
rm
pkg_resources/
-
0755
rm
ptyprocess/
-
0755
rm
pyasn1/
-
0755
rm
pyasn1-0.4.2.egg-info/
-
0755
rm
pyasn1_modules/
-
0755
rm
PyGObject-3.36.0.egg-info/
-
0755
rm
pygtkcompat/
-
0755
rm
PyHamcrest-1.9.0.egg-info/
-
0755
rm
PyJWT-1.7.1.egg-info/
-
0755
rm
pymacaroons/
-
0755
rm
pymacaroons-0.13.0.egg-info/
-
0755
rm
PyNaCl-1.3.0.egg-info/
-
0755
rm
pyOpenSSL-19.0.0.egg-info/
-
0755
rm
pyparsing-2.4.6.egg-info/
-
0755
rm
pyrfc3339/
-
0755
rm
pyRFC3339-1.1.egg-info/
-
0755
rm
pyrsistent/
-
0755
rm
pyrsistent-0.15.5.egg-info/
-
0755
rm
pyserial-3.4.egg-info/
-
0755
rm
python_apt-2.0.0+ubuntu0.20.4.3.egg-info/
-
0755
rm
python_debian-0.1.36ubuntu1.egg-info/
-
0755
rm
pytz/
-
0755
rm
pytz-2019.3.egg-info/
-
0755
rm
requests/
-
0755
rm
requests-2.22.0.egg-info/
-
0755
rm
requests_toolbelt/
-
0755
rm
requests_toolbelt-0.8.0.egg-info/
-
0755
rm
requests_unixsocket/
-
0755
rm
requests_unixsocket-0.2.0.egg-info/
-
0755
rm
secretstorage/
-
0755
rm
SecretStorage-2.3.1.egg-info/
-
0755
rm
serial/
-
0755
rm
service_identity/
-
0755
rm
service_identity-18.1.0.egg-info/
-
0755
rm
setuptools/
-
0755
rm
setuptools-45.2.0.egg-info/
-
0755
rm
simplejson/
-
0755
rm
six-1.14.0.egg-info/
-
0755
rm
softwareproperties/
-
0755
rm
sos/
-
0755
rm
ssh_import_id/
-
0755
rm
ssh_import_id-5.10.egg-info/
-
0755
rm
systemd/
-
0755
rm
twisted/
-
0755
rm
Twisted-18.9.0.egg-info/
-
0755
rm
uaclient/
-
0755
rm
ubuntu_advantage_tools-20.3.egg-info/
-
0755
rm
ufw/
-
0755
rm
unattended_upgrades-0.1.egg-info/
-
0755
rm
UpdateManager/
-
0755
rm
urllib3/
-
0755
rm
urllib3-1.25.8.egg-info/
-
0755
rm
wadllib/
-
0755
rm
wadllib-1.3.3.egg-info/
-
0755
rm
yaml/
-
0755
rm
zipp-1.0.0.egg-info/
-
0755
rm
zope/
-
0755
rm
zope.component-4.3.0.egg-info/
-
0755
rm
zope.event-4.4.egg-info/
-
0755
rm
zope.hookable-5.0.0.egg-info/
-
0755
rm
zope.interface-4.7.1.egg-info/
-
0755
rm
__pycache__/
-
0755
rm
apport_python_hook.py
8063
0644
edit
dl
rm
apt_inst.cpython-38-x86_64-linux-gnu.so
60080
0644
edit
dl
rm
apt_pkg.cpython-38-x86_64-linux-gnu.so
359376
0644
edit
dl
rm
blinker-1.4.egg-info
3901
0644
edit
dl
rm
command_not_found-0.3.egg-info
189
0644
edit
dl
rm
configargparse.py
41446
0644
edit
dl
rm
configobj.py
89613
0644
edit
dl
rm
deb822.py
273
0644
edit
dl
rm
debconf.py
6769
0644
edit
dl
rm
distro.py
43251
0644
edit
dl
rm
distro_info.py
11155
0644
edit
dl
rm
easy_install.py
126
0644
edit
dl
rm
entrypoints.egg-info
226
0644
edit
dl
rm
entrypoints.py
8184
0644
edit
dl
rm
jsonpatch.py
25094
0644
edit
dl
rm
jsonpointer.py
9796
0644
edit
dl
rm
language_support_pkgs.py
9930
0644
edit
dl
rm
lsb_release.py
14901
0644
edit
dl
rm
netifaces.cpython-38-x86_64-linux-gnu.so
23224
0644
edit
dl
rm
netifaces.cpython-38d-x86_64-linux-gnu.so
27352
0644
edit
dl
rm
pexpect-4.6.0.egg-info
2285
0644
edit
dl
rm
problem_report.py
26867
0644
edit
dl
rm
pvectorc.cpython-38-x86_64-linux-gnu.so
37560
0644
edit
dl
rm
pyasn1_modules-0.2.1.egg-info
1722
0644
edit
dl
rm
PyICU-2.4.2.egg-info
10692
0644
edit
dl
rm
PyICU.py
1463
0644
edit
dl
rm
pyparsing.py
272400
0644
edit
dl
rm
PyYAML-5.3.1.egg-info
1781
0644
edit
dl
rm
simplejson-3.16.0.egg-info
3039
0644
edit
dl
rm
six.py
34074
0644
edit
dl
rm
snack.py
31134
0644
edit
dl
rm
sos-4.3.egg-info
295
0644
edit
dl
rm
systemd_python-234.egg-info
586
0644
edit
dl
rm
ufw-0.36.egg-info
261
0644
edit
dl
rm
validate.py
47243
0644
edit
dl
rm
zipp.py
6914
0644
edit
dl
rm
zope.component-4.3.0-nspkg.pth
529
0644
edit
dl
rm
zope.event-4.4-nspkg.pth
529
0644
edit
dl
rm
zope.hookable-5.0.0-nspkg.pth
529
0644
edit
dl
rm
zope.interface-4.7.1-nspkg.pth
529
0644
edit
dl
rm
_cffi_backend.cpython-38-x86_64-linux-gnu.so
186288
0644
edit
dl
rm
_dbus_bindings.cpython-38-x86_64-linux-gnu.so
172192
0644
edit
dl
rm
_dbus_glib_bindings.cpython-38-x86_64-linux-gnu.so
23080
0644
edit
dl
rm
_icu.cpython-38-x86_64-linux-gnu.so
1148408
0644
edit
dl
rm
_pyrsistent_version.py
23
0644
edit
dl
rm
_snack.cpython-38-x86_64-linux-gnu.so
43800
0644
edit
dl
rm
_version.py
21
0644
edit
dl
rm
_yaml.cpython-38-x86_64-linux-gnu.so
283376
0644
edit
dl
rm
Edit:
/usr/lib/python3/dist-packages/zipp.py
(6914B)
# coding: utf-8 from __future__ import division import io import sys import posixpath import zipfile import functools import itertools import re import more_itertools __metaclass__ = type def _parents(path): """ Given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b'] >>> list(_parents('/b/d/')) ['/b'] >>> list(_parents('b/d/f/')) ['b/d', 'b'] >>> list(_parents('b')) [] >>> list(_parents('')) [] """ return itertools.islice(_ancestry(path), 1, None) def _ancestry(path): """ Given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b/d', 'b'] >>> list(_ancestry('/b/d/')) ['/b/d', '/b'] >>> list(_ancestry('b/d/f/')) ['b/d/f', 'b/d', 'b'] >>> list(_ancestry('b')) ['b'] >>> list(_ancestry('')) [] """ path = path.rstrip(posixpath.sep) while path and path != posixpath.sep: yield path path, tail = posixpath.split(path) class SanitizedNames: """ ZipFile mix-in to ensure names are sanitized. """ def namelist(self): return list(map(self._sanitize, super().namelist())) @staticmethod def _sanitize(name): r""" Ensure a relative path with posix separators and no dot names. Modeled after https://github.com/python/cpython/blob/bcc1be39cb1d04ad9fc0bd1b9193d3972835a57c/Lib/zipfile/__init__.py#L1799-L1813 but provides consistent cross-platform behavior. >>> san = SanitizedNames._sanitize >>> san('/foo/bar') 'foo/bar' >>> san('//foo.txt') 'foo.txt' >>> san('foo/.././bar.txt') 'foo/bar.txt' >>> san('foo../.bar.txt') 'foo../.bar.txt' >>> san('\\foo\\bar.txt') 'foo/bar.txt' >>> san('D:\\foo.txt') 'D/foo.txt' >>> san('\\\\server\\share\\file.txt') 'server/share/file.txt' >>> san('\\\\?\\GLOBALROOT\\Volume3') '?/GLOBALROOT/Volume3' >>> san('\\\\.\\PhysicalDrive1\\root') 'PhysicalDrive1/root' Retain any trailing slash. >>> san('abc/') 'abc/' Raises a ValueError if the result is empty. >>> san('../..') Traceback (most recent call last): ... ValueError: Empty filename """ def allowed(part): return part and part not in {'..', '.'} # Remove the drive letter. # Don't use ntpath.splitdrive, because that also strips UNC paths bare = re.sub('^([A-Z]):', r'\1', name, flags=re.IGNORECASE) clean = bare.replace('\\', '/') parts = clean.split('/') joined = '/'.join(filter(allowed, parts)) if not joined: raise ValueError("Empty filename") return joined + '/' * name.endswith('/') class Path: """ A pathlib-compatible interface for zip files. Consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── d └── e.txt >>> data = io.BytesIO() >>> zf = zipfile.ZipFile(data, 'w') >>> zf.writestr('a.txt', 'content of a') >>> zf.writestr('b/c.txt', 'content of c') >>> zf.writestr('b/d/e.txt', 'content of e') >>> zf.filename = 'abcde.zip' Path accepts the zipfile object itself or a filename >>> root = Path(zf) From there, several path operations are available. Directory iteration (including the zip file itself): >>> a, b = root.iterdir() >>> a Path('abcde.zip', 'a.txt') >>> b Path('abcde.zip', 'b/') name property: >>> b.name 'b' join with divide operator: >>> c = b / 'c.txt' >>> c Path('abcde.zip', 'b/c.txt') >>> c.name 'c.txt' Read text: >>> c.read_text() 'content of c' existence: >>> c.exists() True >>> (b / 'missing.txt').exists() False Coercion to string: >>> str(c) 'abcde.zip/b/c.txt' """ __repr = "{self.__class__.__name__}({self.root.filename!r}, {self.at!r})" def __init__(self, root, at=""): self.root = ( root if isinstance(root, zipfile.ZipFile) else zipfile.ZipFile(self._pathlib_compat(root)) ) self.at = at @staticmethod def _pathlib_compat(path): """ For path-like objects, convert to a filename for compatibility on Python 3.6.1 and earlier. """ try: return path.__fspath__() except AttributeError: return str(path) @property def open(self): return functools.partial(self.root.open, self.at) @property def name(self): return posixpath.basename(self.at.rstrip("/")) def read_text(self, *args, **kwargs): with self.open() as strm: return io.TextIOWrapper(strm, *args, **kwargs).read() def read_bytes(self): with self.open() as strm: return strm.read() def _is_child(self, path): return posixpath.dirname(path.at.rstrip("/")) == self.at.rstrip("/") def _next(self, at): return Path(self.root, at) def is_dir(self): return not self.at or self.at.endswith("/") def is_file(self): return not self.is_dir() def exists(self): return self.at in self._names() def iterdir(self): if not self.is_dir(): raise ValueError("Can't listdir a file") subs = map(self._next, self._names()) return filter(self._is_child, subs) def __str__(self): return posixpath.join(self.root.filename, self.at) def __repr__(self): return self.__repr.format(self=self) def joinpath(self, add): add = self._pathlib_compat(add) next = posixpath.join(self.at, add) next_dir = posixpath.join(self.at, add, "") names = self._names() return self._next(next_dir if next not in names and next_dir in names else next) __truediv__ = joinpath @staticmethod def _implied_dirs(names): return more_itertools.unique_everseen( parent + "/" for name in names for parent in _parents(name) if parent + "/" not in names ) @classmethod def _add_implied_dirs(cls, names): return names + list(cls._implied_dirs(names)) @property def parent(self): parent_at = posixpath.dirname(self.at.rstrip('/')) if parent_at: parent_at += '/' return self._next(parent_at) def _names(self): return self._add_implied_dirs(list(map(SanitizedNames._sanitize, self.root.namelist()))) if sys.version_info < (3,): __div__ = __truediv__
Save
cmd:
run