opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
pip
/
_internal
/
req
➕ New
📤 Upload
✎ Editing:
pep723.py
← Back
import re from typing import Any from pip._internal.utils.compat import tomllib REGEX = r"(?m)^# /// (?P<type>[a-zA-Z0-9-]+)$\s(?P<content>(^#(| .*)$\s)+)^# ///$" class PEP723Exception(ValueError): """Raised to indicate a problem when parsing PEP 723 metadata from a script""" def __init__(self, msg: str) -> None: self.msg = msg def pep723_metadata(scriptfile: str) -> dict[str, Any]: with open(scriptfile) as f: script = f.read() name = "script" matches = list( filter(lambda m: m.group("type") == name, re.finditer(REGEX, script)) ) if len(matches) > 1: raise PEP723Exception(f"Multiple {name!r} blocks found in {scriptfile!r}") elif len(matches) == 1: content = "".join( line[2:] if line.startswith("# ") else line[1:] for line in matches[0].group("content").splitlines(keepends=True) ) try: metadata = tomllib.loads(content) except Exception as exc: raise PEP723Exception(f"Failed to parse TOML in {scriptfile!r}") from exc else: raise PEP723Exception( f"File does not contain {name!r} metadata: {scriptfile!r}" ) return metadata
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel