hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
Ë
Añúhü4ãóÀ—dZddlZddlZddlZddlZddlZddlZddlmZ    ejrddl m Z eje«ZdZej"dezdzej$ej&z«Zded    efd
„Zd Zej"d e›d ej&«Zded    efd„Z        ddlmZded    efd„Z ded    efd„Z"ded    efd„Z#d    efd„Z$Gd„d«Z%    ddl&m'Z(ded    efd„Z)ded    efd„Z*ded    efd„Z+dZ,ej"d e,›d ej&«Z-dZ.ej"d e.›d ej&«Z/d Z0ej"d e0›d ej&«Z1ded    efd!„Z2ded    efd"„Z3ded    efd#„Z4ded    efd$„Z5ded    efd%„Z6ded    efd&„Z7ded    efd'„Z8dejrd    efd(„Z:dejrd    efd)„Z;dejrd    efd*„Z<dejrd    efd+„Z9    dd,lm=Z>ded    efd-„Z?y#e$r
ddlmZYŒNwxYw#e$rejCd«ded    efd„Z YŒkwxYw#e$r e%«Z)YŒOwxYw#e$rejCd.«ded    efd/„Z?YywxYw)0a@
The functions in this module are used to validate schemas with the
`format JSON Schema keyword
<https://json-schema.org/understanding-json-schema/reference/string#format>`_.
 
The correspondence is given by replacing the ``_`` character in the name of the
function with a ``-`` to obtain the format name and vice versa.
éN)Úchain)ÚLiterala•
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
            [-_\.]?
            (?P<pre_n>[0-9]+)?
        )?
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [-_\.]?
                (?P<post_l>post|rev|r)
                [-_\.]?
                (?P<post_n2>[0-9]+)?
            )
        )?
        (?P<dev>                                          # dev release
            [-_\.]?
            (?P<dev_l>dev)
            [-_\.]?
            (?P<dev_n>[0-9]+)?
        )?
    )
    (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
z^\s*z\s*$ÚversionÚreturncó0—tj|«duS)zpSee :ref:`PyPA's version specification <pypa:version-specifiers>`
    (initially introduced in :pep:`440`).
    N)Ú VERSION_REGEXÚmatch)rs ú`H:\Change_password\venv_build\Lib\site-packages\setuptools/config/_validate_pyproject/formats.pyÚpep440r <s€ô × Ñ ˜wÓ '¨tÐ 3Ð3óz'([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])ú^ú$Únamecó0—tj|«duS)zlSee :ref:`PyPA's name specification <pypa:name-format>`
    (initially introduced in :pep:`508#names`).
    N)ÚPEP508_IDENTIFIER_REGEXr    )rs r
Úpep508_identifierrJs€ô #× (Ñ (¨Ó .°dÐ :Ð:r )Ú requirementsÚvaluecób—    tj|«y#tj$rYywxYw)z{See :ref:`PyPA's dependency specifiers <pypa:dependency-specifiers>`
        (initially introduced in :pep:`508`).
        TF)Ú_reqÚ RequirementÚInvalidRequirement©rs r
Úpep508rZs0€ð    Ü × Ñ ˜UÔ #ØøÜ×&Ñ&ò    Ùð    úó ‚˜.­.z¡Could not find an installation of `packaging`. Requirements, dependencies and versions might not be validated. To enforce validation, please install `packaging`.có—y©NT©rs r
rrkó€Ør cóJ‡—tˆfd„dD««rytd‰›«S)zÒExpression that can be used to specify/lock versions (including ranges)
    See ``versionspec`` in :ref:`PyPA's dependency specifiers
    <pypa:dependency-specifiers>` (initially introduced in :pep:`508`).
    c3ó&•K—|]}|‰v–—Œ
