gC d Z ddlZddlmZ ddlZ ej dej Z ej dej Z ej dej Z ej dej Z
ded efd
Zded efdZ
d
ed efdZd
ed efdZded efdZded efdZded efdZded efdZded efdZded efdZ ddlmZ dS # e$ r eseZY dS Y dS w xY w)zZ
Helpers for normalization as expected in wheel/sdist/module file names
and core metadata
N)
TYPE_CHECKINGz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$z
[^A-Z0-9._-]+z
[^A-Z0-9]+z,^v?(?P(?:[0-9]+!)?[0-9]+(?:\.[0-9]+)*)namereturnc ^ t j dd| }| sJ |S )zMake 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)_)resubisidentifier)r safes k/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/setuptools/_normalization.pysafe_identifierr
s4 6-d++DK componentc 8 t d| S )zEscape 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 )r s r safe_namer s !!#y111r versionc J | dd } t t j | S # t j j $ rJ t d| }t t j | cY S w xY w)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):
...
packaging.version.InvalidVersion: Invalid version: 'ubuntu.lts'
.r )replacestr packagingr VersionInvalidVersionr r )r vattempts r safe_versionr * s " S!!A79$,,Q//000+ 7 7 7$((a009$,,W55666667s +A AB"!B"c t | S # t j j $ r | dd }t
| }|r |d }|t | d }nd}| }t d|
d }d|
d }t | d| cY S w xY w)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'
r r r N0z
sanitized.z.dev0+)r r r r r _PEP440_FALLBACKsearchlen_NON_ALPHANUMERICr strip)r r matchr rest safe_restlocals r best_effort_versionr+ C s
4G$$$+ 4 4 4OOC%% ''** =DSYY[[>DDDD%))#t44::3?? (Y((..s33t22522333334s CCCextrac t d| d S )zNormalize extra name according to PEP 685
>>> safe_extra("_FrIeNdLy-._.-bArD")
'friendly-bard'
>>> safe_extra("FrIeNdLy-._.-bArD__._-")
'friendly-bard'
r )r% r r&