hyb
2025-12-30 399ffc4d9829f70529d3b096fe4228f7496cc566
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
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
Ë
Añúh    ‚ã
óЗddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    m
Z
ddl m Z ddl mZmZddlmZddlZddlmZddlmZddlmZd    d
lmZd Zeej:d d ««Zdej>vZ ejBjEejFdk(xre d¬«Z$Gd„d«Z%Gd„de%«Z&Gd„de%«Z'ed«ed«dœed«ed«dœed«ed«dœded«ied«ed «d!œed«d ed «d"œgZ(Gd#„d$«Z)Gd%„d&e)«Z*ejBjWd'«d(„«Z,d)„Z-y)*éN)Úfutures)ÚPath)ÚAnyÚCallable)ÚZipFile)Úpath)Ú Requirement)ÚSetuptoolsDeprecationWarningé)ÚDALSz __import__('setuptools').setup()ÚTIMEOUT_BACKEND_TESTÚ180Ú__pypy__Úwin32z_The combination of PyPy + Windows + pytest-xdist + ProcessPoolExecutor is flaky and problematic)Úreasoncó—eZdZdd„Zy)ÚBuildBackendBaseNcó6—||_|xsi|_||_y)N)ÚcwdÚenvÚ backend_name)Úselfrrrs    úSH:\Change_password\venv_build\Lib\site-packages\setuptools/tests/test_build_meta.pyÚ__init__zBuildBackendBase.__init__&s€ØˆŒØ’9˜"ˆŒØ(ˆÕó)ú.Núsetuptools.build_meta)Ú__name__Ú
__module__Ú __qualname__r©rrrr%s„ô)rrcóB‡—eZdZdZˆfd„Zdededeffd„Zd„Z    ˆxZ
S)Ú BuildBackendzPEP 517 Build BackendcóZ•—t‰||i|¤Žtjd¬«|_y)Nr )Ú max_workers)ÚsuperrrÚProcessPoolExecutorÚpool)rÚargsÚkwargsÚ    __class__s   €rrzBuildBackend.__init__/s'ø€Ü ‰Ñ˜$Ð) &Ò)Ü×/Ñ/¸AÔ>ˆ    rÚnameÚreturn.c󇇗ˆˆfd„}|S)ú<Handles arbitrary function invocations on the build backend.cóÊ•—tjj‰j«}t    |‰j
‰j «}d}    ‰jjtj«jt«}‰jj|‰g|¢­i|¤Žjt«S#tj$rM‰jjd¬«‰j|«t!j"dt›d«Yytj$j&t(t*f$rt,rt!j"d«‚wxYw)NF)Úwaitz(Backend did not respond before timeout (z s)z3PyPy frequently fails tests with ProcessPoolExector)ÚosrÚabspathrÚBuildBackendCallerrrr(ÚsubmitÚgetpidÚresultÚTIMEOUTrÚ TimeoutErrorÚshutdownÚ_killÚpytestÚxfailÚprocessÚBrokenProcessPoolÚ MemoryErrorÚOSErrorÚIS_PYPY)r)ÚkwÚrootÚcallerÚpidr,rs     €€rÚmethodz(BuildBackend.__getattr__.<locals>.method6sø€Ü—7‘7—?‘? 4§8¡8Ó,ˆDÜ'¨¨d¯h©h¸×8IÑ8IÓJˆF؈Cð
Ø—i‘i×&Ñ&¤r§y¡yÓ1×8Ñ8¼ÓAØ't—y‘y×'Ñ'¨°ÐB°tÒB¸rÑB×IÑIÌ'ÓRÐRøÜ×'Ñ'ò VØ—    ‘    ×"Ñ"¨Ð"Ô.Ø—
‘
˜3”Ü— ‘ ÐGÌÀyÐPSÐTÖUÜ—O‘O×5Ñ5´{ÄGÐLò ÝÜ—L‘LÐ!VÔWØð úsÁA/B?Â?AE"ÄAE"r!)rr,rGs`` rÚ __getattr__zBuildBackend.__getattr__3sù€õ    ð ˆ rcóþ—|€ytjtt«5t    j
|tj dk(rtjntj«ddd«y#1swYyxYw)NÚnt)
Ú
contextlibÚsuppressÚProcessLookupErrorrAr2Úkillr,ÚsignalÚSIGTERMÚSIGKILL)rrFs  rr;zBuildBackend._killHsV€Ø ˆ;Ø Ü ×  Ñ  Ô!3´WÓ =ñ    PÜ G‰GC¬2¯7©7°dª?œŸšÄÇÁÔ O÷    P÷    Pñ    Pús ¢AA3Á3A<) rrr Ú__doc__rÚstrrrrHr;Ú __classcell__©r+s@rr#r#,s-ø„Ùô?ð ð¨°°c°Ñ(:óö*Prr#có$‡—eZdZˆfd„Zd„ZˆxZS)r4cóv•—t‰||i|¤Ž|jjd«\|_}|_y)Nú:)r&rrÚ    partitionÚ backend_obj)rr)r*Ú_r+s    €rrzBuildBackendCaller.__init__Ps8ø€Ü ‰Ñ˜$Ð) &Ò)à37×3DÑ3D×3NÑ3NÈsÓ3SÑ0ˆÔ    ˜A˜tÕ/rcó>—tj|j«tjj    |j
«t j|j«}|jrt||j«}n|}t||«|i|¤ŽS)r/) r2ÚchdirrÚenvironÚupdaterÚ    importlibÚ import_modulerrZÚgetattr)rr,r)rCÚmodÚbackends      rÚ__call__zBuildBackendCaller.__call__Usw€ä
‰—‘ÔÜ

