Ë
    -TbjÊ  ã                   ó  — d Z ddlZddlZddlmZ ddlmZmZmZm	Z	 ddl
mZ  e	de¬«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zdedefd„Zdedefd„Zdee   deeddf   fd„Zdedefd„ZeeefZy)z«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).
é    N)Úcleandoc)Ú	GeneratorÚIterableÚMappingÚTypeVaré   )ÚValidationErrorÚT)Úboundc                   ó   — e Zd ZdZeZdZy)ÚRedefiningStaticFieldAsDynamicz˜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.
    zMhttps://packaging.python.org/en/latest/specifications/pyproject-toml/#dynamicN©Ú__name__Ú
__module__Ú__qualname__Ú_DESCÚ__doc__Ú_URL© ó    új/var/www/html/venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/extra_validations.pyr   r      s   „ ð€Eð
 €GàWñ 	r   r   c                   ó   — e Zd ZdZeZdZy)Ú 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   „ ð€Eà€GØ.�Dr   r   c                   ó   — e Zd ZdZeZdZy)ÚImportNameCollisionz\According to PEP 794:

    All import-names and import-namespaces items must be unique.
    ú!https://peps.python.org/pep-0794/Nr   r   r   r   r   r   #   ó   „ ð€Eð €GØ.�Dr   r   c                   ó   — e Zd ZdZeZdZy)ÚImportNameMissingzLAccording to PEP 794:

    An import name must have all parents listed.
    r   Nr   r   r   r   r   r   ,   r   r   r   Ú	pyprojectÚreturnc           
      óô   — | j                  di «      }|j                  dg «      }|D ]N  }||v sŒt        d|› d�|||   ddd|id|› �t        t        j                  «      t        j                  dœd	¬
«      ‚ | 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$   Úfields       r   Úvalidate_project_dynamicr1   5   s­   € Ø—M‘M )¨RÓ0€MØ×Ñ 	¨2Ó.€Gàò ˆØ�MÒ!Ü0ØBÀ5À'ð JCð Cð ˜=¨Ñ/Ø˜8Ø˜wðð
 % U GÐ,ä#+Ô,J×,PÑ,PÓ#QÜ9×>Ñ>ñð ôð ðð$ Ðr   c           
      ó8  — | j                  di «      }|j                  «       D ]t  \  }}|D ]j  }t        |t        «      sŒ|j                  d«      x}sŒ(||vsŒ-t	        d|› d�|d|› �t        t        j                  «      t        j                  dœd¬«      ‚ Œv | 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_groups         r   Úvalidate_include_depenencyr:   N   s¶   € Ø!Ÿ™Ð&9¸2Ó>ÐØ'×-Ñ-Ó/ò ‰
ˆˆUØò 	ˆDä˜4¤Õ&Ø&*§h¡h¨Ó&?Ð?�]Ñ?Ø!Ð):Ò:ä6Ø<¸]¸OÈ>ÐZØØ2°3°%Ð8ä'/Ô0P×0VÑ0VÓ'WÜ?×DÑDñ ð #ô	ð 	ñ	ðð$ Ðr   r3   c              #   ób   K  — | D ]&  }|j                  d«      d   j                  «       –— Œ( y ­w)Nú;r   )Ú	partitionÚrstrip)r3   Úitems     r   Ú_remove_privater@   e   s2   è ø€ Øò .ˆØ�n‰n˜SÓ! !Ñ$×+Ñ+Ó-Ó-ñ.ùs   ‚-/c           
      ó¶  — | j                  di «      }t        j                  t        |j                  dg «      «      «      }t        j                  t        |j                  dg «      «      «      }||z   j	                  «       D ��cg c]  \  }}|dkD  sŒ|‘Œ }}}|r8t        d|dt        t
        j                  «      t
        j                  dœd¬	«      ‚t        ||z   «      }|D ]l  }t        j                  |j                  d
«      d d d„ «      D ]>  }	|	|vsŒt        d|dt        t        j                  «      t        j                  dœd¬	«      ‚ Œn | S c c}}w )Nr#   zimport-nameszimport-namespacesr   zBDuplicated names are not allowed in import-names/import-namespaceszdata.project.importnames(paces)r%   zPEP 794r(   ú.éÿÿÿÿc                 ó   — | › d|› �S )NrB   r   )ÚaÚbs     r   ú<lambda>z-validate_import_name_issues.<locals>.<lambda>‚   s   € °!°°A°a°S¨z€ r   zRAll parents of an import name must also be listed in import-namespace/import-names)r.   ÚcollectionsÚCounterr@   r3   r   r   r   r   Ú	frozensetÚ	itertoolsÚ
accumulateÚsplitr   )
r    r#   Úimport_namesÚimport_namespacesÚkÚvÚ
duplicatedÚnamesr+   Úparents
             r   Úvalidate_import_name_issuesrU   j   sb  € Ø�m‰m˜I rÓ*€GÜ×&Ñ&¤°w·{±{À>ÐSUÓ7VÓ'WÓX€LÜ#×+Ñ+Ü˜Ÿ™Ð$7¸Ó<Ó=óÐð ".Ð0AÑ!A× HÑ HÓ J×T™˜˜1ÈaÐRSËe’!ÐT€JÑTáÜ!ØXØØ2ä'Ô(;×(AÑ(AÓBÜ*×/Ñ/ñð ô	
ð 		
ô �lÐ%6Ñ6Ó7€EØò ˆÜ×*Ñ*Ø�J‰J�s‹O˜C˜RÐ Ñ"9ó
ò 	ˆFð ˜UÒ"Ü'ØpØØ:ä'/Ô0A×0GÑ0GÓ'HÜ0×5Ñ5ñ ð #ô	ð 	ñ		ðð  Ðùó? Us   ÂEÂE)r   rH   rK   Úinspectr   Útypingr   r   r   r   Úerror_reportingr	   r
   r   r   r   r   r1   r:   Ústrr@   rU   ÚEXTRA_VALIDATIONSr   r   r   ú<module>r[      sÉ   ðñó
 Û Ý ß 8Ó 8å ,áˆC�wÔ€ô	 _ô 	ô/ ô /ô/˜/ô /ô/˜ô /ð¨ð ¨aó ð2¨!ð °ó ð..˜8 C™=ð .¨Y°s¸DÀ$°Ñ-Gó .ð
&¨1ð &°ó &ðT ØØðÑ r   