__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
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
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| _distutils | Folder | 0755 |
|
|
| _vendor | Folder | 0755 |
|
|
| command | Folder | 0755 |
|
|
| config | Folder | 0755 |
|
|
| extern | Folder | 0755 |
|
|
| __init__.py | File | 9.04 KB | 0644 |
|
| _entry_points.py | File | 2.18 KB | 0644 |
|
| _imp.py | File | 2.38 KB | 0644 |
|
| _importlib.py | File | 1.43 KB | 0644 |
|
| _itertools.py | File | 675 B | 0644 |
|
| _normalization.py | File | 3.62 KB | 0644 |
|
| _path.py | File | 1.03 KB | 0644 |
|
| _reqs.py | File | 882 B | 0644 |
|
| archive_util.py | File | 7.16 KB | 0644 |
|
| build_meta.py | File | 19.62 KB | 0644 |
|
| dep_util.py | File | 936 B | 0644 |
|
| depends.py | File | 5.4 KB | 0644 |
|
| discovery.py | File | 20.65 KB | 0644 |
|
| dist.py | File | 45.74 KB | 0644 |
|
| errors.py | File | 2.41 KB | 0644 |
|
| extension.py | File | 5.46 KB | 0644 |
|
| glob.py | File | 4.75 KB | 0644 |
|
| installer.py | File | 4.87 KB | 0644 |
|
| launch.py | File | 812 B | 0644 |
|
| logging.py | File | 1.21 KB | 0644 |
|
| monkey.py | File | 4.58 KB | 0644 |
|
| msvc.py | File | 46.38 KB | 0644 |
|
| namespaces.py | File | 2.97 KB | 0644 |
|
| package_index.py | File | 38.96 KB | 0644 |
|
| py312compat.py | File | 330 B | 0644 |
|
| sandbox.py | File | 14.01 KB | 0644 |
|
| script (dev).tmpl | File | 218 B | 0644 |
|
| script.tmpl | File | 138 B | 0644 |
|
| unicode_utils.py | File | 941 B | 0644 |
|
| version.py | File | 161 B | 0644 |
|
| warnings.py | File | 3.61 KB | 0644 |
|
| wheel.py | File | 8.43 KB | 0644 |
|
| windows_support.py | File | 719 B | 0644 |
|