y­w©Nr)Ú.0Úcrs  €r
ú    <genexpr>z%pep508_versionspec.<locals>.<genexpr>tsøèø€Ò
/˜!ˆ1Œ:Ñ
/ùsƒ)ú;ú]ú@FÚ requirement)Úanyrrs`r
Úpep508_versionspecr+os,ø€ô
 Ó
/˜Ô
/Ô/ðô K ˜wÐ'Ó (Ð(r có²—|jd«\}}}d„t|jd«|jd««D«}td„|D««S)zÂSee PyPA's specification for defining build-backend references
    introduced in :pep:`517#source-trees`.
 
    This is similar to an entry-point reference (e.g., ``package.module:object``).
    ú:c3ó<K—|]}|j«–—Œy­wr"©Ústrip©r#Úis  r
r%z+pep517_backend_reference.<locals>.<genexpr>‰sèø€ÒP 1—7‘7—9ÑPùó‚ú.c3ó8K—|]}|sŒt|«–—Œy­wr"©Úpython_identifierr1s  r
r%z+pep517_backend_reference.<locals>.<genexpr>Šsèø€Ò>¨ºAÔ  ×#Ñ>ùs‚Š)Ú    partitionÚ_chainÚsplitÚall)rÚmoduleÚ_ÚobjÚ identifierss     r
Úpep517_backend_referencer@‚sK€ð —_‘_ SÓ)N€FˆAˆsÙP¤f¨V¯\©\¸#Ó->ÀÇ    Á    È#ÃÓ&OÔP€KÜ Ñ>¨[Ô>Ó >Ð>r có—ddl}ddlm}ddlm}d}|j «}|||¬«5}|«}|j dd«|d<|j«j|jd    d
««cddd«S#1swYyxYw) Nr)ÚMessage)Úurlopenz.https://pypi.org/pypi?:action=list_classifiers)Úcontextz content-typez
text/plainÚ content_typeÚcharsetzutf-8)
ÚsslÚ email.messagerBÚurllib.requestrCÚcreate_default_contextÚ    getheaderÚreadÚdecodeÚ    get_param)rGrBrCÚurlrDÚresponseÚheaderss       r
Ú_download_classifiersrR‘s‚€ÛÝ%Ý&à
:€CØ×(Ñ(Ó*€GÙ    ˜gÔ    &ðM¨(Ù“)ˆØ"*×"4Ñ"4°^À\Ó"RˆÑ؏}‰}‹×%Ñ% g×&7Ñ&7¸    À7Ó&KÓL÷M÷MòMús ­A BÂB cóx—eZdZUdZej
ddej efed<    d
d„Z    d
d„Z
dede fd    „Z y) Ú_TroveClassifierakThe ``trove_classifiers`` package is the official way of validating classifiers,
    however this package might not be always available.
    As a workaround we can still download a list from PyPI.
    We also don't want to be over strict about it, so simply skipping silently is an
    option (classifiers will be validated anyway during the upload to PyPI).
    NzLiteral[False]Ú
