o
    èyAf7	  ã                   @  sl   d dl mZ d dlZd dlmZmZ er d dlmZ d dlm	Z	 dd
d„Z
ddd„Zddd„Zddd„ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚAny)ÚRequirement)ÚProjectMetadataÚproject_nameÚstrÚreturnÚboolc                 C  s   t  d| t j¡d uS )Nz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$)ÚreÚsearchÚ
IGNORECASE©r   © r   ú=/usr/lib/python3.10/site-packages/hatchling/metadata/utils.pyÚis_valid_project_name   s   r   c                 C  s   t  dd| ¡ ¡ S )Nz[-_.]+ú-)r   ÚsubÚlowerr   r   r   r   Únormalize_project_name   s   r   Úrequirementr   c                 C  sZ   ddl m} t| jƒ| _| jr|t| jƒ ¡ ƒ| _| jr%dd„ | jD ƒ| _t| ƒ dd¡S )Nr   )ÚSpecifierSetc                 S  s   h | ]}t |ƒ’qS r   )r   )Ú.0Úextrar   r   r   Ú	<setcomp>"   s    z,get_normalized_dependency.<locals>.<setcomp>ú"ú')	Zpackaging.specifiersr   r   ÚnameÚ	specifierr   r   ÚextrasÚreplace)r   r   r   r   r   Úget_normalized_dependency   s   r!   Úmetadatar   údict[str, Any]c                 C  s´   i d| j j“d| j“d| j j“d| j j| j jdœ“d| j j“d| j jp&| j j“d| j j	“d	| j j
“d
| j j“d| j j“d| j j“d| j j“d| j j“d| j j“d| j j“d| j j“S )Nr   ÚversionÚdescriptionÚreadme)zcontent-typeÚtextzrequires-pythonÚlicenseÚauthorsÚmaintainersÚkeywordsÚclassifiersÚurlsÚscriptszgui-scriptszentry-pointsÚdependencieszoptional-dependencies)Úcorer   r$   r%   Zreadme_content_typer&   Úrequires_pythonZlicense_expressionr(   r)   r*   r+   r,   r-   r.   Úgui_scriptsZentry_pointsr/   Zoptional_dependencies)r"   r   r   r   Úresolve_metadata_fields(   sB   ÿþýüûúùø	÷
öõôóòñðr3   )r   r   r	   r
   )r   r   r	   r   )r   r   r	   r   )r"   r   r	   r#   )Ú
__future__r   r   Útypingr   r   Zpackaging.requirementsr   Zhatchling.metadata.corer   r   r   r!   r3   r   r   r   r   Ú<module>   s    


