hyb
2025-11-07 cadac0a99d87c53805a07f3b4ca7fd11e524fe4a
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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
Ë
Añúh‡pãó¸—dZddlmZddlZddlZddlZddlmZddlm    Z    ddl
m Z ddl Z ddl mZddlmZddlZdd    lmZdd
lmZdd lmZmZmZdd lmZmZdd lmZddlm Z m!Z!ddl"m#Z#m$Z$ddl%m&Z&m'Z'e    e(«jRZ*dZ+d„Z,d„Z-e j\j_de'e*e+z ««e j\jad«e j\jbd„«««Z2dZ3dZ4dZ5dZ6dZ7de3fd„Z8d„Z9e j\j_d gd!¢«d"„«Z:d#„Z;d$„Z<e j\j_d%e jze3d&d'¬(«e jze4d)e j\j}d*d+¬,«d-¬.«f«d/„«Z?e j\j_d0e jze6d1dd2d3d4e j\jad5«g¬6«e jze7dd7d8d9d:¬(«f«d;„«Z@d<„ZAd=„ZBGd>„d?«ZCGd@„dA«ZDGdB„dC«ZEGdD„dE«ZFGdF„dG«ZGGdH„dI«ZHGdJ„dK«ZIGdL„dM«ZJdOdN„ZKy)PzÍMake sure that applying the configuration from pyproject.toml is equivalent to
applying a similar configuration from setup.cfg
 
To run these tests offline, please have a look on ``./downloads/preload.py``
é)Ú annotationsN)Úcleandoc)ÚPath)ÚMock)ÚLiteTranslator)ÚMetadata)Ú    is_static)Úwrite_requirements)ÚexpandÚ pyprojecttomlÚsetupcfg)Ú_MissingDynamicÚ_some_attrgetter©Ú Distribution)ÚInvalidConfigErrorÚRemovedConfigError)ÚInformationOnlyÚSetuptoolsDeprecationWarningé)Ú retrieve_fileÚurls_from_filezsetupcfg_examples.txtc ó —td|i|¥«S)NÚsrc_rootr)ÚpathÚattrss  úcH:\Change_password\venv_build\Lib\site-packages\setuptools/tests/config/test_apply_pyprojecttoml.pyÚmakedistr#s€Ü ˜ TÐ3¨UÐ3Ó 4Ð4óc    ó~—|Dcgc]-}tjdd|tj¬«xsd‘Œ/c}Scc}w)z„
    Allow comparing the given patterns for 2 dist objects.
    We need to strip special chars to avoid errors when validating.
    z
