hyb
2025-12-23 10f3a1daddfbc7fa3dd2069197d83e8b6ef19176
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Ë
@ñúhsãóÜ—dZddlZddlmZddlZej
dej «Zej
dej «Zej
dej «Z    ej
dej «Z
de d    e fd
„Z d e d    e fd „Z d e d    e fd„Zd e d    e fd„Zde d    e fd„Zde d    e fd„Zde d    e fd„Zde d    e fd„Zde d    e fd„Zde d    e fd„Z    ddlmZy#e$r    eseZYyYywxYw)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<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  úLH:\Change_password\venv_build\Lib\site-packages\setuptools/_normalization.pyÚsafe_identifierr s-€ô 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):
    ...
    packaging.version.InvalidVersion: Invalid version: 'ubuntu.lts'
    ú ú.r)ÚreplaceÚstrÚ    packagingrÚ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/cs+€ô ×  Ñ    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_componentr3ms €ð =‰=˜˜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_brokenr5vs€ð =‰=˜˜cÓ "Ð"rcó~—tjddt|««j«j    dd«S)zBLike ``safe_name`` but can be used as filename component for wheelz[-_.]+rr)rr    rr.rr2s r Ú
safer_namer7…s1€ô
     ‰ˆy˜#œy¨Ó/Ó0ß    ‰‹ç    ‰cÓ    ð 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Ú
expressioncó—td«‚)a
    Defer import error to affect only users that actually use it
    https://github.com/pypa/setuptools/issues/4894
    >>> _missing_canonicalize_license_expression("a OR b")
    Traceback (most recent call last):
    ...
    ImportError: ...Cannot import `packaging.licenses`...
    z´Cannot import `packaging.licenses`.
        Setuptools>=77.0.0 requires "packaging>=24.2" to work properly.
        Please make sure you have a suitable version installed.
        )Ú ImportError)r:s r Ú(_missing_canonicalize_license_expressionr=˜s€ô ð     ó ðr)Úcanonicalize_license_expression)Ú__doc__rÚtypingrrÚcompileÚIÚ _VALID_NAMErr%r"rr rrr+r/r3r5r7r9r=Úpackaging.licensesr>Ú _canonicalize_license_expressionr<©rr ú<module>rGscðñó
 
Ý ãðˆ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ð@@cð@˜có@ð.˜cð. có.ð # Sð #¨Só #ð    cð    ˜có    ð: Sð:¨Só:ð¸ðÀóð$TöøðòTÙ à+SÒ(ñ ðTúsÃCà   C+Ã*C+