downloadedrcó.—d|_d|_d|_y)NFÚtrove_classifier)rUÚ_skip_downloadÚ__name__©Úselfs r
Ú__init__z_TroveClassifier.__init__­s€ØˆŒØ#ˆÔØ*ˆ r có—d|_yr)rXrZs r
Ú_disable_downloadz"_TroveClassifier._disable_download²s
€à"ˆÕr rcó—|jdus|jdurytjd«stjd«rd|_d}tj |«y|j€>d}tj |«    t t«j««|_||jvxs|j«jd«S#t$rd|_tj d«YywxYw)    NFTÚ
NO_NETWORKÚVALIDATE_PYPROJECT_NO_NETWORKzxInstall ``trove-classifiers`` to ensure proper validation. Skipping download of classifiers list from PyPI (NO_NETWORK).zxInstall ``trove-classifiers`` to ensure proper validation. Meanwhile a list of classifiers will be downloaded from PyPI.z*Problem with download, skipping validationú
private ::) rUrXÚosÚgetenvÚ_loggerÚdebugÚsetrRÚ
splitlinesÚ    ExceptionÚlowerÚ
startswith)r[rÚmsgs   r
Ú__call__z_TroveClassifier.__call__¶s逨 ?‰?˜eÑ # t×':Ñ':¸dÑ'BØä 9‰9\Ô "¤b§i¡iÐ0OÔ&PØ#ˆDŒOðPð ô M‰M˜#Ô Øà ?‰?Ð "ðPð ô M‰M˜#Ô ð Ü"%Ô&;Ó&=×&HÑ&HÓ&JÓ"K”𠘟™Ð'ÒQ¨5¯;©;«=×+CÑ+CÀLÓ+QÐQøô ò Ø"'”Ü— ‘ ÐJÔKÙð ús &C Ã %DÄD)rN) rYÚ
__module__Ú __qualname__Ú__doc__ÚtypingÚUnionÚSetÚstrÚ__annotations__r\r^Úboolrmrr r
rTrTžsM…ñð— ‘ ˜TÐ#3°V·Z±ZÀ±_ÐDÑEÓEðó +ó
#ðR˜cðR dôRr rT)Ú classifierscóT—|tvxs|j«jd«S)z!See https://pypi.org/classifiers/rb)Ú_trove_classifiersrjrkrs r
rWrWÖs$€àÔ*Ð*ÒT¨e¯k©k«m×.FÑ.FÀ|Ó.TÐTr c    ó —|jd«^}}|jd«sytdj|dt    d« g|¢««S)z—Name of a directory containing type stubs.
    It must follow the name scheme ``<package>-stubs`` as defined in
    :pep:`561#stub-only-packages`.
    r4ú-stubsFN)r:ÚendswithÚpython_module_nameÚjoinÚlen)rÚtopÚchildrens   r
Úpep561_stub_namer‚âsO€ð
—[‘[ Ó%€N€Cˆ(Ø <‰<˜Ô !ØÜ ˜cŸh™h¨Ð,<¬s°8«}¨nÐ(=Ð'IÀÐ'IÓJÓ KÐKr có.—ddlm}    ||«}|jsItj    d|›«|j d«s |j d«sd|vs |d|›«}t |jxr |j«S#t$rYywxYw)    z§Valid URL (validation uses :obj:`urllib.parse`).
    For maximum compatibility please make sure to include a ``scheme`` prefix
    in your URL (e.g. ``http://``).
    r)ÚurlparsezsFor maximum compatibility please make sure to include a `scheme` prefix in your URL (e.g. 'http://'). Given value: ú/ú\r(zhttp://F)    Ú urllib.parser„ÚschemereÚwarningrkrvÚnetlocri)rr„Úpartss   r
rOrOñs•€õ
&ð Ù˜“ˆØ|Š|Ü O‰Oð à %˜wð(ô ð
×$Ñ$ SÔ)¨U×-=Ñ-=¸dÔ-CÀsÈeÁ|Ù  7¨5¨'Ð!2Ó3äE—L‘LÒ1 U§\¡\Ó2Ð2øÜ òÙðúsˆA?B    BÂBz[^\[\s=]([^=]*[^\s=])?z[\w.-]+z \w+(\.\w+)*có"—|j«S)zXCan be used as identifier in Python.
    (Validation uses :obj:`str.isidentifier`).
    )Ú isidentifierrs r
r7r7s€ð × Ñ Ó Ðr cóŠ—|jd«s|jd«rytd„|jd«D««S)z•
    Python "dotted identifier", i.e. a sequence of :obj:`python_identifier`
    concatenated with ``"."`` (e.g.: ``package.module.submodule``).
    r4Fc3ó2K—|]}t|«–—Œy­wr"r6)r#Úms  r
r%z.python_qualified_identifier.<locals>.<genexpr>sèø€Ò>¨Ô  ×#Ñ>ùó‚)rkr|r;r:rs r
Úpython_qualified_identifierr’s:€ð
 ×јԠ§¡¨sÔ 3ØÜ Ñ>¨U¯[©[¸Ó-=Ô>Ó >Ð>r có—t|«S)zsModule name that can be used in an ``import``-statement in Python.
    See :obj:`python_qualified_identifier`.
    )r’rs r