[^a-z0-9]+Ú)ÚflagsÚempty)ÚreÚsubÚI)ÚpatternsÚ_Ú__Úps    rÚ_mock_expand_patternsr+'s5€ð
IQÖ QÀ1ŒBF‰F<  Q¬b¯d©dÔ 3Ò >°wÑ >Ò QÐQùÒ Qs…2:ÚurlÚignorec    ó¦—|jtdtd¬««|jtdtt¬««t |«}t |d«}|jd¬«}t«j|d    «}|j|d¬«tjt|«|«}tjt|«|«}t|«}    t|«}
|    |
k(sJ‚t!d
„||fD««r-t#|j$«t#|j$«k(sJ‚t!d „||fD««rœt'|j(«|j(j+«D  chc]\} } | gt-d „| D««¢­’Œ} } } |j(j+«D  chc]\} } | gt-d „| D««¢­’Œ}} } | |k(sJ‚t!d„||fD««ry|j.j+«D  chc]\} } | gt-| «¢­’Œ}} } |j.j+«D  chc]\} } | gt-| «¢­’Œ}} } ||k(sJ‚t!d„||fD««r]|j0D  chc]\} } | gt-| «¢­’Œ}} } |j0D  chc]\} } | gt-| «¢­’Œ}} } ||k(sJ‚t#|j2«t#|j2«k(sJ‚t!d„||fD««rz|j4j+«D  chc]\} } | gt-| «¢­’Œ}} } |j4j+«D  chc]\} } | gt-| «¢­’Œ}} } ||k(sJ‚yycc} } wcc} } wcc} } wcc} } wcc} } wcc} } wcc} } wcc} } w)NÚ    read_attrz0.0.1)Ú return_valueÚ_expand_patterns)Ú side_effectúpyproject.tomlúutf-8©Úencodingz    setup.cfgc3ó6K—|]}t|dd«–—Œy­w)Ú license_filesN©Úgetattr©Ú.0Úds  rú    <genexpr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>Dsèø€Ò
L°Œ71o t× ,Ñ
Lùó‚c3ó6K—|]}t|dd«–—Œy­w)Ú entry_pointsNr9r;s  rr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>Góèø€Ò
K°Œ71n d× +Ñ
Kùr?c3ó@K—|]}|jdd«–—Œy­w©ú r!N©Úreplace©r<Úis  rr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>Jóèø€Ò6¨q˜Ÿ    ™     # r×*Ñ6ùó‚c3ó@K—|]}|jdd«–—Œy­wrDrFrHs  rr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>NrJrKc3ó6K—|]}t|dd«–—Œy­w)Ú package_dataNr9r;s  rr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>SrBr?c3ó6K—|]}t|dd«–—Œy­w)Ú
data_filesNr9r;s  rr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>Xsèø€Ò
I¨aŒ71l D× )Ñ
Iùr?c3ó6K—|]}t|dd«–—Œy­w)Úextras_requireNr9r;s  rr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>^sèø€Ò
M°!Œ71Ð&¨× -Ñ
Mùr?)Úsetattrr rrr+rrÚ    read_textrÚ    translateÚ
write_textr Úapply_configurationrr Ú core_metadataÚanyÚsetr8ÚprintrAÚitemsÚsortedrNrPÚinstall_requiresrR)r,Ú monkeypatchÚtmp_pathÚsetupcfg_exampleÚpyproject_exampleÚ setupcfg_textÚ toml_configÚ    dist_tomlÚdist_cfgÚ pkg_info_tomlÚ pkg_info_cfgÚkÚvÚep_tomlÚep_cfgÚ pkg_data_tomlÚ pkg_data_cfgÚdata_files_tomlÚdata_files_cfgÚextra_req_tomlÚ extra_req_cfgs                     rÚ+test_apply_pyproject_equivalent_to_setupcfgrs/s‘€ð×Ñœ  ¬T¸wÔ-GÔHØ×ÑÜÐ(¬$Ô;PÔ*Qôô% SÓ)ÐܘXÐ'7Ó8ÐØ$×.Ñ.¸Ð.Ó@€MÜ Ó"×,Ñ,¨]¸KÓH€KØ× Ñ  °wРÔ?ä×1Ñ1´(¸8Ó2DÐFWÓX€IÜ×+Ñ+¬H°XÓ,>Ð@PÓQ€Hä! )Ó,€MÜ  Ó*€LØ ˜LÒ (Ð(Ð (ä
Ñ
L°yÀ(Ð6KÔ
LÔLܐ9×*Ñ*Ó+¬s°8×3IÑ3IÓ/JÒJÐJÐJä
Ñ
K°iÀÐ5JÔ
KÔKÜ ˆh×#Ñ#Ô$ð"×.Ñ.×4Ñ4Ó6÷
ᐐ1ðÐ 7”Ñ6°AÔ6Ó6Ó 7ð
ˆñ
ð !×-Ñ-×3Ñ3Ó5÷
ᐐ1ðÐ 7”Ñ6°AÔ6Ó6Ó 7ð
ˆñ
ð˜&ҠРРä
Ñ
K°iÀÐ5JÔ
KÔKØ5>×5KÑ5K×5QÑ5QÓ5S×T©T¨Q°˜!˜œf Q›i›ÐTˆ ÑTØ4<×4IÑ4I×4OÑ4OÓ4Q×R©D¨A¨q˜˜œV A›Y›ÐRˆ ÑRØ  Ò,Ð,Ð,ä
Ñ
I°I¸xÐ3HÔ
IÔIØ7@×7KÑ7K×L©t¨q°!˜A˜?¤ q£    ›?ÐLˆÑLØ6>×6IÑ6I×J©d¨a°˜1˜/œv a›y›/ÐJˆÑJØ .Ò0Ð0Ð0ä ˆy×)Ñ)Ó *¬c°(×2KÑ2KÓ.LÒ LÐLÐ LÜ
Ñ
M¸    À8Ð7LÔ
MÔMØ6?×6NÑ6N×6TÑ6TÓ6V×W©d¨a°˜1˜/œv a›y›/ÐWˆÑWØ5=×5LÑ5L×5RÑ5RÓ5T×U©T¨Q°˜!˜œf Q›i›ÐUˆ ÑUØ Ò.Ð.Ñ.ðNùó+
ùó
ùóUùÛRùóMùÛJùó
XùÛUs0Å? N#Æ? N)ÈN/ÉN5ÊN;ËOÍOÍ>O u¤[project]
name = "spam"
version = "2020.0.0"
description = "Lovely Spam! Wonderful Spam!"
readme = "README.rst"
requires-python = ">=3.8"
license-files = ["LICENSE.txt"]  # Updated to be PEP 639 compliant
keywords = ["egg", "bacon", "sausage", "tomatoes", "Lobster Thermidor"]
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
maintainers = [
  {name = "Brett Cannon", email = "brett@python.org"},
  {name = "John X. ÃƒÃ¸rçeč", email = "john@utf8.org"},
  {name = "Γαμα ï­‡ æ±", email = "gama@utf8.org"},
]
classifiers = [
  "Development Status :: 4 - Beta",
  "Programming Language :: Python"
]
 
dependencies = [
  "httpx",
  "gidgethub[httpx]>4.0.0",
  "django>2.1; os_name != 'nt'",
  "django>2.0; os_name == 'nt'"
]
 
[project.optional-dependencies]
test = [
  "pytest < 5.0.0",
  "pytest-cov[all]"
]
 
[project.urls]
homepage = "http://example.com"
documentation = "http://readthedocs.org"
repository = "http://github.com"
changelog = "http://github.com/me/spam/blob/master/CHANGELOG.md"
 
[project.scripts]
spam-cli = "spam:main_cli"
 
[project.gui-scripts]
spam-gui = "spam:main_gui"
 
[project.entry-points."spam.magical"]
tomatoes = "spam:main_tomatoes"
uá[project]
name = "spam"
version = "2020.0.0"
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
maintainers = [
  {name = "Степан Ð‘андера", email = "криївка@оун-упа.укр"},
]
zE
def main_cli(): pass
def main_gui(): pass
def main_tomatoes(): pass
z[project]
name = "spam"
version = "2020.0.0"
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
license = {text = "MIT"}
a#[project]
name = "spam"
version = "2020.0.0"
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
license = "mit or apache-2.0"  # should be normalized in metadata
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Programming Language :: Python",
]
z
README.rstcó*—|dz }|}dd|›di}|j«D]\}}|j||«}Œ|j|d¬«||z jdd¬«|dz jd    d¬«|d
z jtd¬«|S) Nr3zreadme = "README.rst"z
readme = "ú"r4r5z hello worldú LICENSE.txtú--- LICENSE stub ---zspam.py)r\rGrVÚPEP621_EXAMPLE_SCRIPT)r`ÚreadmeÚpyproject_textÚ    pyprojectÚtextÚ replacementsÚorigÚsubsts        rÚ_pep621_example_projectr€Æs¶€ð
Ð+Ñ+€IØ €DØ+¨z¸&¸ÀÐ-CÐD€LØ#×)Ñ)Ó+ò)‰ ˆˆe؏|‰|˜D %Ó(‰ð)à ×ј¨ÐÔ0à Ñ×"Ñ" =¸7Ð"ÔCØ  Ñ×)Ñ)Ð*@È7Ð)ÔSØ     Ñ×%Ñ%Ô&;ÀgÐ%ÔNØ Ðrcó¢—t|«}tjt|«|«}t    |j
j «dhk(sJ‚y)z&Make sure the example in PEP 621 worksrvN)r€r rWrrZÚmetadatar8©r`r{Údists   rÚtest_pep621_exampler…ØsB€ä'¨Ó1€IÜ × ,Ñ ,¬X°hÓ-?ÀÓ K€DÜ ˆt}‰}×*Ñ*Ó +° ¨Ò >Ð>Ñ >r)ryÚctype))z
Readme.txtz
text/plain)z    readme.mdz text/markdown)ztext.rstz
text/x-rstcó—t||«}tjt|«|«}|jj
|k(sJ‚y©N©r€r rWrr‚Úlong_description_content_type)r`ryr†r{r„s     rÚtest_readme_content_typer‹ßs?€ô(¨°&Ó9€IÜ × ,Ñ ,¬X°hÓ-?ÀÓ K€DØ =‰=× 6Ñ 6¸%Ò ?Ð?Ñ ?rcóº—t|d«}tjtd¬«5t    j
t |«|«ddd«y#1swYyxYw)Nz
README.texz%Undefined content type for README.tex©Úmatch)r€ÚpytestÚraisesÚ
ValueErrorr rWr)r`r{s  rÚtest_undefined_content_typer’ísK€Ü'¨°,Ó?€IÜ    ‰”zÐ)PÔ    QñIÜ×)Ñ)¬(°8Ó*<¸iÔH÷I÷IñIús ¨ AÁAcóŠ—t|d«}tjt|«|«}|jj
J‚y)NÚREADMEr‰rƒs   rÚ3test_no_explicit_content_type_for_missing_extensionr•ós;€Ü'¨°(Ó;€IÜ × ,Ñ ,¬X°hÓ-?ÀÓ K€DØ =‰=× 6Ñ 6Ð >Ð>Ñ >r)rzÚexpected_maintainers_meta_valueugBrett Cannon <brett@python.org>, "John X. ÃƒÃ¸rçeč" <john@utf8.org>, Î“αμα ï­‡ æ± <gama@utf8.org>znon-international-emails)ÚiduAСтепан Ð‘андера <криївка@оун-упа.укр>zlCPython's `email.headerregistry.Address` only supports RFC 5322, as of Nov 10, 2022 and latest Python 3.11.0T)ÚreasonÚstrictzinternational-email)Úmarksr—cóP—t|d|¬«}tjt|«|«}|jj
|k(sJ‚|dz }t |dd¬«5}|jj|«ddd«|jd¬«}d|›|vsJ‚y#1swYŒ%xYw)Nr”©rzúPKG-FILEÚwr4r5zMaintainer-email: )    r€r rWrr‚Úmaintainer_emailÚopenÚwrite_pkg_filerT)r–rzr`r{r„Úpkg_fileÚfhÚcontents        rÚ test_utf8_maintainer_in_metadatar¥ùs²€ô8(ØØØ%ô€Iô
× ,Ñ ,¬X°hÓ-?ÀÓ K€DØ =‰=× )Ñ )Ð-LÒ LÐLÐ Lؘ*Ñ$€HÜ     ˆh˜ gÔ    .ð)°"Ø  ‰ ×$Ñ$ RÔ(÷)à× Ñ ¨'РÓ2€GØ Р?Ð@Ð AÀWÑ LÐLÑ L÷)ð)ús ÁBÂB%)rzÚlicenseÚlicense_expressionÚ content_strÚnot_content_strÚMITz License: MITzLicense-Expression: z license-textz6ignore:.project.license. as a TOML table is deprecated)r—ršzMIT OR Apache-2.0z%License-Expression: MIT OR Apache-2.0z    License: zlicense-expressioncó˜—t|d|¬«}tjt|«|«}|jj
|k(sJ‚|jj |k(sJ‚|dz }t|dd¬«5}    |jj|    «ddd«|jd¬«}
d|
vsJ‚||
vsJ‚||
vsJ‚y#1swYŒ.xYw)Nr”rœrržr4r5zMetadata-Version: 2.4)
r€r rWrr‚r¦r§r r¡rT) r¦r§r¨r©rzr`r{r„r¢r£r¤s            rÚtest_license_in_metadatar¬#sހôP(ØØØ%ô€Iô
× ,Ñ ,¬X°hÓ-?ÀÓ K€DØ =‰=×  Ñ   GÒ +Ð+Ð +Ø =‰=× +Ñ +Ð/AÒ AÐAÐ Aؘ*Ñ$€HÜ     ˆh˜ gÔ    .ð)°"Ø  ‰ ×$Ñ$ RÔ(÷)à× Ñ ¨'РÓ2€GØ " gÑ -Ð-Ð -Ø ˜'Ñ !Ð!Ð !Ø  'Ñ )Ð)Ñ )÷ )ð)ús Á7CÃC    có*—tjdd«d}t|d|›d«}d}tjt
|¬«5}t jt|«|«ddd«dtj«vsJ‚y#1swYŒ#xYw)    Nú
érr”z/
    "License :: OSI Approved :: MIT License"
]z?License classifiers have been superseded by license expressionsrú&License :: OSI Approved :: MIT License) ÚPEP639_LICENSE_EXPRESSIONÚrsplitr€rrrr rWrÚstrÚvalue)r`r|r{ÚmsgÚexcs     rÚ/test_license_classifier_with_license_expressionr·\s“€Ü $× +Ñ +¨D°!Ó 4°QÑ 7€DÜ'ØØØ ˆ&ÐCÐDó€Ið
L€CÜ    ‰Ô)°Ô    5ðI¸Ü×)Ñ)¬(°8Ó*<¸iÔH÷Ið 4´s¸3¿9¹9³~Ñ EÐEÑ E÷IðIús Á B        Bcóh—d}t|d|«}d}d}tjt|¬«5tjt|¬«5t    j
t |«|«}ddd«ddd«jj«dgk(sJ‚y#1swYŒ2xYw#1swYŒ6xYw)Nz¥    [project]
    name = "spam"
    version = "2020.0.0"
    license = {text = "mit or apache-2.0"}
    classifiers = ["License :: OSI Approved :: MIT License"]
    r”z5License classifiers are deprecated(?:.|
)*MIT Licenseú/.project.license. as a TOML table is deprecatedrr°)    r€rÚwarnsrr rWrr‚Úget_classifiers)r`r|r{Úmsg1Úmsg2r„s      rÚ2test_license_classifier_without_license_expressionr¾js­€ð €Dô(¨°(¸DÓA€Ià C€DØ <€Dä ‰ Ô1¸Ô>ñPä ‰ Ô1¸Ô>ñPô×0Ñ0´¸(Ó1CÀYÓOˆ÷    P÷Pð =‰=× (Ñ (Ó *Ð/WÐ.XÒ XÐXÑ X÷PðPú÷PðPús#¯B(Á  BÁ+B(ÂB%    Â!B(Â(B1cóD—eZdZ        d
d„Zd d„Zd„Zd„Zd„Zd„Zd„Z    d„Z
y    ) ÚTestLicenseFilescó —t}d|vsJ‚d|vsJ‚d|vsJ‚tjd||d¬«}||vsJ‚|›d|›d}t|d|¬    «}|S)
Nzlicense = "mit or apache-2.0"z license-filesz[tool.setuptools]z(license = .*)\nr)Úcountr®r”rœ)r±r$r%r€)Úselfr`Úadditional_textÚ license_tomlr|r{s      rÚbase_pyprojectzTestLicenseFiles.base_pyprojects†€ô )ˆð/°$Ñ6Ð6Ð6Ø dÑ*Ð*Ð*Ø"¨$Ñ.Ð.Ð.äv‰vØ Ø Ø Øô    
ˆð ˜tÑ#Ð#Ð#ؐr˜/Ð*¨"Ð-ˆÜ+¨H°hÈtÔTˆ    ØÐrcó*—|j||d¬«S)Nz>license = "licenseref-Proprietary"
license-files = ["_FILE*"]
)rÄrÅ)rÆ)rÃr`rÄs   rÚbase_pyproject_license_pep639z.TestLicenseFiles.base_pyproject_license_pep639™s%€Ø×"Ñ"Ø Ø+ð-ð#ó
ð    
rcó0—d}|j||«}|dz j«|dz j«|dz }|jdd¬«d}d    }tjt
|¬
«5tjt
|¬
«5t jt|«|«}ddd«ddd«tjj«ddhk(sJ‚|jjdk(sJ‚y#1swYŒSxYw#1swYŒWxYw) Nú,[tool.setuptools]
license-files = ["_FILE*"]ú    _FILE.txtú    _FILE.rstrvzLicenseRef-Proprietary
r4r5zQ'tool.setuptools.license-files' is deprecated in favor of 'project.license-files'r¹r) rÆÚtouchrVrrºrr rWrrZr‚r8r¦)rÃr`Úsetuptools_configr{r¦r¼r½r„s        rÚ+test_both_license_and_license_files_definedz<TestLicenseFiles.test_both_license_and_license_files_defined¡s €ØKÐØ×'Ñ'¨Ð2CÓDˆ    à    KÑ    ×&Ñ&Ô(Ø    KÑ    ×&Ñ&Ô(ð˜]Ñ*ˆØ×ÑÐ5ÀÐÔHàbˆØ@ˆä L‰LÔ5¸TÔ Bñ    Tä L‰LÔ5¸TÔ Bñ    Tô!×4Ñ4´X¸hÓ5GÈÓSˆD÷        T÷    Tô
4—=‘=×.Ñ.Ó/°KÀÐ3MÒMÐMÐM؏}‰}×$Ñ$Ð(BÒBÐBÑB÷     Tð    Tú÷    Tð    Tús$Á2D  DÂ.D ÄD        ÄD Ä DcóÆ—|j|«}|dz j«|dz j«d}tjt|¬«5t j t|«|«}ddd«tjj«ddhk(sJ‚|jjJ‚|jjdk(sJ‚y#1swYŒcxYw)NrËrÌzNormalizing.*LicenseRefrzLicenseRef-Proprietary) rÈrÍrrºrr rWrrZr‚r8r¦r§)rÃr`r{rµr„s     rÚ2test_both_license_and_license_files_defined_pep639zCTestLicenseFiles.test_both_license_and_license_files_defined_pep639·sʀà×6Ñ6°xÓ@ˆ    à    KÑ    ×&Ñ&Ô(Ø    KÑ    ×&Ñ&Ô(à'ˆÜ \‰\œ/°Ô 5ñ    TÜ ×4Ñ4´X¸hÓ5GÈÓSˆD÷    Tô4—=‘=×.Ñ.Ó/°KÀÐ3MÒMÐMÐM؏}‰}×$Ñ$Ð,Ð,Ð,؏}‰}×/Ñ/Ð3KÒKÐKÑK÷     Tð    Tús Á CÃC cóΗd}|j||«}d}tjt|¬«5t    j
t |«|«ddd«y#1swYyxYw)NrÊzR'project.license-files' is defined already. Remove 'tool.setuptools.license-files'r)rÈrrrr rWr)rÃr`rÎr{rµs     rÚ test_license_files_defined_twicez1TestLicenseFiles.test_license_files_defined_twiceÆs]€àKÐØ×6Ñ6°xÐARÓSˆ    àbˆÜ ]‰]Ô-°SÔ 9ñ    MÜ × -Ñ -¬h°xÓ.@À)Ô L÷    M÷    Mñ    Mús ² AÁA$cóH—d}|j||d¬«}dj«}|D]}||z j|›dd¬«Œtjt |«|«}|dz j «sJ‚t|jj«h|£d’k(sJ‚y)    Nz"[tool.setuptools]
zip-safe = falser!)rÅz5LICENCE-a.html COPYING-abc.txt AUTHORS-xyz NOTICE,defr®r4r5rv)
rÆÚsplitrVr rWrÚexistsrZr‚r8)rÃr`rÎr{r8Úfnamer„s       rÚtest_default_patternsz&TestLicenseFiles.test_default_patternsÏs¶€ØAÐà×'Ñ'¨Ð2CÐRTÐ'ÓUˆ    àO×UÑUÓWˆ à"ò    JˆEØ ˜Ñ × )Ñ )¨U¨G°2¨,ÀÐ )Õ Ið    Jô×0Ñ0´¸(Ó1CÀYÓOˆà˜=Ñ(×0Ñ0Ô2Ð2Ð2ܐ4—=‘=×.Ñ.Ó/Ð3R°]Ð3RÀMÐ3RÒRÐRÑRrcój—|j|«}t|jd««gk(sJ‚d}d}tjt
|¬«5tjt |¬«5tjt|«|«ddd«ddd«y#1swYŒxYw#1swYyxYw)Nz_FILE*z-Cannot find any files for the given pattern.*z@Normalizing 'licenseref-Proprietary' to 'LicenseRef-Proprietary'r)
rÈÚlistÚglobrrºrrr rWr)rÃr`r{r¼r½s     rÚtest_missing_patternsz&TestLicenseFiles.test_missing_patternsÞsž€Ø×6Ñ6°xÓ@ˆ    ÜH—M‘M (Ó+Ó,°Ò2Ð2Ð2à>ˆØQˆä L‰LÔ5¸TÔ Bñ    Mä L‰Lœ°Ô 5ñ    Mô × -Ñ -¬h°xÓ.@À)Ô L÷        M÷    M÷    Mñ    Mú÷    Mð    Mús$ÁB)Á, B B)ÂB&    Â"B)Â)B2có€—dtvsJ‚tjdd«}t||¬«}d}tjt
|¬«5t jt|«|«}ddd«jjdk(sJ‚t|jj«dhk(sJ‚y#1swYŒJxYw)    z?Make sure the old example with ``license = {text = ...}`` workszlicense-files = ["LICENSE.txt"]z license = {file = "LICENSE.txt"}rœr¹rNrwrv) ÚPEP621_EXAMPLErGr€rrºrr rWrr‚r¦rZr8)rÃr`r|r{rµr„s      rÚ$test_deprecated_file_expands_to_textz5TestLicenseFiles.test_deprecated_file_expands_to_textês´€ð1´NÑBÐBÐBÜ×%Ñ%Ø -Ø .ó
ˆô,¨HÀTÔJˆ    à?ˆÜ \‰\Ô6¸cÔ Bñ    TÜ ×4Ñ4´X¸hÓ5GÈÓSˆD÷    Tð}‰}×$Ñ$Ð(>Ò>Ð>Ð>ܐ4—=‘=×.Ñ.Ó/°M°?ÒBÐBÑB÷        Tð    Tús Á  B4Â4B=N)r!z!license = {file = "LICENSE.txt"}
©r!) Ú__name__Ú
__module__Ú __qualname__rÆrÈrÏrÑrÓrØrÜrß©rrrÀrÀ€s8„ðØ9ó    ó0
òCò, LòMò Sò
MóCrrÀcó¢—eZdZd„Zej
j dddg«d„«Zej
j dgd¢«d„«Zy)    Ú TestPyModulescóš—d|›d}td«}|jt|«d¬«tjt i«|«S)Nzr
        [project]
        name = "test"
        version = "42.0"
        [tool.setuptools]
        py-modules = [z
]
        r3r4r5)rrVrr rWr)rÃÚnamerdr{s    rr„zTestPyModules.distÿsW€ðð
hð    ð  ˆ ôÐ)Ó*ˆ    Ø×ÑœX kÓ2¸WÐÔEÜ×0Ñ0´¸bÓ1AÀ9ÓMÐMrÚmodulezpip-runuabc-d.λ-xyz-ecód—|j|«||j|«jvsJ‚yrˆ)Úchdirr„Ú
py_modules©rÃr`r_rés    rÚtest_valid_module_namez$TestPyModules.test_valid_module_name s-€à×ј(Ô#ؘŸ™ 6Ó*×5Ñ5Ñ5Ð5Ñ5r)zpip runz-pip-runz pip-run-stubscó¼—|j|«tjtd¬«5|j    |«j
ddd«y#1swYyxYw)Nz
py-modulesr)rërrr‘r„rìrís    rÚtest_invalid_module_namez&TestPyModules.test_invalid_module_namesE€à×ј(Ô#Ü ]‰]œ:¨\Ô :ñ    )Ø I‰IfÓ × (Ò (÷    )÷    )ñ    )ús ­AÁAN)    rárârãr„rÚmarkÚ parametrizerîrðrärrræræüs[„ò
Nð ‡[[×јX¨    Ð3CÐ'DÓEñ6óFð6ð ‡[[×јXÒ'OÓPñ)óQñ)rræcó—eZdZd„Zy)ÚTestExtModulescóè—|j|«td«}d}|jt|«d¬«t    j
t j«5t jti«|«}ddd«tj«dk(sJ‚|jdjdk(sJ‚t|jdj«dd    hk(sJ‚y#1swYŒkxYw)
Nr3zÄ
        [project]
        name = "test"
        version = "42.0"
        [tool.setuptools]
        ext-modules = [
          {name = "my.ext", sources = ["hello.c", "world.c"]}
        ]
        r4r5rrzmy.extzhello.czworld.c)rërrVrrrºr Ú_ExperimentalConfigurationrWrÚlenÚ ext_modulesrèrZÚsources)rÃr`r_r{rdr„s      rÚtest_pyproject_sets_attributez,TestExtModules.test_pyproject_sets_attributes߀Ø×ј(Ô#ÜÐ)Ó*ˆ    ð ˆ ð    ×ÑœX kÓ2¸WÐÔEÜ \‰\œ-×BÑBÓ Cñ    RÜ ×4Ñ4´\À"Ó5EÀyÓQˆD÷    Rä4×#Ñ#Ó$¨Ò)Ð)Ð)Ø×Ñ Ñ"×'Ñ'¨8Ò3Ð3Ð3ܐ4×#Ñ# AÑ&×.Ñ.Ó/°I¸yÐ3IÒIÐIÑI÷        Rð    Rús Á C(Ã(C1N)rárârãrúrärrrôrôs„óJrrôcó—eZdZd„Zy)ÚTestDeprecatedFieldscóè—|dz }d}|jt|«d¬«tjtd¬«5t j t|«|«ddd«y#1swYyxYw)Nr3z
        [project]
        name = "myproj"
        version = "42"
        [tool.setuptools]
        namespace-packages = ["myproj.pkg"]
        r4r5znamespace-packagesr)rVrrrrr rWr)rÃr`r{Úconfigs    rÚtest_namespace_packagesz,TestDeprecatedFields.test_namespace_packages-sl€ØÐ/Ñ/ˆ    ð ˆð    ×ÑœX fÓ-¸ÐÔ@Ü ]‰]Ô-Ð5IÔ Jñ    MÜ × -Ñ -¬h°xÓ.@À)Ô L÷    M÷    Mñ    Mús ¿ A(Á(A1N)rárârãrÿrärrrürü,s„ó Mrrücó4—eZdZd!d„Zej
j ddejddej
jd«giŽdddgfd    d
d d gifd    d ddgifejdddgfdej
jd«giŽg«d„«Z    ej
j ddddgfddifdddgfdddgfg«d„«Z
d„Z d„Z d„Z ej
j dddg«ej
jd«d„««Zy )"ÚTestPresetFieldcóZ—d|›d}d|vr|dz }|dz }|j||zd¬«|S)Nz"[project]
name = 'proj'
dynamic = r®Úversionzversion = '42'
r3r4r5)rV)rÃr`ÚdynamicÚ extra_contentr¤Úfiles      rr{zTestPresetField.pyproject<sH€Ø8¸¸ À2ÐFˆØ ˜GÑ #Ø Ð)Ñ )ˆGØÐ*Ñ*ˆØ ‰˜ -Ñ/¸'ˆÔB؈ r)ÚattrÚfieldr´)r§r¦rª)r¦r¦zNot SPDXršzignore:.*license. overwrittenÚ classifierszPrivate :: ClassifierrAÚscriptsÚconsole_scriptsúfoobar=foobar:mainú gui-scriptsÚ gui_scriptszbazquux=bazquux:mainr^Ú dependenciesÚsixz&ignore:.*install_requires. overwrittencóP—|j|g«}t|fi||i¤Ž}tjd|›tj«}t j t|¬«5tj||«}ddd«td|›|«|«}|rJ‚y#1swYŒ#xYw)z:Setuptools cannot set a field if not listed in ``dynamic``z&defined outside of `pyproject.toml`:.*rNú    metadata.) r{rr$ÚcompileÚSrrºrr rWr)    rÃr`rrr´r{r„rµÚ
dist_values             rÚtest_not_listed_in_dynamicz*TestPresetField.test_not_listed_in_dynamicDs¤€ð*—N‘N 8¨RÓ0ˆ    Ü˜Ñ2 T¨5 MÑ2ˆÜj‰jÐAÀ%ÀÐIÌ2Ï4É4ÓPˆÜ \‰\œ/°Ô 5ñ    FÜ ×4Ñ4°T¸9ÓEˆD÷    Fð@Ô%¨    °$°Ð&8¸$Ó?ÀÓEˆ
ÙЈ~:÷        Fð    Fús Á#BÂB%rRzoptional-dependenciescóª—|j||g«}t|fi||i¤Ž}tj||«}t    d|›|«|«}||k(sJ‚y)Nr)r{rr rWr)rÃr`rrr´r{r„rs        rÚtest_listed_in_dynamicz&TestPresetField.test_listed_in_dynamicbsd€ð—N‘N 8¨e¨WÓ5ˆ    Ü˜Ñ2 T¨5 MÑ2ˆÜ×0Ñ0°°yÓAˆØ?Ô%¨    °$°Ð&8¸$Ó?ÀÓEˆ
ؘUÒ"Ð"Ñ"rcóö—|j|«|j|g«}t|dg¬«}|dz jdd¬«t    j
||«}|j jdgk(sJ‚y)ap
        license-file is currently not considered in the context of dynamic.
        As per 2025-02-19, https://packaging.python.org/en/latest/specifications/pyproject-toml/#license-files
        allows setuptools to fill-in `license-files` the way it sees fit:
 
        > If the license-files key is not defined, tools can decide how to handle license files.
        > For example they can choose not to include any files or use their own
        > logic to discover the appropriate files in the distribution.
 
        Using license_files from setup.py to fill-in the value is in accordance
        with this rule.
        zLIC*)r8ÚLIC1Ú42r4r5N)rër{rrVr rWr‚r8)rÃr_r`r{r„s     rÚ&test_license_files_exempt_from_dynamicz6TestPresetField.test_license_files_exempt_from_dynamicsst€ð    ×ј(Ô#Ø—N‘N 8¨RÓ0ˆ    Ü˜°°Ô9ˆØ    FÑ    ×&Ñ& t°gÐ&Ô>Ü×0Ñ0°°yÓAˆØ}‰}×*Ñ*¨v¨hÒ6Ð6Ñ6rcóö—d}|dz }|j|d¬«t|dg¬«}tjd¬«5t    j
||«}ddd«d|j vsJ‚y#1swYŒxYw)    Nz:[project]
name='pkg'
version='0.1'
dependencies=['click']
r3r4r5Úwheel©r^z`install_requires` overwrittenr)rVrrrºr rWr^)rÃr`Úsrcr{r„s     rÚ%test_warning_overwritten_dependenciesz5TestPresetField.test_warning_overwritten_dependencies‡s€ØNˆØÐ/Ñ/ˆ    Ø×јS¨7ÐÔ3ܘ°G°9Ô=ˆÜ \‰\Р@Ô Añ    FÜ ×4Ñ4°T¸9ÓEˆD÷    Fà˜d×3Ñ3Ñ3Ð3Ñ3÷    Fð    Fús ¿A/Á/A8có,—d}|j|dg|«}dg}t||¬«}tj||«}d|jvsJ‚|j d«}t |||dz «|dz jd¬    «}d
|vsJ‚d |vsJ‚d |vsJ‚y )a#
        Internally setuptools converts dependencies with markers to "extras".
        If ``install_requires`` is given by ``setup.py``, we have to ensure that
        applying ``optional-dependencies`` does not overwrite the mandatory
        dependencies with markers (see #3204).
        z1
[project.optional-dependencies]
foo = ['bar>1']
rz6importlib-resources (>=3.0.0) ; python_version < "3.7"rÚfooÚegg_infoz requires.txtr4r5zimportlib-resourcesÚbarz:python_version < "3.7"N)r{rr rWrRÚget_command_objr
rT)rÃr`Úextrar{Ú install_reqr„r$Úreqss        rÚ2test_optional_dependencies_dont_remove_env_markerszBTestPresetField.test_optional_dependencies_dont_remove_env_markerssº€ðGˆØ—N‘N 8¨nÐ-=¸uÓEˆ    ØOÐPˆ ܘ°;Ô?ˆÜ×0Ñ0°°yÓAˆØ˜×+Ñ+Ñ+Ð+Ð+Ø×'Ñ'¨
Ó3ˆÜ˜8 X¨x¸.Ñ/HÔIؘ>Ñ)×4Ñ4¸gÐ4ÓFˆØ$¨Ñ,Ð,Ð,ؘ‰}Ј}Ø(¨DÑ0Ð0Ñ0r)rÚgroup)r
r )r rÚerrorcó–—|j||g«}t||dgi¬«}tj||«}||jvsJ‚y)Nr )rA)r{rr rWrA)rÃr`rr+r{r„s      rÚ.test_scripts_dont_require_dynamic_entry_pointsz>TestPresetField.test_scripts_dont_require_dynamic_entry_points¦sQ€ð—N‘N 8¨e¨WÓ5ˆ    Ü˜°Ð8LÐ7MÐ/NÔOˆÜ×0Ñ0°°yÓAˆØ˜×)Ñ)Ñ)Ð)Ñ)rNrà)rárârãr{rrñròÚparamÚfilterwarningsrrrr!r*r.rärrrr;s…„óð ‡[[×ÑØ"à 4Ø ˆFL‰LØ3ð à—{‘{×1Ñ1Ð2QÓRÐSñ ð˜MÐ,CÐ+DÐ EØ ˜YÐ):Ð=QÐ<RÐ(SÐ TØ ˜]¨]Ð=SÐ<TÐ,UÐ VØ ˆFL‰LØ$ n°u°gÐ>ð ð—K‘K×.Ñ.Ð/WÓXðñ ð    
óñ&    ó'ð&    ð ‡[[×ÑØ"à 4Ø  °Ð 4Ø Ð6¸Ð ;Ø  °%°Ð 9Ø ˜MÐ,CÐ+DÐ Eð     
ó    ñ#ó    ð#ò7ò(4ò1ð, ‡[[×ÑØØ    'Ð)GÐHóð ‡[[×Ñ Ó(ñ*ó)ó    ñ
*rrcó—eZdZd„Zy)ÚTestMetacóž—tj|«5}td„|j«D««sJ‚    ddd«y#1swYyxYw)z,Meta test to ensure tests can run from sdistc3óFK—|]}|jt«–—Œy­wrˆ)ÚendswithÚ EXAMPLES_FILE)r<rès  rr>z6TestMeta.test_example_file_in_sdist.<locals>.<genexpr>·sèø€ÒO¸t—}‘}¤]×3ÑOùs‚!N)Útarfiler rYÚgetnames)rÃÚsetuptools_sdistÚtars   rÚtest_example_file_in_sdistz#TestMeta.test_example_file_in_sdist´sD€ä \‰\Ð*Ó +ð    P¨sÜÑOÀÇ Á ÃÔOÔOÐ OÑO÷    P÷    Pñ    Pús –#AÁA N)rárârãr;rärrr2r2³s„óPrr2có—eZdZd„Zy)ÚTestInteropCommandLineParsingcó"—|j|«d}t|d«}|jt|«d¬«ddgi}t    j
t |«|«}|j«|j«}d|jvsJ‚y)NzJ
        [project]
        name = "test"
        version = "42.0"
        r3r4r5Ú script_argsz    --versionz42.0)