‰
×ј$Ÿ(™(Ô#Ü×%Ñ% d×&7Ñ&7Ó8ˆà × Ò Ü˜c 4×#3Ñ#3Ó4‰GàˆGà%Œww Ó% tÐ2¨rÑ2Ð2r)rrr rrerTrUs@rr4r4Osø„ôTö
3rr4zÒ
            __import__('setuptools').setup(
                name='foo',
                version='0.0.0',
                py_modules=['hello'],
                setup_requires=['six'],
            )
            úC
            def run():
                print('hello')
            ©úsetup.pyúhello.pyzü
            assert __name__ == '__main__'
            __import__('setuptools').setup(
                name='foo',
                version='0.0.0',
                py_modules=['hello'],
                setup_requires=['six'],
            )
            aF
            variable = True
            def function():
                return variable
            assert variable
            __import__('setuptools').setup(
                name='foo',
                version='0.0.0',
                py_modules=['hello'],
                setup_requires=['six'],
            )
            rhaƒ
            # Some packages construct files on the fly, include them in the package,
            # and immediately remove them after `setup()` (e.g. pybind11==2.9.1).
            # Therefore, we cannot use `distutils.core.run_setup(..., stop_after=...)`
            # to obtain a distribution object first, and then run the distutils
            # commands later, because these files will be removed in the meantime.
 
            with open('world.py', 'w', encoding="utf-8") as f:
                f.write('x = 42')
 
            try:
                __import__('setuptools').setup(
                    name='foo',
                    version='0.0.0',
                    py_modules=['world'],
                    setup_requires=['six'],
                )
            finally:
                # Some packages will clean temporary files
                __import__('os').unlink('world.py')
            zŽ
        [metadata]
        name = foo
        version = 0.0.0
 
        [options]
        py_modules=hello
        setup_requires=six
        z7
        def run():
            print('hello')
        )ú    setup.cfgri)rjrhricó0—eZdZdZd„Zej e¬«d„«Zd„Z    d„Z
d„Z ejjdd    «d
„«Zejjd d eg«d „«Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zed«ded«dœZd„Zed«ddd iid!œZd"„Zd#„Z d$„Z!ejjd%d&d'ig«d(„«Z"ejjd)d*d+gfd,d+gfd-d+gfd.d+gfd/d+d0gfd1d+gfd2d+gfd3d4gfd5d+d0gfd6d+d0gfd7d+d0gfg «ejjd8d9d:g«d;„««Z#d<„Z$d=„Z%d>ed?«iZ&d@„Z'd>edA«iZ(dB„Z)ejjdCdD«dE„«Z*y )FÚTestBuildMetaBackendrcó.—t|j¬«S)N©r)r#r)rs rÚget_build_backendz&TestBuildMetaBackend.get_build_backendås€Ü¨×):Ñ):Ô;Ð;r)Úparamsc#óÎK—tj|jt|«¬«|j    «5|j «–—ddd«y#1swYyxYw­w)N)Úprefix)rÚbuildÚparamrSÚas_cwdro)rÚtmpdirÚrequests   rÚ build_backendz"TestBuildMetaBackend.build_backendèsHèø€ä 
‰
7—=‘=¬¨V«Õ5Ø ]‰]‹_ñ    +Ø×(Ñ(Ó*Ò *÷    +÷    +ñ    +üs‚;A%½AÁ    A%ÁA"ÁA%có\—|j«}dg}t|«t|«k(sJ‚y©NÚsix)Úget_requires_for_build_wheelÚsorted©rrxÚactualÚexpecteds    rÚ!test_get_requires_for_build_wheelz6TestBuildMetaBackend.test_get_requires_for_build_wheelîó.€Ø×;Ñ;Ó=ˆØ7ˆÜf‹~¤¨Ó!1Ò1Ð1Ñ1rcó\—|j«}dg}t|«t|«k(sJ‚yrz)Úget_requires_for_build_sdistr}r~s    rÚ!test_get_requires_for_build_sdistz6TestBuildMetaBackend.test_get_requires_for_build_sdistór‚rcóB—tjjd«}tj|«|j    |«}tjj ||«}tjj |«sJ‚tjj d«rJ‚t|«5}t|j««}ddd«d„D«}|Dcgc]}|jd«rŒ|‘Œ}    }t|    «dk(sJ‚y#1swYŒDxYwcc}w)Nz    pip-wheelúworld.pyc3óDK—|]}|jd«sŒ|–—Œy­w)z.pyN)Úendswith)Ú.0Úfs  rú    <genexpr>z8TestBuildMetaBackend.test_build_wheel.<locals>.<genexpr>sèø€ÒI °q·z±zÀ%Õ7Hœ!ÑIùs‚ ™ rhr ) r2rr3ÚmakedirsÚ build_wheelÚjoinÚisfilerÚsetÚnamelistr‰Úlen)
rrxÚdist_dirÚ
wheel_nameÚ
wheel_fileÚzipfileÚwheel_contentsÚpython_scriptsr‹Úmoduless
          rÚtest_build_wheelz%TestBuildMetaBackend.test_build_wheeløsæ€Ü—7‘7—?‘? ;Ó/ˆÜ
 ‰ HÔØ"×.Ñ.¨xÓ8ˆ
ä—W‘W—\‘\ (¨JÓ7ˆ
܏w‰w~‰~˜jÔ)Ð)Ð)ô—7‘7—>‘> *Ô-Ð-Ð-ä ZÓ  ð    5 GÜ  ×!1Ñ!1Ó!3Ó4ˆN÷    5ñ
J ^ÔIˆØ,ÖK˜°A·J±J¸zÕ4J’1ÐKˆÐKܐ7‹|˜qҠРѠ÷    5ð    5üò LsÂ3DÃ"DÃ9DÄDÚ
build_type)ÚwheelÚsdistcó—ddtd«td«dœ}tj|«tjj    d|z«}|j «}t |d|z«}||«}tdd    d
¬ «5}|jd «ddd«||«}    tjjtjj||««sJ‚||    k7sJ‚ttjj||    «d «j«||«}
|
|    k(sJ‚tjjtjj||
««dkDsJ‚y#1swYŒáxYw)Nz$from setuptools import setup
setup()z0.0.1zo
                [metadata]
                name = foo
                version = file: VERSION
                ú›
                [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"
                )rhÚVERSIONrjúpyproject.tomlz preexisting-Úbuild_r¡Úwtúutf-8©Úencodingz0.0.2Úwbr) r rrsr2r3rorbÚopenÚwriterrÚcloseÚgetsize) rrœÚ