r}r}"s€ô ' uÓ -Ð-r có¢—|jd«s|jd«ry|jd«ryt|jdd««S)a±Similar to :obj:`python_module_name`, but relaxed to also accept
    dash characters (``-``) and cover special cases like ``pip-run``.
 
    It is recommended, however, that beginners avoid dash characters,
    as they require advanced knowledge about Python internals.
 
    The following are disallowed:
 
    * names starting/ending in dashes,
    * names ending in ``-stubs`` (potentially collide with :obj:`pep561_stub_name`).
    ú-Fr{r=)rkr|r}Úreplacers r
Úpython_module_name_relaxedr—)sE€ð ×јԠ§¡¨sÔ 3ØØ ‡~~hÔØÜ ˜eŸm™m¨C°Ó5Ó 6Ð6r có0—tj|«duS)zhSee ``Data model > group`` in the :ref:`PyPA's entry-points specification
    <pypa:entry-points>`.
    N)ÚENTRYPOINT_GROUP_REGEXr    rs r
Úpython_entrypoint_grouprš<s€ô "× 'Ñ '¨Ó .°dÐ :Ð:r có¢—tj|«sytj|«s$d|›d}|tz }tj |«y)zgSee ``Data model > name`` in the :ref:`PyPA's entry-points specification
    <pypa:entry-points>`.
    Fz Entry point `z'` does not follow recommended pattern: T)ÚENTRYPOINT_REGEXr    ÚRECOMMEDED_ENTRYPOINT_REGEXÚRECOMMEDED_ENTRYPOINT_PATTERNrer‰)rrls  r