rërrVrr rWrÚparse_command_lineÚ
readouterrÚout)    rÃr`r_Úcapsysrdr{Úoptsr„Úcaptureds             rÚ test_versionz*TestInteropCommandLineParsing.test_version»s€ð    ×ј(Ô#ð ˆ ô
˜Ð#3Ó4ˆ    Ø×ÑœX kÓ2¸WÐÔEØ  ˜}Ð-ˆÜ×0Ñ0´¸dÓ1CÀYÓOˆØ ×ÑÔ!Ø×$Ñ$Ó&ˆØ˜Ÿ™Ñ%Ð%Ñ%rN)rárârãrFrärrr=r=ºs„ó&rr=có—eZdZd„Zy)ÚTestStaticConfigcó0—|j|«d}t|d«}|jt|«d¬«t    j
t i«|«}t|j«sJ‚t|jj«sJ‚t|jj«sJ‚t|jj«sJ‚t|jj«sJ‚t|jj«sJ‚y)Na)
        [project]
        name = "test"
        version = "42.0"
        dependencies = ["hello"]
        keywords = ["world"]
        classifiers = ["private :: hello world"]
        [tool.setuptools]
        obsoletes = ["abcd"]
        provides = ["abcd"]
        platforms = ["abcd"]
        r3r4r5)rërrVrr rWrr    r^r‚Úkeywordsr    Ú    obsoletesÚprovidesÚ    platforms)rÃr`r_rdr{r„s      rÚtest_mark_static_fieldsz(TestStaticConfig.test_mark_static_fieldsÎsá€Ø×ј(Ô#ð  ˆ ô˜Ð#3Ó4ˆ    Ø×ÑœX kÓ2¸WÐÔEÜ×0Ñ0´¸bÓ1AÀ9ÓMˆÜ˜×.Ñ.Ô/Ð/Ð/ܘŸ™×/Ñ/Ô0Ð0Ð0ܘŸ™×2Ñ2Ô3Ð3Ð3ܘŸ™×0Ñ0Ô1Ð1Ð1ܘŸ™×/Ñ/Ô0Ð0Ð0ܘŸ™×0Ñ0Ô1Ð1Ñ1rN)rárârãrNrärrrHrHÍs„ó2rrHcóÔ—tj«5}|jj|«|j    «}ddd«t j d¬«d}t«}|dz }|dz }|dz }|jd«g}|j«D],}|j|«s||vrŒ|j|dz«Œ.dj|«S#1swYŒžxYw)    NT)Úvalidaterä)zAuthor:z Author-email:z Maintainer:zMaintainer-email:)zProject-URL: Homepage,z
Home-page:)zDescription-Content-Type:r!r®) ÚioÚStringIOr‚r¡ÚgetvaluerÚ
from_emailrZÚaddÚ
splitlinesÚ
startswithÚappendÚjoin)r„ÚbufferÚ pkg_file_txtÚ skip_prefixesÚ
skip_linesÚresultÚlines       rrXrXêsà€Ü     ‰‹ð)˜&Ø  ‰ ×$Ñ$ VÔ,Ø—‘Ó(ˆ ÷)ô
 ×ј ¨tÕ4à%'€MÜ“€JðÐUÑU€MàÐ=Ñ=€MàÐ3Ñ3€Mà‡NN2Ôà €FØ×'Ñ'Ó)ò#ˆØ ?‰?˜=Ô )¨T°ZÑ-?Ø Ø ‰ d˜T‘kÕ"ð#ð
