OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot
/
4730
/
lib
/
python3.12
/
site-packages
/
setuptools
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/10/2025 09:51:16 PM
rwxr-xr-x
📄
__init__.py
10.16 KB
06/10/2025 09:50:49 PM
rw-r--r--
📁
__pycache__
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
_core_metadata.py
11.7 KB
06/10/2025 09:50:49 PM
rw-r--r--
📁
_distutils
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
_entry_points.py
2.41 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
_imp.py
2.38 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
_importlib.py
223 bytes
06/10/2025 09:50:49 PM
rw-r--r--
📄
_itertools.py
657 bytes
06/10/2025 09:50:49 PM
rw-r--r--
📄
_normalization.py
5.69 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
_path.py
2.62 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
_reqs.py
1.4 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
_scripts.py
10.6 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
_shutil.py
1.54 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
_static.py
4.74 KB
06/10/2025 09:50:49 PM
rw-r--r--
📁
_vendor
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
archive_util.py
7.18 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
build_meta.py
19.5 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
cli-32.exe
11.5 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
cli-64.exe
14 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
cli-arm64.exe
13.5 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
cli.exe
11.5 KB
06/10/2025 09:50:49 PM
rw-r--r--
📁
command
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📁
compat
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📁
config
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
depends.py
5.83 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
discovery.py
20.76 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
dist.py
43.93 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
errors.py
2.95 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
extension.py
6.53 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
glob.py
5.92 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
gui-32.exe
11.5 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
gui-64.exe
14 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
gui-arm64.exe
13.5 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
gui.exe
11.5 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
installer.py
4.99 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
launch.py
820 bytes
06/10/2025 09:50:49 PM
rw-r--r--
📄
logging.py
1.23 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
modified.py
568 bytes
06/10/2025 09:50:49 PM
rw-r--r--
📄
monkey.py
3.63 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
msvc.py
40.66 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
namespaces.py
3.1 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
script (dev).tmpl
218 bytes
06/10/2025 09:50:49 PM
rw-r--r--
📄
script.tmpl
138 bytes
06/10/2025 09:50:49 PM
rw-r--r--
📁
tests
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
unicode_utils.py
3.11 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
version.py
161 bytes
06/10/2025 09:50:49 PM
rw-r--r--
📄
warnings.py
3.71 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
wheel.py
8.42 KB
06/10/2025 09:50:49 PM
rw-r--r--
📄
windows_support.py
726 bytes
06/10/2025 09:50:49 PM
rw-r--r--
Editing: _entry_points.py
Close
import functools import itertools import operator from jaraco.functools import pass_none from jaraco.text import yield_lines from more_itertools import consume from ._importlib import metadata from ._itertools import ensure_unique from .errors import OptionError def ensure_valid(ep): """ Exercise one of the dynamic properties to trigger the pattern match. This function is deprecated in favor of importlib_metadata 8.7 and Python 3.14 importlib.metadata, which validates entry points on construction. """ try: ep.extras except (AttributeError, AssertionError) as ex: # Why both? See https://github.com/python/importlib_metadata/issues/488 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))