[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: _entry_points.py
File is not writable. Editing disabled.
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) )
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 690.89 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A