7‰76‹?Ð÷3)ð)ús •,CÃC')Úreturnr³)LÚ__doc__Ú
__future__rrQr$r7ÚinspectrÚpathlibrÚ unittest.mockrrÚ ini2toml.apirÚpackaging.metadatarÚ
setuptoolsÚsetuptools._staticr    Úsetuptools.command.egg_infor
Úsetuptools.configr r r Ú&setuptools.config._apply_pyprojecttomlrrÚsetuptools.distrÚsetuptools.errorsrrÚsetuptools.warningsrrÚ    downloadsrrÚ__file__ÚparentÚHEREr6rr+rñròr0Ú uses_networkrsrÞÚ"PEP621_INTERNATIONAL_EMAIL_EXAMPLErxÚPEP639_LICENSE_TEXTr±r€r…r‹r’r•r/Úxfailr¥r¬r·r¾rÀrærôrürr2r=rHrXrärrú<module>rxs³ðñõ #ã    Û    ÛÝÝÝã Ý'Ý'ãÝ(Ý:ß=Ñ=ßTÝ(ßDßMç4á ˆHƒ~×Ñ€Ø'€ ò5òRð‡×ј¡¨t°mÑ/CÓ DÓE؇×јHÓ%؇×Ññ//óó&óFð//ðd2€ðh &Ð"ðÐð     Ðð Ðð$ Ø!óò$?ð‡×ÑØòóñ@óð@ò Iò ?𠇁×ÑØ9àˆ ‰ Ø ð3ð*ô     
ð    ˆ ‰ Ø .Ø OØ—+‘+×#Ñ#ðHàð$óð
%ô        
ðóñ.Mó/ð.Mð&‡×Ñðð    ˆ ‰ Ø Ø Ø Ø Ø "Øà— ‘ ×*Ñ*ØLóðô     
ð    ˆ ‰ Ø %Ø Ø Ø 3Ø Ø#ô     
ðóñ@*óAð@*ò2 FòY÷,yCñyC÷x)ñ)÷6JñJ÷* Mñ M÷u*ñu*÷pPñP÷&ñ&÷&2ñ2ô:r