REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 2.79 KB
Close
/opt/cloudlinux/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/extra_validations.py
Text
Base64
"""The purpose of this module is implement PEP 621 validations that are difficult to express as a JSON Schema (or that are not supported by the current JSON Schema library). """ from inspect import cleandoc from typing import Mapping, TypeVar from .error_reporting import ValidationError T = TypeVar("T", bound=Mapping) class RedefiningStaticFieldAsDynamic(ValidationError): _DESC = """According to PEP 621: Build back-ends MUST raise an error if the metadata specifies a field statically as well as being listed in dynamic. """ __doc__ = _DESC _URL = ( "https://packaging.python.org/en/latest/specifications/" "pyproject-toml/#dynamic" ) class IncludedDependencyGroupMustExist(ValidationError): _DESC = """An included dependency group must exist and must not be cyclic. """ __doc__ = _DESC _URL = "https://peps.python.org/pep-0735/" def validate_project_dynamic(pyproject: T) -> T: project_table = pyproject.get("project", {}) dynamic = project_table.get("dynamic", []) for field in dynamic: if field in project_table: raise RedefiningStaticFieldAsDynamic( message=f"You cannot provide a value for `project.{field}` and " "list it under `project.dynamic` at the same time", value={ field: project_table[field], "...": " # ...", "dynamic": dynamic, }, name=f"data.project.{field}", definition={ "description": cleandoc(RedefiningStaticFieldAsDynamic._DESC), "see": RedefiningStaticFieldAsDynamic._URL, }, rule="PEP 621", ) return pyproject def validate_include_depenency(pyproject: T) -> T: dependency_groups = pyproject.get("dependency-groups", {}) for key, value in dependency_groups.items(): for each in value: if ( isinstance(each, dict) and (include_group := each.get("include-group")) and include_group not in dependency_groups ): raise IncludedDependencyGroupMustExist( message=f"The included dependency group {include_group} doesn't exist", value=each, name=f"data.dependency_groups.{key}", definition={ "description": cleandoc(IncludedDependencyGroupMustExist._DESC), "see": IncludedDependencyGroupMustExist._URL, }, rule="PEP 735", ) # TODO: check for `include-group` cycles (can be conditional to graphlib) return pyproject EXTRA_VALIDATIONS = (validate_project_dynamic, validate_include_depenency)
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 7
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
__pycache__
DIR
-
drwxr-xr-x
2026-02-06 08:01:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
error_reporting.py
11.54 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
extra_validations.py
2.79 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
fastjsonschema_exceptions.py
1.57 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
fastjsonschema_validations.py
346.37 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
formats.py
13.25 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
NOTICE
18.30 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.py
1.02 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).