o
    LK&h*                     @   s   d Z ddlmZ ddlmZmZ ddlmZ ededZG dd	 d	eZ	G d
d deZ
dedefddZdedefddZeefZdS )zThe 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).
    )cleandoc)MappingTypeVar   )ValidationErrorT)boundc                   @      e Zd ZdZeZdZdS )RedefiningStaticFieldAsDynamiczAccording to PEP 621:

    Build back-ends MUST raise an error if the metadata specifies a field
    statically as well as being listed in dynamic.
    zMhttps://packaging.python.org/en/latest/specifications/pyproject-toml/#dynamicN__name__
__module____qualname___DESC__doc___URL r   r   j/var/www/html/venv/lib/python3.10/site-packages/setuptools/config/_validate_pyproject/extra_validations.pyr
      s
    r
   c                   @   r	   ) IncludedDependencyGroupMustExistzDAn included dependency group must exist and must not be cyclic.
    z!https://peps.python.org/pep-0735/Nr   r   r   r   r   r      s    r   	pyprojectreturnc              	   C   sl   |  di }| dg }|D ]%}||v r3td| d||| ddd|id| ttjtjdd	d
q| S )Nprojectdynamicz(You cannot provide a value for `project.z6` and list it under `project.dynamic` at the same timez...z # ...zdata.project.descriptionseezPEP 621messagevaluename
definitionrule)getr
   r   r   r   )r   project_tabler   fieldr   r   r   validate_project_dynamic"   s$   
r%   c              	   C   sz   |  di }| D ]0\}}|D ])}t|tr9| d }r9||vr9td| d|d| ttjtjdddqq
| S )	Nzdependency-groupszinclude-groupzThe included dependency group z doesn't existzdata.dependency_groups.r   zPEP 735r   )r"   items
isinstancedictr   r   r   r   )r   dependency_groupskeyr   eachinclude_groupr   r   r   validate_include_depenency;   s(   
r-   N)r   inspectr   typingr   r   error_reportingr   r   r
   r   r%   r-   EXTRA_VALIDATIONSr   r   r   r   <module>   s    