tmpdir_cwdÚfilesr”rxÚ build_methodÚ first_resultÚ version_fileÚ second_resultÚ third_results            rÚ%test_build_with_existing_file_presentz:TestBuildMetaBackend.test_build_with_existing_file_present sV€ð
@ØÜðóô#ðóñ
ˆô&     
‰
5Ôä—7‘7—?‘? >°JÑ#>Ó?ˆà×.Ñ.Ó0ˆ ܘ}¨h¸Ñ.CÓDˆ ñ
$ HÓ-ˆ ô)˜T¨GÔ 4ð    (¸ Ø × Ñ ˜wÔ '÷    (ñ% XÓ.ˆ äw‰w~‰~œbŸg™gŸl™l¨8°\ÓBÔCÐCÐCؘ}Ò,Ð,Ð,ô     ŒRW‰W\‰\˜( MÓ 2°DÓ9×?Ñ?ÔAÙ# HÓ-ˆ ؘ}Ò,Ð,Ð,܏w‰w‰œrŸw™wŸ|™|¨H°lÓCÓDÀqÒHÐHÑH÷    (ð    (ús ÂE8Å8FÚ setup_scriptNc ó—td«td«dddddddd    d
œid œ}|r||d <|j«}|j«5tj|«d dg}t j «5|D]}t jd|t«Œ|jd«}|jd«}ddd«ddd«tjtjj|d««5}    t|    j!««}
ddd«t#tjj|d««5} t| j%««} t'| j)d«d«} t'| j)d«d«}t'| j)d«d«}ddd«
dhz
hd£k(sJ‚ hd£k(sJ‚dk(sJ‚ddddddt't+d««zdt't+d««zfD]}| vrŒJ|| f«‚ j-«j/d«sJ‚j-«d k(sJ‚y#1swYŒžxYw#1swYŒ£xYw#1swYŒZxYw#1swYŒÉxYw)!Naj
                [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"
 
                [project]
                name = "foo"
                license = {text = "MIT"}
                description = "This is a Python package"
                dynamic = ["version", "readme"]
                classifiers = [
                    "Development Status :: 5 - Production/Stable",
                    "Intended Audience :: Developers"
                ]
                urls = {Homepage = "http://github.com"}
                dependencies = [
                    "appdirs",
                ]
 
                [project.optional-dependencies]
                all = [
                    "tomli>=1",
                    "pyscaffold>=4,<5",
                    'importlib; python_version == "2.6"',
                ]
 
                [project.scripts]
                foo = "foo.cli:main"
 
                [tool.setuptools]
                zip-safe = false
                package-dir = {"" = "src"}
                packages = {find = {where = ["src"]}}
                license-files = ["LICENSE*"]
 
                [tool.setuptools.dynamic]
                version = {attr = "foo.__version__"}
                readme = {file = "README.rst"}
 
                [tool.distutils.sdist]
                formats = "gztar"
                zd
                global-include *.py *.txt
                global-exclude *.py[cod]
                zThis is a ``README``z!---- placeholder MIT license ----Úfooz__version__ = '0.1'z__version__: strz def main(): print('hello world')Ú)ú __init__.pyz __init__.pyizcli.pyzdata.txtzpy.typed)r¢ú MANIFEST.inz
README.rstz LICENSE.txtÚsrcrhzQ'tool.setuptools.license-files' is deprecated in favor of 'project.license-files'z/`project.license` as a TOML table is deprecatedÚignoreÚtempúfoo-0.1.dist-info/METADATAr¥ú&foo-0.1.dist-info/licenses/LICENSE.txtú"foo-0.1.dist-info/entry_points.txtzfoo-0.1/setup.py>úfoo-0.1ú foo-0.1/srcúfoo-0.1/src/fooúfoo-0.1/PKG-INFOúfoo-0.1/setup.cfgúfoo-0.1/README.rstúfoo-0.1/LICENSE.txtúfoo-0.1/MANIFEST.inúfoo-0.1/pyproject.tomlúfoo-0.1/src/foo/cli.pyúfoo-0.1/src/foo.egg-infoúfoo-0.1/src/foo/data.txtúfoo-0.1/src/foo/py.typedúfoo-0.1/src/foo/__init__.pyúfoo-0.1/src/foo/__init__.pyiú!foo-0.1/src/foo.egg-info/PKG-INFOú$foo-0.1/src/foo.egg-info/SOURCES.txtú%foo-0.1/src/foo.egg-info/not-zip-safeú%foo-0.1/src/foo.egg-info/requires.txtú&foo-0.1/src/foo.egg-info/top_level.txtú)foo-0.1/src/foo.egg-info/entry_points.txtú-foo-0.1/src/foo.egg-info/dependency_links.txt> ú
foo/cli.pyú foo/data.txtú foo/py.typedúfoo/__init__.pyúfoo/__init__.pyiúfoo-0.1.dist-info/WHEELúfoo-0.1.dist-info/RECORDúfoo-0.1.dist-info/top_level.txtr¾rÀr¿z!Summary: This is a Python packagez License: MITzLicense-File: LICENSE.txtz+Classifier: Intended Audience :: DeveloperszRequires-Dist: appdirszRequires-Dist: ztomli>=1 ; extra == "all"z2importlib; python_version=="2.6" and extra =="all"z$[console_scripts]
foo = foo.cli:main)r rorurrsÚwarningsÚcatch_warningsÚfilterwarningsr
Ú build_sdistrŽÚtarfiler©r2rr‘Úgetnamesrr’rSÚreadr    Ústripr‰)rrvrµr®rxÚmsgsÚmsgÚ
sdist_pathr–ÚtarÚsdist_contentsr—r˜ÚmetadataÚlicenseÚepointsÚlines                 rÚ test_build_with_pyproject_configz5TestBuildMetaBackend.test_build_with_pyproject_config?sÅ€ô#ð)ó+ôX ðóð 1Ø>àØ#8Ø$6Ø@Ø BØ "ñ ðñk>
ˆñ~ Ø ,ˆE*Ñ à×.Ñ.Ó0ˆ Ø ]‰]‹_ñ
    ?Ü J‰JuÔ àcØAðˆDô×(Ñ(Ó*ñ ?ØòYCÜ×+Ñ+¨H°cÔ;WÕXðYà*×6Ñ6°vÓ>
Ø*×6Ñ6°vÓ>
÷     ?÷
    ?ô\‰\œ"Ÿ'™'Ÿ,™, v¨v°zÓBÓ Cð    1ÀsÜ  §¡£Ó0ˆN÷    1ô”R—W‘W—\‘\ &¨&°*Ó=Ó >ð    WÀ'Ü  ×!1Ñ!1Ó!3Ó4ˆNܘ7Ÿ<™<Ð(DÓEÀwÓOˆHÜØ— ‘ ÐEÓFÈóˆGô˜'Ÿ,™,Ð'KÓLÈgÓVˆG÷     WðÐ!3Р4Ñ4ò9
ò
ð    
ð
ð0ò "
ò 
ð     
ð 
ðÐ=Ò=Ð=Ð=ð 0Ø Ø 'Ø 9Ø $Ø ¤¤KÐ0KÓ$LÓ MÑ MØ Ü”+ÐRÓSÓTñ Uð    
ò
    6ˆDð˜8Ò#Ð 5 d¨HÐ%5Ó 5Ð#ð
    6ð~‰~Ó×(Ñ(Ð)?Ô@Ð@Ð@؏}‰}‹Ð"IÒIÐIÑI÷K ?ñ ?ú÷
    ?ñ
    ?ú÷    1ñ    1ú÷    Wð    Wús>Á
.I&Á8AIÂ=I&ÄI3Å A+JÉI#    ÉI&É&I0É3I=ÊJ    cóª—td«td«td«dœ}|j«}|j«5tj|«|j d«}|j d«}ddd«|dz j«sJ‚|dz j«sJ‚|dz j«rJ‚|d    z j«rJ‚|d
z j«rJ‚|d z j«rJ‚|d z j«rJ‚|d z j«rJ‚tjtjj|d««5}t|jd«j«d«}|j«}d|vsJ‚    ddd«t!tjj|d««5}    t|    jd«d«}
|    j#«}d|vsJ‚    ddd«
fD]} dD]} | | vrŒJ‚dD]} | | vrŒJ‚Œy#1swYŒ¸xYw#1swYŒŸxYw#1swYŒFxYw)NaR
                [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"
 
                [project]
                name = "foo"
                description = "This is a Python package"
                version = "42"
                dependencies = ["six"]
                zO
                def run():
                    print('hello')
                z•
                __import__('setuptools').setup(
                    name='bar',
                    version='13',
                )
                )r¢rirhr½ztemp/foo-42.tar.gzztemp/foo-42-py3-none-any.whlztemp/bar-13.tar.gzztemp/bar-42.tar.gzztemp/foo-13.tar.gzztemp/bar-13-py3-none-any.whlztemp/bar-42-py3-none-any.whlztemp/foo-13-py3-none-any.whlzfoo-42/PKG-INFOr¥zbar-13/PKG-INFOzfoo-42.dist-info/METADATAzbar-13.dist-info/METADATA)z    Name: fooz Version: 42)z    Name: barz Version: 13)r rorurrsrârŽÚexistsrãr©r2rrSÚ extractfilerårärr’) rrvr®rxrér–rêÚpkg_infoÚmembersr—rìÚfilerïs              rÚ(test_static_metadata_in_pyproject_configz=TestBuildMetaBackend.test_static_metadata_in_pyproject_configÑsp€ô#ð
ó ôðóô ðóñ)
ˆð:×.Ñ.Ó0ˆ Ø ]‰]‹_ñ    ;Ü J‰JuÔ Ø&×2Ñ2°6Ó:ˆJØ&×2Ñ2°6Ó:ˆJ÷    ;ð
Ð-Ñ-×5Ñ5Ô7Ð7Ð7ØÐ7Ñ7×?Ñ?ÔAÐAÐAØÐ1Ñ1×9Ñ9Ô;Ð;Ð;ØÐ1Ñ1×9Ñ9Ô;Ð;Ð;ØÐ1Ñ1×9Ñ9Ô;Ð;Ð;ØÐ;Ñ;×CÑCÔEÐEÐEØÐ;Ñ;×CÑCÔEÐEÐEØÐ;Ñ;×CÑCÔEÐEÐEä \‰\œ"Ÿ'™'Ÿ,™, v¨v°zÓBÓ Cð    4Àsܘ3Ÿ?™?Ð+<Ó=×BÑBÓDÀgÓNˆHØ—l‘l“nˆGØ$¨GÑ3Ð 3Ñ3÷    4ô
”R—W‘W—\‘\ &¨&°*Ó=Ó >ð    >À'ܘ7Ÿ<™<Ð(CÓDÀgÓNˆHØ×&Ñ&Ó(ˆGØ.°gÑ=Ð =Ñ=÷    >ð
˜hÐ&ò    (ˆDØ4ò $Ø˜t’|Ð#|ð $à4ò (Ø 4Ò'Ð'Ð'ñ (ñ    (÷1    ;ñ    ;ú÷    4ð    4ú÷
    >ð    >ús%Á8H0ÅAH=Ç2I    È0H:È=IÉ    Icó —tjjd«}tj|«|j    |«}tjj tjj ||««sJ‚y)Nz    pip-sdist)r2rr3rrârr©rrxr”Ú
