Server IP : 15.235.198.142 / Your IP : 216.73.216.193 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/setuptools/config/_validate_pyproject/ |
Upload File : |
"""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 typing import Mapping, TypeVar from .error_reporting import ValidationError T = TypeVar("T", bound=Mapping) class RedefiningStaticFieldAsDynamic(ValidationError): """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. """ 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: msg = f"You cannot provide a value for `project.{field}` and " msg += "list it under `project.dynamic` at the same time" name = f"data.project.{field}" value = {field: project_table[field], "...": " # ...", "dynamic": dynamic} raise RedefiningStaticFieldAsDynamic(msg, value, name, rule="PEP 621") return pyproject EXTRA_VALIDATIONS = (validate_project_dynamic,)