Ë
    
_ßdz  ã                   ó2  — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ee
ef   Z ej                  dej                  «      Z ej                  d	ej                  «      Zd
e
de
fd„Zde
de
fd„Zde
de
fd„Zde
de
fd„Zde
de
fd„Zde
de
fd„Zde
de
fd„Zy)zZ
Helpers for normalization as expected in wheel/sdist/module file names
and core metadata
é    N)ÚPath)ÚUnioné   )Ú	packaging)ÚSetuptoolsDeprecationWarningz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$z[^A-Z0-9.]+ÚnameÚreturnc                 óX   — t        j                  dd| «      }|j                  «       sJ ‚|S )zÍMake a string safe to be used as Python identifier.
    >>> safe_identifier("12abc")
    '_12abc'
    >>> safe_identifier("__editable__.myns.pkg-78.9.3_local")
    '__editable___myns_pkg_78_9_3_local'
    z
\W|^(?=\d)Ú_)ÚreÚsubÚisidentifier)r   Úsafes     ú;/usr/lib/python3/dist-packages/setuptools/_normalization.pyÚsafe_identifierr      s-   € ô �6‰6�-  dÓ+€DØ×ÑÔÐÐØ€Kó    Ú	componentc                 ó.   — t         j                  d| «      S )z°Escape a component used as a project name according to Core Metadata.
    >>> safe_name("hello world")
    'hello-world'
    >>> safe_name("hello?world")
    'hello-world'
    ú-)Ú_UNSAFE_NAME_CHARSr   )r   s    r   Ú	safe_namer      s   € ô ×!Ñ! # yÓ1Ð1r   Úversionc                 ó:  — | j                  dd«      }	 t        t        j                  j	                  |«      «      S # t        j                  j
                  $ rA t        j                  d|«      }t        t        j                  j	                  |«      «      cY S w xY w)a   Convert an arbitrary string into a valid version string.
    >>> safe_version("1988 12 25")
    '1988.12.25'
    >>> safe_version("v0.2.1")
    '0.2.1'
    >>> safe_version("v0.2?beta")
    '0.2b0'
    >>> safe_version("v0.2 beta")
    '0.2b0'
    >>> safe_version("ubuntu lts")
    Traceback (most recent call last):
    ...
    setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'ubuntu.lts'
    ú ú.r   )ÚreplaceÚstrr   r   ÚVersionÚInvalidVersionr   r   )r   ÚvÚattempts      r   Úsafe_versionr"   *   s~   € ð 	�‰˜˜SÓ!€Að7Ü”9×$Ñ$×,Ñ,¨QÓ/Ó0Ð0øÜ×Ñ×+Ñ+ò 7Ü$×(Ñ(¨¨aÓ0ˆÜ”9×$Ñ$×,Ñ,¨WÓ5Ó6Ò6ð7ús   ”'< ¼ABÂBc                 óÜ   — 	 t        | «      S # t        j                  j                  $ rA t	        j
                  d| ›d�d| ›d�dd¬«       | j                  dd«      }t        |«      cY S w xY w)	a  Convert an arbitrary string into a version-like string.
    >>> best_effort_version("v0.2 beta")
    '0.2b0'

    >>> import warnings
    >>> warnings.simplefilter("ignore", category=SetuptoolsDeprecationWarning)
    >>> best_effort_version("ubuntu lts")
    'ubuntu.lts'
    zInvalid version: r   z
            Version zû is not valid according to PEP 440.

            Please make sure to specify a valid version for your package.
            Also note that future releases of setuptools may halt the build process
            if an invalid version is given.
            z!https://peps.python.org/pep-0440/)iç  é	   é   )Úsee_urlÚdue_dater   )r"   r   r   r   r   Úemitr   r   )r   r    s     r   Úbest_effort_versionr)   A   s   € ðÜ˜GÓ$Ð$øÜ×Ñ×+Ñ+ò Ü$×)Ñ)Ø ˜{¨!Ð,ðØ�Kð  ðð 8Ø"õ	
ð �O‰O˜C Ó%ˆÜ˜‹|Òðús   ‚
 �AA+Á*A+Úvaluec                 óD   — | j                  dd«      j                  d«      S )z»Normalize each component of a filename (e.g. distribution/version part of wheel)
    Note: ``value`` needs to be already normalized.
    >>> filename_component("my-pkg")
    'my_pkg'
    r   r   )r   Ústrip©r*   s    r   Úfilename_componentr.   _   s    € ð �=‰=˜˜cÓ"×(Ñ(¨Ó-Ð-r   c                 ó*   — t        t        | «      «      S )zBLike ``safe_name`` but can be used as filename component for wheel)r.   r   r-   s    r   Ú
safer_namer0   h   s   € ô œi¨Ó.Ó/Ð/r   c                 ó*   — t        t        | «      «      S )zLLike ``best_effort_version`` but can be used as filename component for wheel)r.   r)   r-   s    r   Úsafer_best_effort_versionr2   n   s   € ô Ô1°%Ó8Ó9Ð9r   )Ú__doc__r   Úpathlibr   Útypingr   Úexternr   Úwarningsr   r   Ú_PathÚcompileÚIÚ_VALID_NAMEr   r   r   r"   r)   r.   r0   r2   © r   r   ú<module>r=      sÞ   ðñó 
Ý Ý å Ý 2àˆc�4ˆiÑ€ð ˆb�j‰jÐEÀrÇtÁtÓL€Ø�R—Z‘Z °·±Ó5Ð ð	˜#ð 	 #ó 	ð2˜ð 2 ó 2ð7˜#ð 7 #ó 7ð. ð ¨ó ð<.˜cð . có .ð0�cð 0˜có 0ð: Sð :¨Sô :r   