sdist_names    rÚtest_build_sdistz%TestBuildMetaBackend.test_build_sdistsU€Ü—7‘7—?‘? ;Ó/ˆÜ
 ‰ HÔØ"×.Ñ.¨xÓ8ˆ
äw‰w~‰~œbŸg™gŸl™l¨8°ZÓ@ÔAÐAÑArcó—tjjd«}tj|«|j    |«}tjj tjj ||d««sJ‚y)Nú pip-dist-infoÚMETADATA)r2rr3rÚ prepare_metadata_for_build_wheelrr)rrxr”Ú    dist_infos    rÚ%test_prepare_metadata_for_build_wheelz:TestBuildMetaBackend.test_prepare_metadata_for_build_wheelsW€Ü—7‘7—?‘? ?Ó3ˆÜ
 ‰ HÔà!×BÑBÀ8ÓLˆ    äw‰w~‰~œbŸg™gŸl™l¨8°YÀ
ÓKÔLÐLÑLrcóà—dD]}tj|d¬«Œ|jd«}tjj    tjj |d««sJ‚y)zy
        Some users might pass metadata_directory pre-populated with `.tox` or `.venv`.
        See issue #3523.
        )z?.tox/python/lib/python3.10/site-packages/attrs-22.1.0.dist-infozD.tox/python/lib/python3.10/site-packages/autocommand-2.2.1.dist-infoz>.nox/python/lib/python3.10/site-packages/build-0.8.0.dist-infoz4.venv/python3.10/site-packages/click-8.1.3.dist-infoz5venv/python3.10/site-packages/distlib-0.3.5.dist-infoz4env/python3.10/site-packages/docutils-0.19.dist-infoT)Úexist_okrrþN)r2rrÿrrr)rrxÚ pre_existingrs    rÚtest_prepare_metadata_inplacez2TestBuildMetaBackend.test_prepare_metadata_inplacesZ€ð
 
