Your IP : 216.73.216.178


Current Path : /usr/lib/python3.12/site-packages/setuptools/__pycache__/
Upload File :
Current File : //usr/lib/python3.12/site-packages/setuptools/__pycache__/_normalization.cpython-312.pyc

�

!��st���dZddlZddlmZejdej
�Zejdej
�Zejdej
�Zejdej
�Z	d	e
d
e
fd�Zde
d
e
fd
�Zde
d
e
fd�Z
de
d
e
fd�Zde
d
e
fd�Zde
d
e
fd�Zde
d
e
fd�Zde
d
e
fd�Zde
d
e
fd�Zy)zZ
Helpers for normalization as expected in wheel/sdist/module file names
and core metadata
�N�)�	packagingz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$z
[^A-Z0-9._-]+z
[^A-Z0-9]+z,^v?(?P<safe>(?:[0-9]+!)?[0-9]+(?:\.[0-9]+)*)�name�returnc�X�tjdd|�}|j�sJ�|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.12/site-packages/setuptools/_normalization.py�safe_identifierrs-���6�6�-��d�+�D��������K��	componentc�.�tjd|�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'
    >>> safe_name("hello_world")
    'hello_world'
    �-)�_UNSAFE_NAME_CHARSr
)rs r
�	safe_namers���!�!�#�y�1�1r�versionc�:�|jdd�}	ttjj	|��S#tjj
$rAtjd|�}ttjj	|��cYSwxYw)a
Convert an arbitrary string into a valid version string.
    Can still raise an ``InvalidVersion`` exception.
    To avoid exceptions use ``best_effort_version``.
    >>> 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�strrr�Version�InvalidVersionrr
)r�v�attempts   r
�safe_versionr*s~��"	����S�!�A�7��9�$�$�,�,�Q�/�0�0�����+�+�7�$�(�(��a�0���9�$�$�,�,�W�5�6�6�7�s�'<�AB�Bc�t�	t|�S#tjj$r�|j	dd�}t
j
|�}|r|d}|t|�d}nd}|}tjd|�jd�}d|��jd�}t|�d|���cYSwxYw)a�Convert an arbitrary string into a version-like string.
    Fallback when ``safe_version`` is not safe enough.
    >>> best_effort_version("v0.2 beta")
    '0.2b0'
    >>> best_effort_version("ubuntu lts")
    '0.dev0+sanitized.ubuntu.lts'
    >>> best_effort_version("0.23ubuntu1")
    '0.23.dev0+sanitized.ubuntu1'
    >>> best_effort_version("0.23-")
    '0.23.dev0+sanitized'
    >>> best_effort_version("0.-_")
    '0.dev0+sanitized'
    >>> best_effort_version("42.+?1")
    '42.dev0+sanitized.1'
    rrrN�0z
sanitized.z.dev0+)rrrrr�_PEP440_FALLBACK�search�len�_NON_ALPHANUMERICr
�strip)rr�matchr�rest�	safe_rest�locals       r
�best_effort_versionr+Cs���"
4��G�$�$�����+�+�4��O�O�C��%�� �'�'��*�����=�D��S��Y�[�>�D��D��D�%�)�)�#�t�4�:�:�3�?�	��Y�K�(�.�.�s�3���t�f�F�5�'�2�3�3�4�s�

�B'B7�6B7�extrac�h�tjd|�jd�j�S)z�Normalize extra name according to PEP 685
    >>> safe_extra("_FrIeNdLy-._.-bArD")
    'friendly-bard'
    >>> safe_extra("FrIeNdLy-._.-bArD__._-")
    'friendly-bard'
    r)r%r
r&�lower)r,s r
�
safe_extrar/ds+��� � ��e�,�2�2�3�7�=�=�?�?r�valuec�D�|jdd�jd�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'
    rr)rr&�r0s r
�filename_componentr3ns ���=�=��c�"�(�(��-�-rc�&�|jdd�S)a
    Produce the incorrect filename component for compatibility.

    See pypa/setuptools#4167 for detailed analysis.

    TODO: replace this with filename_component after pip 24 is
    nearly-ubiquitous.

    >>> filename_component_broken('foo_bar-baz')
    'foo-bar-baz'
    rr)rr2s r
�filename_component_brokenr5ws���=�=��c�"�"rc�*�tt|��S)zBLike ``safe_name`` but can be used as filename component for wheel)r3rr2s r
�
safer_namer7�s���i��.�/�/rc�*�tt|��S)zLLike ``best_effort_version`` but can be used as filename component for wheel)r3r+r2s r
�safer_best_effort_versionr9�s���1�%�8�9�9r)�__doc__r	�externr�compile�I�_VALID_NAMErr%r"rrrrr+r/r3r5r7r9�rr
�<module>r@s!���

���b�j�j�E�r�t�t�L���R�Z�Z� 0�"�$�$�7���B�J�J�}�b�d�d�3���2�:�:�M�r�t�t�T��	�#�	�#�	�
2��
2��
2�7�#�7�#�7�24��4��4�B@�c�@�c�@�.�c�.�c�.�#�S�#�S�#�0�c�0�c�0�:�S�:�S�:r