OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot
/
4737
/
usr
/
lib
/
python3
/
dist-packages
/
setuptools
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📄
__init__.py
9.04 KB
08/18/2023 12:07:38 PM
rw-r--r--
📁
_distutils
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📄
_entry_points.py
2.18 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
_imp.py
2.38 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
_importlib.py
1.43 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
_itertools.py
675 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
_normalization.py
3.62 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
_path.py
1.03 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
_reqs.py
882 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📁
_vendor
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📄
archive_util.py
7.16 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
build_meta.py
19.62 KB
08/18/2023 12:07:38 PM
rw-r--r--
📁
command
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📁
config
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📄
dep_util.py
936 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
depends.py
5.4 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
discovery.py
20.65 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
dist.py
45.74 KB
05/28/2025 05:00:32 PM
rw-r--r--
📄
errors.py
2.41 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
extension.py
5.46 KB
08/18/2023 12:07:38 PM
rw-r--r--
📁
extern
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📄
glob.py
4.75 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
installer.py
4.87 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
launch.py
812 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
logging.py
1.21 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
monkey.py
4.58 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
msvc.py
46.38 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
namespaces.py
2.97 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
package_index.py
38.96 KB
05/28/2025 05:00:32 PM
rw-r--r--
📄
py312compat.py
330 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
sandbox.py
14.01 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
script (dev).tmpl
218 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
script.tmpl
138 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
unicode_utils.py
941 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
version.py
161 bytes
08/18/2023 12:07:38 PM
rw-r--r--
📄
warnings.py
3.61 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
wheel.py
8.43 KB
08/18/2023 12:07:38 PM
rw-r--r--
📄
windows_support.py
719 bytes
08/18/2023 12:07:38 PM
rw-r--r--
Editing: namespaces.py
Close
import os from distutils import log import itertools flatten = itertools.chain.from_iterable class Installer: nspkg_ext = '-nspkg.pth' def install_namespaces(self): nsp = self._get_all_ns_packages() if not nsp: return filename, ext = os.path.splitext(self._get_target()) filename += self.nspkg_ext self.outputs.append(filename) log.info("Installing %s", filename) lines = map(self._gen_nspkg_line, nsp) if self.dry_run: # always generate the lines, even in dry run list(lines) return with open(filename, 'wt') as f: f.writelines(lines) def uninstall_namespaces(self): filename, ext = os.path.splitext(self._get_target()) filename += self.nspkg_ext if not os.path.exists(filename): return log.info("Removing %s", filename) os.remove(filename) def _get_target(self): return self.target _nspkg_tmpl = ( "import sys, types, os", "has_mfs = sys.version_info > (3, 5)", "p = os.path.join(%(root)s, *%(pth)r)", "importlib = has_mfs and __import__('importlib.util')", "has_mfs and __import__('importlib.machinery')", ( "m = has_mfs and " "sys.modules.setdefault(%(pkg)r, " "importlib.util.module_from_spec(" "importlib.machinery.PathFinder.find_spec(%(pkg)r, " "[os.path.dirname(p)])))" ), ("m = m or " "sys.modules.setdefault(%(pkg)r, types.ModuleType(%(pkg)r))"), "mp = (m or []) and m.__dict__.setdefault('__path__',[])", "(p not in mp) and mp.append(p)", ) "lines for the namespace installer" _nspkg_tmpl_multi = ('m and setattr(sys.modules[%(parent)r], %(child)r, m)',) "additional line(s) when a parent package is indicated" def _get_root(self): return "sys._getframe(1).f_locals['sitedir']" def _gen_nspkg_line(self, pkg): pth = tuple(pkg.split('.')) root = self._get_root() tmpl_lines = self._nspkg_tmpl parent, sep, child = pkg.rpartition('.') if parent: tmpl_lines += self._nspkg_tmpl_multi return ';'.join(tmpl_lines) % locals() + '\n' def _get_all_ns_packages(self): """Return sorted list of all package namespaces""" pkgs = self.distribution.namespace_packages or [] return sorted(flatten(map(self._pkg_names, pkgs))) @staticmethod def _pkg_names(pkg): """ Given a namespace package, yield the components of that package. >>> names = Installer._pkg_names('a.b.c') >>> set(names) == set(['a', 'a.b', 'a.b.c']) True """ parts = pkg.split('.') while parts: yield '.'.join(parts) parts.pop() class DevelopInstaller(Installer): def _get_root(self): return repr(str(self.egg_path)) def _get_target(self): return self.egg_link