ò    5ˆLô K‰K˜ ¨tÖ 4ð    5ð"×BÑBÀ3ÓGˆ    Üw‰w~‰~œbŸg™gŸl™l¨9°jÓAÔBÐBÑBrcóâ—tjjd«}|j|«}tjj    tjj ||««sJ‚y)NÚdist)r2rr3rârrrùs    rÚtest_build_sdist_explicit_distz3TestBuildMetaBackend.test_build_sdist_explicit_dist0sK€ô—7‘7—?‘? 6Ó*ˆØ"×.Ñ.¨xÓ8ˆ
܏w‰w~‰~œbŸg™gŸl™l¨8°ZÓ@ÔAÐAÑArcóâ—tjjd«}tj|«|j    |«}tjj tjj ||««sJ‚tjjd«}tjj|«stjjd«}t|dd¬«5}|j«}ddd«t|dd¬«5}|jjdd    ««ddd«tj|«tj|«|j    d«}tjj tjj tjjd«|««sJ‚y#1swYŒÙxYw#1swYŒ­xYw)
NÚ    out_sdistrhrjÚrtr¥r¦r¤zversion='0.0.0'zversion='0.0.1')r2rr3rrârrròr©rårªÚreplaceÚshutilÚrmtree)rrxÚsdist_into_directoryrúÚ    setup_locÚ file_handlerÚcontents       rÚtest_build_sdist_version_changez4TestBuildMetaBackend.test_build_sdist_version_change7s`€Ü!Ÿw™wŸ™¨{Ó;ÐÜ
 ‰ Ð(Ô)à"×.Ñ.Ð/CÓDˆ
܏w‰w~‰~œbŸg™gŸl™lÐ+?ÀÓLÔMÐMÐMô
—G‘G—O‘O JÓ/ˆ    Üw‰w~‰~˜iÔ(ÜŸ™Ÿ™¨ Ó4ˆIä )˜T¨GÔ 4ð    *¸ Ø"×'Ñ'Ó)ˆG÷    *ä )˜T¨GÔ 4ð    V¸ Ø × Ñ ˜wŸ™Ð/@ÐBSÓTÔ U÷    Vô     ‰ Ð*Ô+Ü
 ‰ Ð(Ô)à"×.Ñ.¨{Ó;ˆ
܏w‰w~‰~œbŸg™gŸl™l¬2¯7©7¯?©?¸;Ó+GÈÓTÔUÐUÑU÷    *ð    *ú÷    Vð    VúsÃ0GÄ"G%ÇG"Ç%G.cóv—td«dtd«dœ}tj|«|j«}|j    d«}t j tjjd|««5}td„|j«D««sJ‚    ddd«y#1swYyxYw)Nú°
                __import__('setuptools').setup(
                    name='foo',
                    version='0.0.0',
                    py_modules=['hello']
                )r¸r )rhrir¢r½c3ó$K—|]}d|v–—Œ
y­w)r¢Nr!©rŠr,s  rrŒzNTestBuildMetaBackend.test_build_sdist_pyproject_toml_exists.<locals>.<genexpr>gsèø€ÒK°DÐ'¨4Ô/ÑKùó‚© r rrsrorârãr©r2rÚanyrä©rr­r®rxÚ
targz_pathrês      rÚ&test_build_sdist_pyproject_toml_existsz;TestBuildMetaBackend.test_build_sdist_pyproject_toml_existsPs¤€äðóðÜ"ðóñ
ˆô$     
‰
5ÔØ×.Ñ.Ó0ˆ Ø"×.Ñ.¨vÓ6ˆ
Ü \‰\œ"Ÿ'™'Ÿ,™, v¨zÓ:Ó ;ð    L¸sÜÑK¸C¿L¹L»NÔKÔKÐ KÑK÷    L÷    Lñ    Lúó Â#B/Â/B8cóT—tjtd«|j«}|j    d«}t j tjjd|««5}td„|j«D««sJ‚    ddd«y#1swYyxYw)Nrr½c3ó$K—|]}d|v–—Œ
y­w©rhNr!rs  rrŒzHTestBuildMetaBackend.test_build_sdist_setup_py_exists.<locals>.<genexpr>qsèø€ÒE¨dz TÔ)ÑEùr) rrsÚdefnsrorârãr©r2rrrä)rr­rxrrês     rÚ test_build_sdist_setup_py_existsz5TestBuildMetaBackend.test_build_sdist_setup_py_existsis‚€ô     
‰
”5˜‘8Ôà×.Ñ.Ó0ˆ Ø"×.Ñ.¨vÓ6ˆ
Ü \‰\œ"Ÿ'™'Ÿ,™, v¨zÓ:Ó ;ð    F¸sÜÑE°c·l±l³nÔEÔEÐ EÑE÷    F÷    Fñ    Fús Á1#BÂB'cóv—td«dtd«dœ}tj|«|j«}|j    d«}t j tjjd|««5}td„|j«D««rJ‚    ddd«y#1swYyxYw)Nzˆ
        __import__('setuptools').setup(
            name='foo',
            version='0.0.0',
            py_modules=['hello']
        )r¸z"
        exclude setup.py
        )rhrirºr½c3ó$K—|]}d|v–—Œ
y­wr!r!rs  rrŒzSTestBuildMetaBackend.test_build_sdist_setup_py_manifest_excluded.<locals>.<genexpr>‹sèø€ÒI°$˜:¨Ô-ÑIùrrrs      rÚ+test_build_sdist_setup_py_manifest_excludedz@TestBuildMetaBackend.test_build_sdist_setup_py_manifest_excludedss©€ôð óðÜð óñ
ˆô"     
‰
5Ôà×.Ñ.Ó0ˆ Ø"×.Ñ.¨vÓ6ˆ
Ü \‰\œ"Ÿ'™'Ÿ,™, v¨zÓ:Ó ;ð    J¸sÜÑI¸#¿,¹,».ÔIÔIÐ IÐIÐI÷    J÷    Jñ    Júrcó —td«dtd«dœ}tj|«|j«}|j    d«y)Nrr¸zE
                [sdist]
                formats=zip
                ©rhrirjr½)r rrsrorâ)rr­r®rxs    rÚ3test_build_sdist_builds_targz_even_if_zip_indicatedzHTestBuildMetaBackend.test_build_sdist_builds_targz_even_if_zip_indicatedsR€äðóðÜðóñ
ˆô$     
‰
5Ôà×.Ñ.Ó0ˆ Ø×!Ñ! &Õ)rz´
            __import__('setuptools').setup(
                name='foo',
                version=__import__('hello').__version__,
                py_modules=['hello']
            )z__version__ = "0.0.0"z9
            [sdist]
            formats=zip
            r(cóä—tj|j«|j«}t    j
t d¬«5|jd«ddd«y#1swYyxYw)Nz^No module named 'hello'$©Úmatchr½)rrsÚ_relative_path_import_filesror<ÚraisesÚ ImportErrorrâ©rr­rxs   rÚ%test_build_sdist_relative_path_importz:TestBuildMetaBackend.test_build_sdist_relative_path_import·sT€Ü 
‰
4×3Ñ3Ô4Ø×.Ñ.Ó0ˆ Ü ]‰]œ;Ð.IÔ Jñ    .Ø × %Ñ % fÔ -÷    .÷    .ñ    .ús Á A&Á&A/zX
            [project]
            name = "proj"
            version = "42"
            Úprojr¹r¸)r¢r»cóʗtt|«jd««}|sJ‚|D]7}|j«rŒt    j
|«j dkDrŒ7J‚y)z?All files in the directory should be either links or hard linksz**/*rN)ÚlistrÚglobÚ
is_symlinkr2ÚstatÚst_nlink)rÚ
parent_dirr®rös    rÚ_assert_link_treez&TestBuildMetaBackend._assert_link_treeÈsY€ä”T˜*Ó%×*Ñ*¨6Ó2Ó3ˆÙˆ ˆuØò    CˆDØ—?‘?Õ$¬¯©°« ×(>Ñ(>ÀÓ(BÐ BÐBñ    Crcóð—tj|j«|j«}t    d«j «rJ‚|j d«t    d«j «rJ‚y)zù
        Sanity check to ensure tests with --mode=strict are different from the ones
        without --mode.
 
        --mode=strict should create a local directory with a package tree.
        The directory should not get created otherwise.
        rsr½N)rrsÚ_simple_pyproject_examplerorròÚbuild_editabler0s   rÚ%test_editable_without_config_settingsz:TestBuildMetaBackend.test_editable_without_config_settingsÏsa€ô     
‰
4×1Ñ1Ô2Ø×.Ñ.Ó0ˆ ܘ“=×'Ñ'Ô)Ð)Ð)Ø×$Ñ$ VÔ,ܘ“=×'Ñ'Ô)Ð)Ð)Ð)rcóT—dddgi}tj|j«|j«}t    d«j «rJ‚t    d«j «|jd|«|jd|«t    d«j «sJ‚y)Nz--build-optionÚ    build_extz    --inplacerszbuild/proj-42-py3-none-any.whl)    rrsr<rorròÚmkdirrÿrŽ©rr­Úconfig_settingsrxs    rÚtest_build_wheel_inplacez-TestBuildMetaBackend.test_build_wheel_inplaceÝs€Ø+¨k¸;Ð-GÐHˆÜ 
‰
4×1Ñ1Ô2Ø×.Ñ.Ó0ˆ ܘ“=×'Ñ'Ô)Ð)Ð)Ü ˆW‹ ×ÑÔØ×6Ñ6°wÀÔPØ×!Ñ! '¨?Ô;ÜÐ4Ó5×<Ñ<Ô>Ð>Ñ>rrCz editable-modeÚstrictcóR—tji|j¥dii¥«td«j    «rJ‚|j «}|j d|«|jd|d«|jttd«jd«««y)NÚ_metarsr½z__editable__.*) rrsr<rròroÚ#prepare_metadata_for_build_editabler=r:Únextr5rBs    rÚ"test_editable_with_config_settingsz7TestBuildMetaBackend.test_editable_with_config_settingsçsŠ€ä 
‰
ÐBd×4Ñ4ÐB°g¸rÑBÔCܘ“=×'Ñ'Ô)Ð)Ð)Ø×.Ñ.Ó0ˆ Ø×9Ñ9¸'À?ÔSØ×$Ñ$ V¨_¸gÔFØ ×Ñœt¤D¨£M×$6Ñ$6Ð7GÓ$HÓIÕJr)Ú setup_literalÚ requirementsz'foo'r·z['foo']z'foo\n'z    'foo\n\n'z['foo', 'bar']Úbarz'# Has a comment line\nfoo'z'foo # Has an inline comment'z'foo \\\n >=3.0'zfoo>=3.0z
'foo\nbar'z 'foo\nbar\n'z['foo\n', 'bar\n']Ú    use_wheelTFcó—td«j|¬«td«dœ}tj|«|j    «}|r |j
}n |j }t|«}|«}    |t|    «k(sJ‚y)Na
                from setuptools import setup
 
                setup(
                    name="qux",
                    version="0.0.0",
                    py_modules=["hello"],
                    setup_requires={setup_literal},
                )
            )rKrfrg)r Úformatrrsror|r„r})
rrKrLrNr­r®rxÚ get_requiresr€rs
          rÚtest_setup_requiresz(TestBuildMetaBackend.test_setup_requiresðs€ô&ð    ó ÷‰f =ˆfÓ1Üðóñ
ˆô*     
‰
5Ôà×.Ñ.Ó0ˆ á Ø(×EÑE‰Là(×EÑEˆLô˜,Ó'ˆÙ“ˆàœ6 &›>Ò)Ð)Ñ)rcó°—td«td«dddœ}tj|«|j«}|j    «}|dgk(sJ‚y)Nzd
                [project]
                name = "proj"
                version = "42"
            z¯
                __import__('setuptools').setup(
                    setup_requires=["foo"],
                    py_modules = ["hello", "world"]
                )
            z'hello'z'world')r¢rhrir‡r·)r rrsror|)rr­r®rxÚsetup_requiress     rÚ'test_setup_requires_with_auto_discoveryz<TestBuildMetaBackend.test_setup_requires_with_auto_discovery&si€ô
#ðóôðóð"Ø!ñ#
ˆô&     
‰
5ÔØ×.Ñ.Ó0ˆ Ø&×CÑCÓEˆØ % Ò(Ð(Ñ(rcó—td«td«dœ}tj|«|j«}tjj d«}t    j |«|j|«y)NaN
                        from setuptools import setup
 
                        setup(
                            name="qux",
                            version="0.0.0",
                            py_modules=["hello"],
                            setup_requires=["does-not-exist >99"],
                        )
                    z[
                    def run():
                        print('hello')
                    rgrý)r rrsror2r3rrÿ)rr­r®rxr”s     rÚ test_dont_install_setup_requiresz5TestBuildMetaBackend.test_dont_install_setup_requiresBso€äð    ó ôðóñ
ˆô*     
‰
5Ôà×.Ñ.Ó0ˆ ä—7‘7—?‘? ?Ó3ˆÜ
 ‰ HÔð    ×6Ñ6°xÕ@rrhaD
            import os
            import sys
 
            __import__('setuptools').setup(
                name='foo',
                version='0.0.0',
            )
 
            sys_argv = os.path.abspath(sys.argv[0])
            file_path = os.path.abspath('setup.py')
            assert sys_argv == file_path
            cóà—tj|j«|j«}t    j
t «5|jd«ddd«y#1swYyxYw©Nr½)rrsÚ_sys_argv_0_passthroughror<r.ÚAssertionErrorrâr0s   rÚtest_sys_argv_passthroughz.TestBuildMetaBackend.test_sys_argv_passthroughusQ€Ü 
‰
4×/Ñ/Ô0Ø×.Ñ.Ó0ˆ Ü ]‰]œ>Ó *ñ    .Ø × %Ñ % fÔ -÷    .÷    .ñ    .ús Á    A$Á$A-a
            import os
            assert os.path.isabs(__file__)
            __import__('setuptools').setup(
                name='foo',
                version='0.0.0',
                py_modules=['hello'],
                setup_requires=['six'],
            )
            có„—tj|j«|j«}|j    d«yrY)rrsÚ_setup_py_file_abspathrorâr0s   rÚtest_setup_py_file_abspathz/TestBuildMetaBackend.test_setup_py_file_abspathŠs0€Ü 
‰
4×.Ñ.Ô/Ø×.Ñ.Ó0ˆ Ø×!Ñ! &Õ)rÚ
build_hook)rârŽcóä—ddi}tj|«tjd«}t    j
t |¬«5t||«d«ddd«y#1swYyxYw)Nrhr¸zNo distribution was found.r+r½)rrsÚreÚescaper<r.Ú
ValueErrorrb)rrxr`r®rès     rÚtest_build_with_empty_setuppyz2TestBuildMetaBackend.test_build_with_empty_setuppys[€à˜RРˆÜ 
‰
5Ôäi‰iÐ4Ó5ˆÜ ]‰]œ:¨SÔ 1ñ    7Ø .ŒGM :Ó .¨vÔ 6÷    7÷    7ñ    7ús Á
A&Á&A/)+rrr rror<Úfixturer"rxrr…r›ÚmarkÚ parametrizer´ÚSETUP_SCRIPT_STUBrðr÷rûrrrrrr#r&r)r r-r1r<r:r>rDrJrRrUrWrZr\r^r_rer!rrrlrlâs”„Ø*€Lò<ð€V‡^^˜5Ô!ñ+ó"ð+ò
2ò
2ò
!ð( ‡[[×ј\Ð+=Ó>ñ0Ió?ð0Iðd ‡[[×ј^¨dÐ4EÐ-FÓGñOJóHðOJòb=(ò~BòMòCò"BòVò2Lò2FòJò4*ñ2ð ó
ð,Ùð ó
ñ#Ðò$.ñð ó
ð˜¨Ð+Ð,ñ    !ÐòCò *ò?ð ‡[[×ÑÐ.°/À8Ð1LÐ0MÓNñKóOðKð ‡[[×ÑØ)à ugÐ Ø ˜˜Ð  Ø ˜%˜Ð !Ø ˜E˜7Ð #Ø   u˜~Ð .Ø +¨e¨WÐ 5Ø -°¨wÐ 7Ø   : ,Ð /Ø ˜U E˜NÐ +Ø ˜u e˜nÐ -Ø " U¨E NÐ 3ð     
óð  ‡[[×ј[¨4°¨-Ó8ñ#*ó9ó!ð"#*òJ)ò8AðD    ‘Dð ó
ðÐò$.ð    ‘Dð     ó 
ð Ðò*ð
 ‡[[×ј\Ð+IÓJñ7óKñ7rrlcó—eZdZdZd„Zd„Zy)ÚTestBuildMetaLegacyBackendz setuptools.build_meta:__legacy__có„—tj|j«|j«}|j    d«yrY)rrsr-rorâr0s   rr1z@TestBuildMetaLegacyBackend.test_build_sdist_relative_path_imports0€ä 
‰
4×3Ñ3Ô4à×.Ñ.Ó0ˆ Ø×!Ñ! &Õ)rcó„—tj|j«|j«}|j    d«yrY)rrsrZrorâr0s   rr\z4TestBuildMetaLegacyBackend.test_sys_argv_passthrough¤s0€Ü 
‰
4×/Ñ/Ô0à×.Ñ.Ó0ˆ Ø×!Ñ! &Õ)rN)rrr rr1r\r!rrrkrk™s„Ø5€Lò*ó*rrkz/ignore::setuptools.SetuptoolsDeprecationWarningcóª—|j|«d}|dz jt|«d¬«td¬«}|j    «gk(sJ‚y)zHSetuptools should be resilient to setup.py with ``sys.exit(0)`` (#3973).zr
        import sys, setuptools
        setuptools.setup(name='foo', version='0.0.0')
        sys.exit(0)
        rhr¥r¦rrnN)r]Ú
write_textr r#r|©Ú monkeypatchÚtmp_pathÚsetuppyrds    rÚtest_sys_exit_0_in_setuppyrt«sY€ð×ѐhÔð €Gð

Ñ×&Ñ&¤t¨G£}¸wÐ&ÔGÜÐ(?Ô@€GØ × /Ñ /Ó 1°RÒ 7Ð7Ñ 7rcóî—|j|«d}|dz j|d¬«tjtd¬«5t d¬«}|j «ddd«y#1swYyxYw)    Nz"import sys; sys.exit('some error')rhr¥r¦z
some errorr+rrn)r]ror<r.Ú
SystemExitr#r|rps    rÚtest_system_exit_in_setuppyrw¹sg€Ø×ѐhÔØ2€GØ 
Ñ×&Ñ& w¸Ð&ÔAÜ    ‰”z¨Ô    6ñ/ÜÐ,CÔDˆØ×,Ñ,Ô.÷/÷/ñ/ús ÁA+Á+A4).rKr`r2rbr rOÚsysrãrßÚ
concurrentrÚpathlibrÚtypingrrr—rr<ÚjaracorÚpackaging.requirementsr    Úsetuptools.warningsr
Útextwrapr riÚintÚgetenvr8Úbuiltin_module_namesrBrgÚskipifÚplatformÚ
pytestmarkrr#r4r"rlrkrártrwr!rrú<module>r†sÙðÛÛÛ    Û    Û Û Û
ÛÛÝÝß Ýã ÝÝ.å<åà6Ðñ ˆiˆbi‰iÐ.°Ó6Ó
7ۯ
˜×0Ñ0Ð
0€ð[‰[× Ñ Ø‡LLGÑÒ' ð ð ó€
÷)ñ)ô PÐ#ô PôF3Ð)ô3ñ,ð ó    
ñð ó
ññ&ð ó
 
ñð ó
ññ(ð ó 
ñð ó
ñð.    ‘Dð ó
ðñ4ð ó
 
ñð ó
ññ(ð ó
 
ð7Ùð ó
ñðQ|    €÷~t
7ñt
7ôn*Ð!5ô*ð$‡×ÑÐMÓNñ
8óOð
8ó/r