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: _entry_points.py
Close
import functools import operator import itertools from .errors import OptionError from .extern.jaraco.text import yield_lines from .extern.jaraco.functools import pass_none from ._importlib import metadata from ._itertools import ensure_unique from .extern.more_itertools import consume def ensure_valid(ep): """ Exercise one of the dynamic properties to trigger the pattern match. """ try: ep.extras except AttributeError as ex: msg = ( f"Problems to parse {ep}.\nPlease ensure entry-point follows the spec: " "https://packaging.python.org/en/latest/specifications/entry-points/" ) raise OptionError(msg) from ex def load_group(value, group): """ Given a value of an entry point or series of entry points, return each as an EntryPoint. """ # normalize to a single sequence of lines lines = yield_lines(value) text = f'[{group}]\n' + '\n'.join(lines) return metadata.EntryPoints._from_text(text) def by_group_and_name(ep): return ep.group, ep.name def validate(eps: metadata.EntryPoints): """ Ensure entry points are unique by group and name and validate each. """ consume(map(ensure_valid, ensure_unique(eps, key=by_group_and_name))) return eps @functools.singledispatch def load(eps): """ Given a Distribution.entry_points, produce EntryPoints. """ groups = itertools.chain.from_iterable( load_group(value, group) for group, value in eps.items() ) return validate(metadata.EntryPoints(groups)) @load.register(str) def _(eps): r""" >>> ep, = load('[console_scripts]\nfoo=bar') >>> ep.group 'console_scripts' >>> ep.name 'foo' >>> ep.value 'bar' """ return validate(metadata.EntryPoints(metadata.EntryPoints._from_text(eps))) load.register(type(None), lambda x: x) @pass_none def render(eps: metadata.EntryPoints): by_group = operator.attrgetter('group') groups = itertools.groupby(sorted(eps, key=by_group), by_group) return '\n'.join(f'[{group}]\n{render_items(items)}\n' for group, items in groups) def render_items(eps): return '\n'.join(f'{ep.name} = {ep.value}' for ep in sorted(eps))