Úpython_entrypoint_namerŸCsL€ô × !Ñ ! %Ô (ØÜ &× ,Ñ ,¨UÔ 3ؘe˜WÐ$KÐLˆØ Ô,Ñ,ˆÜ‰˜ÔØ r cóð—|jd«\}}}d|vr‘|jd«\}}}|j«ddk7ryd„|jtjdz«j    d«D«}t d    „|D««syt jd
|›d «n|}|j    d «}|rt||j    d ««n
t|«}t d „|D««S)zÑReference to a Python object using in the format::
 
        importable.module:object.attr
 
    See ``Data model >object reference`` in the :ref:`PyPA's entry-points specification
    <pypa:entry-points>`.
    r-ú[éÿÿÿÿr'Fc3ó<K—|]}|j«–—Œy­wr"r/)r#Úxs  r
r%z.python_entrypoint_reference.<locals>.<genexpr>]sèø€ÒX !—'‘'—)ÑXùr3z[]ú,c3ó2K—|]}t|«–—Œy­wr")r)r#Úes  r
r%z.python_entrypoint_reference.<locals>.<genexpr>^sèø€Ò8¨AÔ$ Q×'Ñ8ùr‘ú`z4` - using extras for entry points is not recommendedr4c3óNK—|]}t|j««–—Œy­wr")r7r0r1s  r
r%z.python_entrypoint_reference.<locals>.<genexpr>fsèø€ÒA°Ô  §¡£×+ÑAùs‚#%)
r8r0ÚstringÚ
whitespacer:r;rer‰r9Úiter)    rr<r=Úrestr>Úextras_ÚextrasÚ module_partsr?s             r
Úpython_entrypoint_referencer±Psۀð—o‘o cÓ*O€FˆAˆtØ
ˆd{ØŸ.™.¨Ó-‰ˆˆQØ =‰=‹?˜2Ñ  #Ò %ØÙX W§]¡]´6×3DÑ3DÀtÑ3KÓ%L×%RÑ%RÐSVÓ%WÔXˆÜÑ8°Ô8Ô8ØÜ‰˜!˜E˜7Ð"VÐWÕXàˆà—<‘< Ó$€LÙ:>”&˜ s§y¡y°£~Ô6ÄDÈÓDV€KÜ ÑA°[ÔAÓ AÐAr có"—d|cxkxrdkScS)z/Unsigned 8-bit integer (:math:`0 \leq x < 2^8`)rérrs r
Úuint8r´is€à Ö ˜Ñ ÐÑ Ðr có"—d|cxkxrdkScS)z3Unsigned 16-bit integer (:math:`0 \leq x < 2^{16}`)rirrs r
Úuint16r¶nó€à Ö ˜Ñ ÐÑ Ðr có"—d|cxkxrdkScS)z3Unsigned 64-bit integer (:math:`0 \leq x < 2^{64}`)rlrrs r
Úuintr¹sr·r có"—d|cxkxrdkScS)z7Signed 64-bit integer (:math:`-2^{63} \leq x < 2^{63}`)lûÿÿÿlrrs r
Úintr»xs€à uÖ $˜uÑ $Ð$Ñ $Ð$r )Úlicensescób—    tj|«y#tj$rYywxYw)z‚See :ref:`PyPA's License-Expression specification
        <pypa:core-metadata-license-expression>` (added in :pep:`639`).
        TF)Ú    _licensesÚcanonicalize_license_expressionÚInvalidLicenseExpressionrs r
ÚSPDXrÁ€s0€ð    Ü × 5Ñ 5°eÔ <ØøÜ×1Ñ1ò    Ùð    úrzžCould not find an up-to-date installation of `packaging`. License expressions might not be validated. To enforce validation, please install `packaging>=24.2`.có—yrrrs r
rÁrÁ‘rr )@rpÚbuiltinsÚloggingrcÚrerªrqÚ    itertoolsrr9Ú TYPE_CHECKINGÚtyping_extensionsrÚ    getLoggerrYreÚVERSION_PATTERNÚcompileÚXÚIrrtrvr ÚPEP508_IDENTIFIER_PATTERNrrÚ    packagingrrÚ ImportErrorÚsetuptools._vendor.packagingrr‰r+r@rRrTÚtrove_classifiersrwryrWr‚rOÚENTRYPOINT_PATTERNrœržrÚENTRYPOINT_GROUP_PATTERNr™r7r’r}r—ršrŸr±r»r´r¶r¹r¼r¾rÁrr r
ú<module>rÕs‚ðñóÛÛ    Û    Û Û Ý%à    ×ÒÝ)à
ˆ'×
˜HÓ
%€ð
€ð>—
‘
˜7 _Ñ4°wÑ>ÀÇÁÀrÇtÁtÁ ÓL€ ð4Cð4˜Dó4ðGÐØ$˜"Ÿ*™* qÐ)BÐ(CÀ1Ð%EÀrÇtÁtÓLÐð;˜Cð; Dó;ðð
Ý2ðcð˜dóð* )˜cð ) dó )ð&? Cð?¨Dó?ð
M˜só
M÷2Rñ2Rðj*ÝCðU ðU¨óUðL˜CðL DóLðˆsðtóð0/ÐØ2—:‘: Ð"4Ð!5°QÐ7¸¿¹Ó>ÐØ *ÐØ(˜bŸj™j¨1Ð-JÐ,KÈ1Ð)MÈrÏtÉtÓTÐØ)ÐØ#˜Ÿ™ aÐ(@Ð'AÀÐ$CÀRÇTÁTÓJÐð ˜Sð  Tó ð? sð?¨tó?ð.˜cð. dó.ð7 cð7¨dó7ð&; 3ð;¨4ó;ð
 #ð
¨$ó
ðB sðB¨tóBð2—‘ð $óð
(—,‘,ð 4óð
— ‘ ð óð
%ˆx|‰|ð% ó%ð
Ý/ðCð˜DôøðY     ò
÷    
ð    
ð
ûð òØ ‡OOð    =ôð cð˜döðûðlò*Ù'Ó)Óð*ûð`òØ ‡OOð    Côð Cð˜DõðúsTÂ,G2Â2HÃH)Ç#H<Ç2 HÇ=HÈHÈHÈH&È%H&È) H9È8H9È<IÉI