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
Ë
Añúh{¦ã
ó—ddlmZddlZddlZddlZddlZddlZddlmZddl    m
Z
ddl m Z ddl mZddlmZddlmZdd    lmZdd
lmZddlZddlZddlZddlmZdd lmZdd l m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(dd l)m*Z*ddl+m,Z,ddl-m.Z.ddl/m0Z0m1Z1ddl2m3Z3ejhddg¬«d„«Z5ed«ed«jm«ddded«ed«ddd œid!œZ7d"Z8ejrjuejd#k(d$¬%«ejrjwd&ie7¥d'e8i¥e7g«d(„««Z<d)„Z=d*„Z>Gd+„d,«Z?Gd-„d.«Z@d/„ZAGd0„d1«ZBd2„ZCGd3„d4«ZDGd5„d6«ZEejrjd7«d8„«ZGejrjd9„«ZIGd:„d;«ZJGd<„d=«ZKGd>„d?«ZLd@„ZMejrjdA«dB„«ZNdC„ZOdD„ZPdE„ZQdHdF„ZRdIdG„ZSy)Jé)Ú annotationsN)Údeepcopy)Ú import_module)ÚEXTENSION_SUFFIXES)ÚPath)Údedent)ÚAny)ÚMock)Úuuid4)Ú    resources)Ú _encode_pthÚ_find_namespacesÚ_find_package_rootsÚ_find_virtual_namespacesÚ_finder_templateÚ    _LinkTreeÚ_TopLevelFinderÚeditable_wheel)Ú Distribution)Ú    Extension)ÚSetuptoolsDeprecationWarningé)ÚcontextsÚ
namespaces)Ú    run_setupÚstrictÚlenient)Úparamscó,—|jdk(rddgSgS)Nrú--config-settingsúeditable-mode=strict)Úparam)Úrequests úYH:\Change_password\venv_build\Lib\site-packages\setuptools/tests/test_editable_install.pyÚ editable_optsr%*s€à‡}}˜Ò Ø#Ð%;Ð<Ð<Ø €Ióaý        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"
 
        [project]
        name = "mypkg"
        version = "3.14159"
        license = {text = "MIT"}
        description = "This is a Python package"
        dynamic = ["readme"]
        classifiers = [
            "Development Status :: 5 - Production/Stable",
            "Intended Audience :: Developers"
        ]
        urls = {Homepage = "https://github.com"}
 
        [tool.setuptools]
        package-dir = {"" = "src"}
        packages = {find = {where = ["src"]}}
        license-files = ["LICENSE*"]
 
        [tool.setuptools.dynamic]
        readme = {file = "README.rst"}
 
        [tool.distutils.egg_info]
        tag-build = ".post0"
        zr        global-include *.py *.txt
        global-exclude *.py[cod]
        prune dist
        prune build
        zThis is a ``README``z!---- placeholder MIT license ----Úmypkga                import sys
                from importlib.metadata import PackageNotFoundError, version
 
                try:
                    __version__ = version(__name__)
                except PackageNotFoundError:
                    __version__ = "unknown"
                a                 from importlib.resources import read_text
                from . import __version__, __name__ as parent
                from .mod import x
 
                data = read_text(parent, "data.txt")
                print(__version__, data, x)
                zx = ''z Hello World)ú __init__.pyz __main__.pyúmod.pyzdata.txt)úpyproject.tomlú MANIFEST.inz
README.rstz LICENSE.txtÚsrcz __import__('setuptools').setup()Údarwinúpypa/setuptools#4328©ÚreasonÚfilesúsetup.pyc    ó¼—|dz }|j«tjj||¬«ddddddt    |«g|¢}t |j |««gd    ¢}|j |«j«d
k(sJ‚|d z jd d ¬«|dz jdd ¬«|j |«j«dk(sJ‚y)Nr'©ÚprefixÚpythonú-mÚpipÚinstallú--no-build-isolationú-e)r6r7r'z3.14159.post0 Hello Worldzsrc/mypkg/data.txtÚfoobarúutf-8©Úencodingzsrc/mypkg/mod.pyúx = 42z3.14159.post0 foobar 42)    ÚmkdirÚjaracoÚpathÚbuildÚstrÚprintÚrunÚstripÚ
write_text)Útmp_pathÚvenvr1r%ÚprojectÚcmds      r$Útest_editable_with_pyprojectrN{sã€ð˜Ñ €GØ ‡MM„OÜ
‡KK×ѐe GÐÔ,ð    Ø Ø ØØØ Ü ˆG‹ ð     ð
ð     €Cô
ˆ$(‰(3‹-Ôâ
#€CØ 8‰8C‹=× Ñ Ó  Ð$?Ò ?Ð?Ð ?à Ð#Ñ#×/Ñ/°À7Ð/ÔKØ Ð!Ñ!×-Ñ-¨hÀÐ-ÔIØ 8‰8C‹=× Ñ Ó  Ð$=Ò =Ð=Ñ =r&c    ó"—dtd«ddiddœi}tjj||¬«|dz }dd    d
d d d t    |«g|¢}t |j |««gd¢}|j |«j«dk(sJ‚y)Nr'ac                [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"
 
                [project]
                name = "mypkg"
                version = "3.14159"
 
                [tool.setuptools]
                packages = ["pkg"]
                py-modules = ["mod"]
                r(za = 4úb = 2)r*Úpkgr)r4r6r7r8r9r:r;)r6ú-cz$import pkg, mod; print(pkg.a, mod.b)z4 2©rrBrCrDrErFrGrH©rJrKr%r1rLrMs      r$Útest_editable_with_flat_layoutrUœs°€àÜ$ð óð" 7Ð+Øñ#
ð €Eô* ‡KK×ѐe HÐÔ-ؘѠ€Gð    Ø Ø ØØØ Ü ˆG‹ ð     ð
ð     €Cô
ˆ$(‰(3‹-ÔÚ
B€CØ 8‰8C‹=× Ñ Ó   EÒ )Ð)Ñ )r&c    ó—dtd«ddœi}tjj||¬«|dz }dddd    d
d t    |«g|¢}t |j |««gd ¢}|j |«j«d k(sJ‚y)Nr'a>                [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"
 
                [project]
                name = "mod"
                version = "3.14159"
 
                [tool.setuptools]
                py-modules = ["mod"]
                rP)r*r)r4r6r7r8r9r:r;)r6rRzimport mod; print(mod.b)Ú2rSrTs      r$Ú test_editable_with_single_modulerXÄs¨€àÜ$ð ó ðñ
ð €Eô& ‡KK×ѐe HÐÔ-ؘѠ€Gð    Ø Ø ØØØ Ü ˆG‹ ð     ð
ð     €Cô
ˆ$(‰(3‹-ÔÚ
6€CØ 8‰8C‹=× Ñ Ó   CÒ 'Ð'Ñ 'r&có”—eZdZd„Zej
j dd«ej
j dd«d„««Zy)ÚTestLegacyNamespacescóP—tjtd¬«}|dz }|j«d}|D]¤}t    j
||d¬«}|5|j «5}|j|«tdd¬    «}    t|    «}
|
j«|
jd
«j} |
j|| «ddd«ddd«Œ¦t|jd ««} t!| «t!|«k(sJ‚y#1swYŒGxYw#1swYŒðxYw) Nz .*namespace_packages parameter.*©Úmatchz.installation_dir)z    myns.pkgAz    myns.pkgBú myns.n.pkgAú myns.n.pkgBÚ42)Úversionr2Úconfig)Ú
stop_afterÚ    dist_infoz *-nspkg.pth)ÚpytestÚwarnsrrArÚbuild_namespace_packageÚcontextÚchdirrrÚfinalize_optionsÚget_finalized_commandÚnameÚ_install_namespacesÚlistÚglobÚlen) ÚselfrJÚ monkeypatchÚ deprecationÚinstallation_dirÚexamplesrlrQÚctxÚdistrMÚ editable_namer1s              r$Útest_nspkg_file_is_uniquez.TestLegacyNamespaces.test_nspkg_file_is_uniqueís(€Ü—l‘lÜ (Ð0Rô
ˆ ð$Ð&9Ñ9ÐØ×ÑÔ ð
ˆðò    IˆDÜ×4Ñ4°X¸tÈTÔRˆCØñ I˜k×1Ñ1Ó3ð I°sØ—    ‘    ˜#”Ü  ¸ÔAÜ$ TÓ*Ø×$Ñ$Ô&Ø #× 9Ñ 9¸+Ó F× KÑ K Ø×'Ñ'Ð(8¸-ÔH÷  I÷ Ið Ið    IôÐ%×*Ñ*¨=Ó9Ó:ˆÜ5‹zœS ›]Ò*Ð*Ñ*÷ Ið Iú÷ Ið Iús%ÁDÁ#A'DÃ
DÄD ÄDÄD%    Úimpl)Ú pkg_resourcesÚns)zmyns.nc
óÚ—d}tj||›d|¬«}tj||›d|¬«}|dz j|d¬«|dz j|d¬«|dd}    |    jd    «|j    d
d d d t |«g|    ¢«|j    d
d d d dt |«g|    ¢«|j    d
dd|›d|›dg«|j    gd¢«y)a>
        Installing two packages sharing the same namespace, one installed
        naturally using pip or `--single-version-externally-managed`
        and the other installed in editable mode should leave the namespace
        intact and both packages reachable by import.
        (Ported from test_develop).
        zq        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"
        z.pkgA)rzz.pkgBr*r=r>Nr:r6r7r8r9r;rRzimport z.pkgA; import )r6rRzimport pkg_resources)rrgrIÚappendrGrE)
rqrKrJr|rzr%Ú build_systemÚpkg_AÚpkg_BÚoptss
          r$Ú!test_namespace_package_importablez6TestLegacyNamespaces.test_namespace_package_importablesû€ð$ ˆ ô
×2Ñ2°8À¸tÀ5¸\ÐPTÔUˆÜ×2Ñ2°8À¸tÀ5¸\ÐPTÔUˆØ    Ð!Ñ    !×-Ñ-¨lÀWÐ-ÔMØ    Ð!Ñ    !×-Ñ-¨lÀWÐ-ÔMà™QÐˆØ  ‰ Ð*Ô+Ø ‰(˜D %¨´C¸³JÐFÀÐFÔGØ ‰(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ ‰(˜D G¨B¨4¨~¸b¸TÀÐ"GÐHÔIà ‰Ò9Õ:r&N)Ú__name__Ú
__module__Ú __qualname__ryreÚmarkÚ parametrizerƒ©r&r$rZrZêsM„ò+ð4 ‡[[×ÑØð    
óð ‡[[×јT ;Ó/ñ;ó0óñ;r&rZcó—eZdZd„Zd„Zd„Zy)ÚTestPep420Namespacesc
ó4—tj|d«}tj|d«}|dd}|jd«|jddddt    |«g|¢«|jddddd    t    |«g|¢«|jgd
¢«y) zÅ
        Installing two packages sharing the same namespace, one installed
        normally using pip and the other installed in editable mode
        should allow importing both packages.
        r^r_Nr:r6r7r8r9r;)r6rRz&import myns.n.pkgA; import myns.n.pkgB)rÚbuild_pep420_namespace_packager~rGrE)rqrKrJr%r€rr‚s       r$rƒz6TestPep420Namespaces.test_namespace_package_importable-sŽ€ô ×9Ñ9¸(ÀMÓRˆÜ×9Ñ9¸(ÀMÓRˆà™QÐˆØ  ‰ Ð*Ô+Ø ‰(˜D %¨´C¸³JÐFÀÐFÔGØ ‰(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ ‰ÒKÕLr&c
óè—dtd«ddidœi}tjj||¬«|dz }t    j
|d«}t    j
|d«}|d    d    }|j d
«|jd d d dt|«g|¢«|jd d d ddt|«g|¢«|jd d d ddt|«g|¢«|jgd¢«y    )z@Currently users can create a namespace by tweaking `package_dir`ÚpkgAat                    [build-system]
                    requires = ["setuptools", "wheel"]
                    build-backend = "setuptools.build_meta"
 
                    [project]
                    name = "pkgA"
                    version = "3.14159"
 
                    [tool.setuptools]
                    package-dir = {"myns.n.pkgA" = "src"}
                    r(úa = 1)r*r,r4r_z myns.n.pkgCNr:r6r7r8r9r;)r6rRz#from myns.n import pkgA, pkgB, pkgC)    rrBrCrDrrr~rGrE)    rqrKrJr%r1r€rÚpkg_Cr‚s             r$Ú&test_namespace_created_via_package_dirz;TestPep420Namespaces.test_namespace_created_via_package_dir<sû€ð Ü"(ð ó #ð& wÐ/ñð
ˆô&     ‰ ×ј%¨ÐÔ1ؘ6Ñ!ˆÜ×9Ñ9¸(ÀMÓRˆÜ×9Ñ9¸(ÀMÓRˆð™QÐˆØ  ‰ Ð*Ô+Ø ‰(˜D %¨´C¸³JÐFÀÐFÔGØ ‰(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ ‰(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ ‰ÒHÕIr&c ót—dtd«dddddœdœtdd    œi}tjj    ||¬
«|dz }d g}|j d d ddddt |«g|¢«|j gd¢«}|j«dk(sJ‚d}|j d dt|«g«}d|vsJ‚y)a/Sometimes users might specify an ``include`` pattern that ignores parent
        packages. In a normal installation this would ignore all modules inside the
        parent packages, and make them namespaces (reported in issue #3504),
        so the editable mode should preserve this behaviour.
        rar                    [build-system]
                    requires = ["setuptools", "wheel"]
                    build-backend = "setuptools.build_meta"
 
                    [project]
                    name = "pkgA"
                    version = "3.14159"
 
                    [tool.setuptools]
                    packages.find.include = ["mypkg.*"]
                    Úzb = 1r)r(zpkgA.py)r(zother.pyÚnr+)r*r'r+r4r:r6r7r8ú-vr9r;)r6rRz'from mypkg.n import pkgA; print(pkgA.a)Ú1z}        try:
            import mypkg.other
        except ImportError:
            print("mypkg.other not defined")
        rRzmypkg.other not definedN)rÚEXAMPLErBrCrDrGrErH)rqrKrJr1r€r‚ÚoutrMs        r$Ú0test_namespace_accidental_config_in_lenient_modezETestPep420Namespaces.test_namespace_accidental_config_in_lenient_mode^sæ€ð Ü"(ð ó #ð$&Ø 'à')Ø#*ññô ' }Ñ5ñ/ð
ˆô6     ‰ ×ј%¨ÐÔ1ؘ6Ñ!ˆð'Ð'ˆØ ‰(˜D %¨¨y¸$ÄÀEÃ
ÐRÈTÐRÔS؏h‰hÒRÓSˆØy‰y‹{˜cÒ!Ð!Ð!ð ˆð h‰h˜ $¬¨s« Ð4Ó5ˆØ(¨CÑ/Ð/Ñ/r&N)r„r…r†rƒr’ršr‰r&r$r‹r‹,s„ò Mò JóD00r&r‹c
ó¼—|dz }tjDcgc]P}d|vrJ|jtj«r+|t    |«j tj«z ‘ŒR}}|D]}|j d¬«Œt|«ttjtjjtt|««¬«}tjdddd    t|«d
t|«d g    |¢}t!j"||¬ «t%j&«d k(rdnd}    ||    z dz }
t!j"|
g|¬ «ycc}w)z>
    Editable install to a prefix should be discoverable.
    r5z site-packagesT)Úparents)Ú
PYTHONPATHr7r8r9ú
--editablez--prefixr:)ÚenvÚWindowsÚScriptsÚbinÚsampleN)ÚsysrCÚ
startswithr5rÚ relative_torAÚ _addsitedirsÚdictÚosÚenvironÚpathsepÚjoinÚmaprEÚ
executableÚ
subprocessÚ
check_callÚplatformÚsystem) rJÚsample_projectr%r5rCÚsite_packages_allÚsprŸrMr¢Úexes            r$Útest_editable_with_prefixr·‘s7€ð˜Ñ  €Fô
—H‘Höà Ø ˜dÑ " t§¡´s·z±zÔ'Bð    ”d“×'Ñ'¬¯
©
Ó3Ó3ðÐðð  òˆØ
‰˜ˆÕðôÐ"Ô#ä
Œrz‰z¤b§j¡j§o¡o´c¼#Ð?PÓ6QÓ&RÔ
S€Cä ‰Ø Ø ØØÜ ˆNÓØÜ ˆF‹ Øð ð
ð €Cô×ј# 3Õ'ô —‘Ó(¨IÒ5‰)¸5€CØ
3‰,˜Ñ
!€CÜ×ј3˜% SÖ)ùò=s˜AEcóR—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zy )ÚTestFinderTemplateúÍThis test focus in getting a particular implementation detail right.
    If at some point in time the implementation is changed for something different,
    this test can be modified or even excluded.
    có6—i}t|||«|d«y)Nr9)Úexec)rqÚfinderÚlocs   r$Úinstall_finderz!TestFinderTemplate.install_finder¿s€ØˆÜ ˆVS˜#ÔØˆˆI‰Õr&có—ddddidœiddidœ}tjj||¬    «t|d
z «t|d z «d œ}t    tt ««|i«}t j«5t j«5d D]"}tjj|d«Œ$|j|«td«}td«}td«}|jdk(sJ‚|jdk(sJ‚t|dz j««}    t!||    «ddd«ddd«y#1swYŒxYw#1swYyxYw)NÚpkg1r”úmod1.pyza = 42)r(Úsubpkgúmod2.pyza = 43©Úsrc1Úsrc2r4z    src1/pkg1z    src2/mod2)rÁÚmod2)rÁú pkg1.subpkgúpkg1.subpkg.mod1rÈrÊrÈrÉé*é+zsrc1/pkg1/subpkg)rBrCrDrErr rÚ
save_pathsÚsave_sys_modulesr¤ÚmodulesÚpopr¿rÚaÚresolveÚ assert_path)
rqrJr1ÚmappingÚtemplateÚmodÚmod1rÈrÃÚexpecteds
          r$Ú test_packagesz TestFinderTemplate.test_packagesÄsS€ðØ#%Ø(¨(Ð3ñðð  Ð)ñ
ˆô     ‰ ×ј%¨ÐÔ1ô˜ ;Ñ.Ó/ܘ ;Ñ.Ó/ñ
ˆô$¤C¬«£L°'¸2Ó>ˆä ×  Ñ  Ó "ñ     *¤H×$=Ñ$=Ó$?ñ     *ØJò +Ü— ‘ —‘  TÕ*ð +ð × Ñ  Ô )Ü Ð!3Ó4ˆDÜ  Ó(ˆDÜ" =Ó1ˆFà—6‘6˜R’<Ð <Ø—6‘6˜R’<Ð <ܘHÐ'9Ñ9×BÑBÓDÓEˆHÜ ˜ Ô )÷     *÷     *÷     *ñ     *ú÷     *ð     *ús%Á?EÂB$E    Ä8EÅ    E    ÅEÅEcó´—ddddœi}tjj||¬«dt|dz «i}dgi}t    tt ««||«}t j«5t j«5dD]"}tjj|d«Œ$|j|«td«}tj|«d    z }t|dz j!««}    t#||    «|j$d
k(sJ‚|j'd ¬ «dk(sJ‚    ddd«ddd«y#1swYŒxYw#1swYyxYw) NrQúa = 13Úabc)r(útext.txtr4ú ns.othernamer|©r|rÞrÝé r=r>)rBrCrDrErr rrÍrÎr¤rÏrÐr¿rÚimportlib_resourcesr1rÒrÓrÑÚ    read_text)
rqrJr1rÔrrÕrÖrQÚtextrØs
          r$Útest_namespacez!TestFinderTemplate.test_namespaceäs7€Ø¨¸eÑDÐEˆÜ ‰ ×ј%¨ÐÔ1à!¤3 x°%Ñ'7Ó#8Ð9ˆØ˜BZˆ
ä#¤C¬«£L°'¸:ÓFˆÜ ×  Ñ  Ó "ñ     =¤H×$=Ñ$=Ó$?ñ     =Ø-ò +Ü— ‘ —‘  TÕ*ð +ð × Ñ  Ô )Ü Ó/ˆCÜ&×,Ñ,¨SÓ1°JÑ>ˆDä˜H uÑ,×5Ñ5Ó7Ó8ˆHÜ ˜˜XÔ &Ø—5‘5˜B’;Ð ;ð—>‘>¨7>Ó3°uÒ<Ð <Ñ<÷     =÷     =÷     =ñ     =ú÷     =ð     =ús%Á/EÂB,EÄ1EÅE     ÅEÅEcóì—ddddiiidddiidœ}tjj||¬«t|d    z «t|d
z «d œ}dt|d z «t|d z «gi}t    tt ««||«}t j«5t j«5dD]"}tjj|d«Œ$|j|«td«}td«}t|d    z j««}    t||    «|j dk(sJ‚|j"dk(sJ‚    ddd«ddd«y#1swYŒxYw#1swYyxYw)Nr|rÁr(rÛrÄúb = 37rÅr4z src1/ns/pkg1zsrc2/ns)úns.pkgAr|rÆrÇ)r|rçúns.mod2rçrèràé%)rBrCrDrErr rrÍrÎr¤rÏrÐr¿rrÒrÓrÑÚb)
rqrJr1rÔÚ namespaces_rÕrÖrrÈrØs
          r$Útest_combine_namespacesz*TestFinderTemplate.test_combine_namespacesûse€à˜F ]°HÐ$=Ð>Ð?ؘI xÐ0Ð1ñ
ˆô     ‰ ×ј%¨ÐÔ1ô˜8 nÑ4Ó5ܐh Ñ*Ó+ñ
ˆðœc (¨VÑ"3Ó4´c¸(ÀVÑ:KÓ6LÐMÐNˆ Ü#¤C¬«£L°'¸;ÓGˆä ×  Ñ  Ó "ñ      ¤H×$=Ñ$=Ó$?ñ      Ø3ò +Ü— ‘ —‘  TÕ*ð +ð × Ñ  Ô )Ü  Ó+ˆDÜ  Ó+ˆDä˜H ~Ñ5×>Ñ>Ó@ÓAˆHÜ ˜˜hÔ 'Ø—6‘6˜R’<Ð <Ø—6‘6˜R’<Ð ‘<÷      ÷      ÷      ñ      ú÷      ð      ús%ÂE*Â3BEÅ E*ÅE'    Å#E*Å*E3cóL—dddiidddiidœ}tjj«}|j|«5tjj    |«dd    d
d œd d gdœ}t |«}t |tt«««}td„|j«D««}ddd«tj«5tj«5dD]"}tjj!|d«Œ$|j#«t%d«}    t%d«}
t|dz j'««} tt)|    j*«j'««| k(sJ‚t|dz j'««} tt)|
j*«j'««| k(sJ‚|    j,dk(sJ‚|
j.dk(sJ‚    ddd«ddd«y#1swYŒSxYw#1swYŒxYw#1swYyxYw)z
        Users may attempt to combine namespace packages in a nested way via
        ``package_dir`` as shown in pypa/setuptools#4248.
        Ú
my_packagez my_module.pyrÛÚ my_package2z my_module2.pyræ)r,rÇú    %PEP 517%zsrc/my_packagezsrc2/my_package2)Údifferent_nameúdifferent_name.subpkgrñrò)Ú script_nameÚ package_dirÚpackagesc3óJK—|]\}}|jd«sŒ|–—Œy­w)z.pyN©Úendswith)Ú.0ÚkÚvs   r$ú    <genexpr>zDTestFinderTemplate.test_combine_namespaces_nested.<locals>.<genexpr>.s èø€ÒW™d˜a ÀQÇZÁZÐPUÕEVœÑWùs‚#œ#Nrõzdifferent_name.my_modulez different_name.subpkg.my_module2zsrc/my_package/my_module.pyzsrc2/my_package2/my_module2.pyràré)rBrCÚDirectoryStackrhrDrrrEr ÚnextÚget_implementationrrÍrÎr¤rÏrÐr¿rrÒrÚ__file__rÑrê) rqrJr1ÚstackÚattrsrwr½ÚcoderÖr×rÈrØs             r$Útest_combine_namespaces_nestedz1TestFinderTemplate.test_combine_namespaces_nesteds÷€ð! >°8Ð"<Ð=Ø" _°hÐ$?Ð@ñ
ˆô
— ‘ ×*Ñ*Ó,ˆØ ]‰]˜8Ó $ñ     XÜ K‰K× Ñ ˜eÔ $à*à&6Ø-?ñ ð.Ð/FÐGñ ˆEô  Ó&ˆDÜ$ T¬3¬u«w«<Ó8ˆFÜÑW f×&?Ñ&?Ó&AÔWÓWˆD÷     Xô×  Ñ  Ó "ñ     ¤H×$=Ñ$=Ó$?ñ     Ø˜ZÑ(ò +Ü— ‘ —‘  TÕ*ð +ð × Ñ  Ô %Ü Ð!;Ó<ˆDÜ Ð!CÓDˆDä˜HÐ'DÑD×MÑMÓOÓPˆHÜ”t˜DŸM™MÓ*×2Ñ2Ó4Ó5¸ÒAÐ AÐAä˜HÐ'GÑG×PÑPÓRÓSˆHÜ”t˜DŸM™MÓ*×2Ñ2Ó4Ó5¸ÒAÐ AÐAà—6‘6˜R’<Ð <Ø—6‘6˜R’<Ð ‘<÷     ÷     ð     ÷     Xñ     Xú÷     ð     ú÷     ð     ús1½A3Hà HÃ!DHÇ0HÈH ÈH    ÈHÈH#cóD—ddddiiiddddiiiddddiiid    œ}tjj||¬
«i}dt|d z «gi}t    tt ««||«}d „d D«}t j«5t j«5dddg|¢­D]"}tjj|d«Œ$|j|«td«}|jdk(sJ‚tj t"«5td«ddd«tjj%t|dz ««td«}    |    jdk(sJ‚tj t"«5td«ddd«tjj%t|dz ««td«}
|
jdk(sJ‚    ddd«ddd«y#1swYŒÖxYw#1swYŒnxYw#1swYŒ*xYw#1swYyxYw)NÚparentÚchildzone.pyúx = 1ztwo.pyúx = 2zthree.pyzx = 3)Úproject1Úproject2Úproject3r4zproject1/parentc3ó&K—|]    }d|›–—Œ y­w)z parent.child.Nr‰)rùrls  r$rüzCTestFinderTemplate.test_dynamic_path_computation.<locals>.<genexpr>Msèø€ÒK¨4- ˜vÔ&ÑKùs‚)ÚoneÚtwoÚthreez parent.childzparent.child.onerzparent.child.twor ézparent.child.threer é)rBrCrDrErr rrÍrÎr¤rÏrÐr¿rÚxreÚraisesÚ ImportErrorr~) rqrJr1rÔrërÕÚmodsrÖrrrs            r$Útest_dynamic_path_computationz0TestFinderTemplate.test_dynamic_path_computationAsö€ð" G¨h¸Ð-@Ð#AÐBØ! G¨h¸Ð-@Ð#AÐBØ! G¨j¸'Ð-BÐ#CÐDñ
ˆô
     ‰ ×ј%¨ÐÔ1؈ؤ# hÐ1BÑ&BÓ"CÐ!DÐEˆ Ü#¤C¬«£L°'¸;ÓGˆáKÐ3JÔKˆÜ ×  Ñ  Ó "ñ     ¤H×$=Ñ$=Ó$?ñ     Ø  .°.ÐHÀ4ÑHò +Ü— ‘ —‘  TÕ*ð +ð × Ñ  Ô )äР2Ó3ˆCØ—5‘5˜A’:Ð :ä—‘œ{Ó+ñ 2ÜÐ0Ô1÷ 2ô H‰HO‰OœC ¨:Ñ 5Ó6Ô 7ÜР2Ó3ˆCØ—5‘5˜A’:Ð :ä—‘œ{Ó+ñ 4ÜÐ2Ô3÷ 4ô H‰HO‰OœC ¨:Ñ 5Ó6Ô 7Ü!Ð"6Ó7ˆEØ—7‘7˜a’<Ð ‘<÷+     ÷     ð     ÷ 2ð 2ú÷ 4ð 4ú÷!     ð     ú÷     ð     úsWÂHÂA4H
Ä G2ÄA(H
Æ G>ÆAH
Ç!HÇ2G; Ç7H
Ç>H ÈH
H    ÈHÈHcó*—dddii}tjj||¬«dt|dz «i}t    tt ««|i«}t j«5t j«5tjjdd«|j|«tjtd¬«5t!d«ddd«ddd«ddd«y#1swYŒxYw#1swYŒxYw#1swYyxYw)NrQr(zfrom . import pkgr4r\©rBrCrDrErr rrÍrÎr¤rÏrÐr¿rerrr©rqrJr1rÔrÕs     r$Útest_no_recursionz$TestFinderTemplate.test_no_recursionesñ€ð ØÐ2ðð
ˆô
     ‰ ×ј%¨ÐÔ1ð ”3x %Ñ'Ó(ð
ˆô$¤C¬«£L°'¸2Ó>ˆä ×  Ñ  Ó "ñ    %¤H×$=Ñ$=Ó$?ñ    %Ü K‰KO‰O˜E 4Ô (à × Ñ  Ô )Ü—‘œ{°%Ô8ñ %ܘeÔ$÷ %÷        %÷    %ð    %÷ %ð %ú÷        %ð    %ú÷    %ð    %ús=Á*D    Á?A C=à C1ÃC=àD    Ã1C: Ã6C=Ã=D    ÄD    Ä    Dcóp—ddddidœi}tjj||¬«dt|dz «i}t    tt ««|i«}t j«5t j«5tjjdd«tjjdd«|j|«tjtd¬«5t!d«ddd«ddd«ddd«y#1swYŒxYw#1swYŒxYw#1swYyxYw)    NÚfoor”r()r(Úbarr4zfoo.barr<r\rrs     r$Útest_similar_namez$TestFinderTemplate.test_similar_namezs€à Ø!à! 2ðñð
ˆô     ‰ ×ј%¨ÐÔ1ð ”3x %Ñ'Ó(ð
ˆô$¤C¬«£L°'¸2Ó>ˆä ×  Ñ  Ó "ñ    (¤H×$=Ñ$=Ó$?ñ    (Ü K‰KO‰O˜E 4Ô (Ü K‰KO‰O˜I tÔ ,à × Ñ  Ô )Ü—‘œ{°(Ô;ñ (ܘhÔ'÷ (÷     (÷    (ð    (÷
 (ð (ú÷     (ð    (ú÷    (ð    (ús=Á-D,ÂA-D Ã/ DÃ;D ÄD,ÄD ÄD Ä D)    Ä%D,Ä,D5có€—ddddddœdœi}tjj||¬«dt|dz «i}t    tt ««|i«}t j«5t j«5tjjdd«|j|«tjtd¬    «5t!d
«ddd«tjtd ¬    «5t!d «ddd«tjtd ¬    «5t!d«ddd«tjtd¬    «5t!d«ddd«tjtd¬    «5t!d«ddd«t!d«}|j"dk(sJ‚t!d«}|j"dk(sJ‚    ddd«ddd«y#1swYŒxYw#1swYŒíxYw#1swYŒÊxYw#1swYŒ§xYw#1swYŒ„xYw#1swYŒOxYw#1swYyxYw)Nrr”rr    )r(ú lowercase.py)r(r!rr4z'FOO'r\ÚFOOz'foo\.LOWERCASE'z foo.LOWERCASEz'foo\.bar\.Lowercase'zfoo.bar.Lowercasez
'foo\.BAR'zfoo.BAR.lowercasezFOO.bar.lowercasez foo.lowercaserzfoo.bar.lowercaser)rBrCrDrErr rrÍrÎr¤rÏrÐr¿rerrrr)rqrJr1rÔrÕrÖs      r$Útest_case_sensitivityz(TestFinderTemplate.test_case_sensitivity’sè€à Ø!Ø 'à#%Ø$+ññð    
ˆô     ‰ ×ј%¨ÐÔ1à ”3x %Ñ'Ó(ð
ˆô$¤C¬«£L°'¸2Ó>ˆÜ ×  Ñ  Ó "ñ    ¤H×$=Ñ$=Ó$?ñ    Ü K‰KO‰O˜E 4Ô (à × Ñ  Ô )Ü—‘œ{°'Ô:ñ %ܘeÔ$÷ %ô—‘œ{Ð2EÔFñ /ܘoÔ.÷ /ô—‘œ{Ð2KÔLñ 3ÜÐ1Ô2÷ 3ô—‘œ{°-Ô@ñ 3ÜÐ1Ô2÷ 3ô—‘œ{°'Ô:ñ 3ÜÐ1Ô2÷ 3ô  Ó0ˆCØ—5‘5˜A’:Ð :äР3Ó4ˆCØ—5‘5˜A’:Ð ‘:÷/    ÷    ð    ÷ %ñ %ú÷ /ð /ú÷ 3ð 3ú÷ 3ð 3ú÷ 3ð 3ú÷!    ð    ú÷    ð    úsžÁ/H4ÂA H(à G+Ã#H(Ä G8Ä #H(Ä/ HÄ;#H(Å HÅ*#H(Æ HÆAH(ÇH4Ç+G5 Ç0H(Ç8H Ç=H(ÈH È    H(ÈH ÈH(ÈH% È!H(È(H1    È-H4È4H=có,—dddddœdœi}tjj||¬«dt|dz «i}d    gi}t    tt ««||«}t j«5t j«5d
D]"}tjj|d«Œ$|j|«td«}t|dz j««}t||«|j d k(sJ‚td «}    |    j"d k(sJ‚td«}
|
j$dk(sJ‚t'j(t*d¬«5td«ddd«t'j(t*d¬«5td«ddd«t'j(t*d¬«5td«ddd«ddd«ddd«y#1swYŒxxYw#1swYŒUxYw#1swYŒ2xYw#1swYŒ6xYw#1swYyxYw)NrQrÛræzc = 42)r(zbar.py)r(rr4rÞr|rßràzns.othername.foorézns.othername.foo.barrËz'NS'r\zNS.othername.fooz'ns\.othername\.FOO\'zns.othername.FOOz'ns\.othername\.foo\.BAR\'zns.othername.foo.BAR)rBrCrDrErr rrÍrÎr¤rÏrÐr¿rrÒrÓrÑrêÚcrerr) rqrJr1rÔrrÕrÖrQrØrrs            r$Útest_namespace_case_sensitivityz2TestFinderTemplate.test_namespace_case_sensitivity»sÜ€à Ø'à#+Ø&ññð
ˆô     ‰ ×ј%¨ÐÔ1à!¤3 x°%Ñ'7Ó#8Ð9ˆØ˜BZˆ
ä#¤C¬«£L°'¸:ÓFˆÜ ×  Ñ  Ó "ñ    6¤H×$=Ñ$=Ó$?ñ    6Ø-ò +Ü— ‘ —‘  TÕ*ð +ð × Ñ  Ô )Ü Ó/ˆCܘH uÑ,×5Ñ5Ó7Ó8ˆHÜ ˜˜XÔ &Ø—5‘5˜B’;Ð ;äР2Ó3ˆCØ—5‘5˜B’;Ð ;äР6Ó7ˆCØ—5‘5˜B’;Ð ;ä—‘œ{°&Ô9ñ 2ÜÐ0Ô1÷ 2ô—‘œ{Ð2LÔMñ 2ÜÐ0Ô1÷ 2ô—‘œ{Ð2RÔSñ 6ÜÐ4Ô5÷ 6÷-    6÷    6ð    6÷  2ð 2ú÷ 2ð 2ú÷ 6ð 6ú÷-    6ð    6ú÷    6ð    6úsmÁ2H
ÂCG>Å GÅ##G>Æ G&Æ#G>Æ5 G2ÇG>Ç    H
ÇG# ÇG>Ç&G/ Ç+G>Ç2G; Ç7G>Ç>H    ÈH
Hcó²—dddddddidœii}tjj||¬    «dt|d
z «i}t    tt ««|i«}t j«5t j«5d D]"}tjj|d «Œ$|j|«td «}|jdk(sJ‚td«}|jdk(sJ‚t!j"t$«5td«d d d «d d d «d d d «y #1swYŒxYw#1swYŒxYw#1swYy xYw)zˆ
        The finder should not import ``fullname`` if the intermediate segments
        don't exist (see pypa/setuptools#4019).
        r,r'r”rÛzb = 13ú    config.pyza = 37)r(r(z helloworld.pyÚ
componentsr4z    src/mypkg)r'z mypkg.configúmypkg.helloworldzmypkg.componentsúmypkg.components.configúmypkg.components.helloworldNr+rér*ràr,)rBrCrDrErr rrÍrÎr¤rÏrÐr¿rrÑrêrerr)rqrJr1rÔrÕrÖrbÚ
helloworlds        r$Útest_intermediate_packagesz-TestFinderTemplate.test_intermediate_packagesäsL€ð ØØ#%Ø!)Ø%-à# Xð#ñ    ð    ð 
ˆô     ‰ ×ј%¨ÐÔ1àœC ¨;Ñ 6Ó7Ð8ˆÜ#¤C¬«£L°'¸2Ó>ˆä ×  Ñ  Ó "ñ    =¤H×$=Ñ$=Ó$?ñ    =ðò +ô— ‘ —‘  TÕ*ð +ð × Ñ  Ô )ä"Ð#<Ó=ˆFØ—8‘8˜r’>Ð !>ä&Ð'9Ó:ˆJØ—<‘< 2Ò%Ð %Ð%ä—‘œ{Ó+ñ =ÜÐ;Ô<÷ =÷'    =÷    =ð    =÷& =ð =ú÷'    =ð    =ú÷    =ð    =ús=Á1E ÂB
EÄ D5ÄEÄ$E Ä5D> Ä:EÅE
    ÅE Å EN)r„r…r†Ú__doc__r¿rÙrärìrrrrr#r&r.r‰r&r$r¹r¹¹sC„ñò
ò
*ò@=ò. ò6) òV" òH%ò*(ò0'òR'6óR*=r&r¹c
óæ—ddiddœdddidœdd    dd
iiidd idd idd idœ}tjj||¬«ddddœ}gd¢}t|||«}|t    |dz «t    |dz «t    |dz «t    |dz «t    |dz «t    |dz «dœk(sJ‚t t t||«««}|ddhk(sJ‚t t|««}|hd£k(sJ‚y)rºr(zab = 1r)rêr(zd = 1zde = 1)r(ÚeÚgÚhzfgh = 1zabc = 1z
abcxyz = 1z    mnopq = 1)rÑÚdÚfÚotherÚanotherÚ yet_anotherr4r6r7r8)úa.b.cú a.b.c.x.y.zú    m.n.o.p.q) rÑúa.br9ú    a.b.c.x.yr:r4zd.er5úf.gzf.g.hr;rÑr4r5)rÑr9r:r4r5r;r>>úm.núm.n.oúa.b.c.xúm.n.o.pÚmr<r=N)    rBrCrDrrEÚsetr¨rr)rJr1rôrõÚrootsr|s      r$Útest_pkg_rootsrFs;€ð " 8Ð,¸WÑ EØ$¨M¸8Ð+DÑ EؐC˜-¨Ð3Ð4Ð 5Ø Ð+Ø! <Ð0Ø% {Ð3ñ  €Eô ‡KK×ѐe HÐÔ-àØ Ø"ñ€Kò
€Hô   ¨+°xÓ @€EØ Ü ˜C‘Ó  ÜX Ñ'Ó(ܘ8 iÑ/Ó0Ü ˜C‘Ó  Ü ˜C‘Ó  Ü˜ MÑ1Ó2ñ ò ðð ô
ŒTÔ" 8¨UÓ3Ó 4Ó    5€BØ #uÒ ÐÐ ä     Ô % eÓ ,Ó    -€BØ ÒPÒ PÐPÑ Pr&c
óÆ—eZdZUdZee«eddddddddœdœd    œZd
ed <eee«eddd ed id œee«ed«zeddded ddœed ddœee«eddd ed ded ddœid œdœZe    jje jdk(d¬«e    jjdej««d„««Zy)ÚTestOverallBehaviourz·        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"
 
        [project]
        name = "mypkg"
        version = "3.14159"
        r+r”zvar = 42zvar = 13ú resource 39)r(rÄzresource_file.txt)r(rÂÚ
subpackage)r*r+ú otherfile.pyr'zdict[str, Any]Ú FLAT_LAYOUTr')r*r+rKr,zÇ                [tool.setuptools]
                packages = ["mypkg", "mypkg.subpackage"]
 
                [tool.setuptools.package-dir]
                "mypkg.subpackage" = "other"
                rÂ)r(rÂrJ)r*r+rKr'r6)rÂrJ)ú flat-layoutú
src-layoutú custom-layoutÚ    namespacer-r.r/ÚlayoutcóÒ—td|||j|g|¢­Ž\}}d}|jddt|«g«}d|vsJ‚d}    |jddt|    «g«}d|vsJ‚d}
|jddt|
«g«}d    |vsJ‚t    |j d
««} t    |j d ««} t    |j d ««} | j d d¬«| j dd¬«| j dd¬«|jddt|    «g«}d|vsJ‚d|vsJ‚|jddt|
«g«}d    |vsJ‚d|vsJ‚y)Nr'zj        try:
            import otherfile
        except ImportError as ex:
            print(ex)
        r6rRzNo module named 'otherfile'zy        import mypkg, mypkg.mod1, mypkg.subpackage.mod2
        print(mypkg.mod1.var, mypkg.subpackage.mod2.var)
        z42 13zô        import mypkg.subpackage
        from setuptools._importlib import resources as importlib_resources
        text = importlib_resources.files(mypkg.subpackage) / "resource_file.txt"
        print(text.read_text(encoding="utf-8"))
        rIú
**/mod1.pyú
**/mod2.pyú**/resource_file.txtzvar = 17r=r>z    var = 781z resource 374z17 781)Úinstall_projectÚEXAMPLESrGrrþrorI)rqrJrKrQr%rLÚ_Úcmd_import_errorr™Ú cmd_get_varsÚcmd_get_resourcer×rÈÚ resource_files              r$Útest_editable_installz*TestOverallBehaviour.test_editable_install…s›€ô%Ø T˜8 T§]¡]°6Ñ%:ð
Ø=Jò
‰
ˆð
 Ðð h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ,°Ñ3Ð3Ð3ð ˆ ðh‰h˜ $¬¨|Ó(<Ð=Ó>ˆØ˜#‰~Ј~ð Ðð h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ Ñ#Ð#Ð#ôG—L‘L Ó.Ó/ˆÜG—L‘L Ó.Ó/ˆÜ˜WŸ\™\Ð*@ÓAÓBˆ à ‰˜
¨WˆÔ5Ø ‰˜ ¨gˆÔ6Ø× Ñ  ¸'РÔBàh‰h˜ $¬¨|Ó(<Ð=Ó>ˆØ˜cÑ!Ð!Ð!ؘ3‰Ðˆàh‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ CÑ'Ð'Ð'Ø Ñ$Ð$Ñ$r&N)r„r…r†Ú    PYPROJECTrr˜rLÚ__annotations__rWrer‡Úxfailr¤r±rˆÚkeysr]r‰r&r$rHrHBs\…ð €Iñ! Ó+ؘ}Ñ-ØàØ!à!Ø%Ø%2ññ
ñ     #€Kó ð #á$ YÓ/Ø" =Ñ1ØØ˜[¨Ñ1Ð2ñ    
ñ% YÓ/Ùðóñ    ð# =Ñ1Øà!Ø& wÑ/°    Ñ:ñð! Ñ)¨,Ñ7ñ#
ñ(% YÓ/Ø" =Ñ1ØàØ*¨7Ñ3°IÑ>Ø"-¨gÑ"6°|Ñ"Dñðñ    
 
ñ7&€HðP ‡[[×ѐs—|‘| xÑ/Ð8NÐÓOØ ‡[[×јX x§}¡}£Ó7ñ0%ó8óPñ0%r&rHcó~—eZdZeej
d«Zedxxed«z cc<deddd<d„Zd    „Z    y
) Ú TestLinkTreerNr*a[        [tool.setuptools]
        # Temporary workaround: both `include-package-data` and `package-data` configs
        # can be removed after #3260 is fixed.
        include-package-data = false
        package-data = {"*" = ["*.txt"]}
 
        [tool.setuptools.packages.find]
        where = ["src"]
        exclude = ["*.subpackage*"]
        rÜr,r'úresource.not_in_manifestcó`—tjj|j|¬«t    |«5d}t ddi«}|j «t«}|dz }|dz }|j«|j«|jd«}d|_
t|«|_ |j«|j«}|j«}    t!||||«}
|
|||    «t#|j%d    ««} |d
z } t'| | «t#|j%d «d«J‚t#|j%d «d«J‚t#|j%d «d«J‚t#|j%d«d«J‚    ddd«y#1swYyxYw)Nr4z mypkg-3.14159rórðz.auxz.buildÚbuild_pyTrSzsrc/mypkg/mod1.pyz **/subpackagerTrUz**/resource.not_in_manifest)rBrCrDÚFILESÚ_PathrÚparse_config_filesr
rAÚget_command_objÚ editable_moderEÚ    build_libÚensure_finalizedÚ get_outputsÚget_output_mappingrrþroÚassert_link_to) rqrJrlrwÚwheelÚauxrDrfÚoutputsÚoutput_mappingÚ    make_treer×rØs              r$Útest_generated_treez TestLinkTree.test_generated_treeËsŒ€Ü ‰ ×ј$Ÿ*™*¨XÐÔ6ä 8‹_ñ    OØ"ˆDÜ ° Р<Ó=ˆDØ × #Ñ #Ô %ä“FˆEؘVÑ#ˆCؘxÑ'ˆEØ I‰IŒKØ K‰KŒMà×+Ñ+¨JÓ7ˆHØ%)ˆHÔ "Ü!$ U£ˆHÔ Ø × %Ñ %Ô 'Ø×*Ñ*Ó,ˆGØ%×8Ñ8Ó:ˆNä! $¨¨c°5Ó9ˆIÙ e˜W nÔ 5䘟™ Ó.Ó/ˆDØÐ"5Ñ5ˆHÜ ˜4 Ô *䘟™ Ó1°4Ó8Ð@Ð @Ð@ܘŸ™ Ó.°Ó5Ð=Ð =Ð=ܘŸ™Ð!7Ó8¸$Ó?ÐGÐ GÐG䘟™Ð!>Ó?ÀÓFÐNÐ NÑN÷;    O÷    Oñ    Oús ·E#F$Æ$F-có—ddg}td|||jg|¢­Ž|jgd¢«}d|vsJ‚d}|jddt|«g«}d    |vsJ‚d
}|jddt|«g«}d |vsJ‚d |vsJ‚y) Nr r!r'©r6rRz(import mypkg.mod1; print(mypkg.mod1.var)r`zv        try:
            from mypkg import subpackage
        except ImportError as ex:
            print(ex)
        r6rRúcannot import name 'subpackage'a8        import mypkg
        from setuptools._importlib import resources as importlib_resources
        try:
            text = importlib_resources.files(mypkg) / "resource.not_in_manifest"
            print(text.read_text(encoding="utf-8"))
        except FileNotFoundError as ex:
            print(ex)
        zNo such file or directoryrd)rVrgrGr)rqrJrKr‚r™rYr[s       r$Útest_strict_installz TestLinkTree.test_strict_installís³€Ø#Ð%;Ð<ˆÜ˜  x°·±ÐC¸dÓCàh‰hÒSÓTˆØs‰{Ј{ð Ðð h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ0°CÑ7Ð7Ð7ð Ððh‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ*¨cÑ1Ð1Ð1Ø)¨SÑ0Ð0Ñ0r&N)
r„r…r†rrHrWrgrrvrzr‰r&r$rcrcºsW„Ù Ð)×2Ñ2°<Ñ@Ó A€EØ    Ð
Ó™vð
     ó  ñ Óð9>€Eˆ%LÑÐ4Ñ5ò OóD1r&rcz9ignore:.*compat.*:setuptools.SetuptoolsDeprecationWarningcóH—ddg}tjd}td|||g|¢­Ž|jgd¢«}d|vsJ‚t    t |««}dD]%}t    |jdd    |g««}||vrŒ%J‚d
}|jdd    t |«g«}d |vsJ‚y) Nr zeditable-mode=compatrOr'rxr`)z"import otherfile; print(otherfile)zimport other; print(other)zimport mypkg; print(mypkg)r6rRzc    try:
        from mypkg import subpackage;
    except ImportError as ex:
        print(ex)
    ry)rHrWrVrGÚcomparable_pathrEr)rJrKr‚r1r™Ú expected_pathrMs       r$Útest_compat_installr~ sƀð  Ð!7Ð 8€DÜ  × )Ñ )¨/Ñ :€EܐG˜T 8¨UÐ:°TÓ:à
(‰(ÒOÓ
P€CØ 3‰;Ј;ä#¤C¨£MÓ2€Mðò$ˆô
˜dŸh™h¨°$¸Ð'<Ó=Ó>ˆØ Ò#Ð#Ð#ð $ð €Cð (‰(H˜d¤F¨3£KÐ0Ó
1€CØ ,°Ñ 3Ð3Ñ 3r&cóŽ—dddddd|g|¢}|j|tj¬«|jgd¢«}d    |vsJ‚y
) z3Ensure editable installs work with pbr, issue #3500r6r7r8r–r9rž©Ústderr)r6rRzimport mypkg.helloz Hello world!N)rGr¯ÚSTDOUT)Ú pbr_packagerKr%rMr™s     r$Útest_pbr_integrationr„.s_€ð    Ø Ø Ø ØØØð     ð
ð     €Cð    ‡HHˆSœ×*Ñ*€HÔ+Ø
(‰(Ò9Ó
:€CØ ˜SÑ  Ð Ñ  r&cóL—eZdZdZiej
d¥ded«i¥Zd„Zy)ÚTestCustomBuildPya$
    Issue #3501 indicates that some plugins/customizations might rely on:
 
    1. ``build_py`` not running
    2. ``build_py`` always copying files to ``build_lib``
 
    During the transition period setuptools should prevent potential errors from
    happening due to those assumptions.
    rMr2af            import pathlib
            from setuptools import setup
            from setuptools.command.build_py import build_py as orig
 
            class my_build_py(orig):
                def run(self):
                    super().run()
                    raise ValueError("TEST_RAISE")
 
            setup(cmdclass={"build_py": my_build_py})
            có„—td|||j«\}}d|vsJ‚d|vsJ‚|jgd¢«}d|vsJ‚y)z>Ensure that errors in custom build_py are reported as warningsr'rzValueError: TEST_RAISErxr`N)rVrgrG)rqrJrKrXr™s     r$Útest_safeguarded_from_errorsz.TestCustomBuildPy.test_safeguarded_from_errors_sS€ô! ¨$°¸$¿*¹*ÓE‰ˆˆ3Ø-°Ñ4Ð4Ð4Ø'¨3Ñ.Ð.Ð.àh‰hÒSÓTˆØs‰{Љ{r&N)    r„r…r†r/rHrWrrgrˆr‰r&r$r†r†@s:„ñð Ø
'¨ Ñ
6ð à‘Fð ó 
ñ €Eó$r&r†có—eZdZd„Zd„Zy)ÚTestCustomBuildWheelcóZ—|jd«}Gd„d|«}||jd<y)NÚ bdist_wheelcó‡—eZdZˆfd„ZˆxZS)úETestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheelcóZ•—|jjd«rd}t‰| «S)Nzmacosx-zmacOS platform)Ú    plat_namer¥ÚsuperÚget_tag)rqrXÚ    __class__s  €r$r’zMTestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheel.get_tagos)ø€ð—>‘>×,Ñ,¨YÔ7Ø(AÜ‘w‘Ó(Ð(r&)r„r…r†r’Ú __classcell__)r“s@r$Ú MyBdistWheelrŽns ø„÷ )ð )r&r•)Úget_command_classÚcmdclass)rqrwÚbdist_wheel_clsr•s    r$Úinstall_custom_build_wheelz/TestCustomBuildWheel.install_custom_build_wheelks.€Ø×0Ñ0°Ó?ˆô    )˜?ô    )ð(4ˆ ‰ mÒ$r&cób—tjjddi«t«}d|_|j «|j |«t|«}|j«|j«ttt«jd«««}d|vsJ‚y)Nú    module.pyr@r2ú
dist/*.whlÚeditable)rBrCrDrróÚ set_defaultsr™rrmrGrErþrro)rqÚ
tmpdir_cwdrwrMÚ
wheel_files     r$Útest_access_plat_namez*TestCustomBuildWheel.test_access_plat_namexs‹€ô     ‰ ×ј;¨Ð1Ô2Ü‹~ˆØ%ˆÔØ ×ÑÔØ ×'Ñ'¨Ô-ܘTÓ"ˆØ ×ÑÔØ ‰Œ    Üœœd›fŸk™k¨,Ó7Ó8Ó9ˆ
ؘZÑ'Ð'Ñ'r&N)r„r…r†r™r¡r‰r&r$rŠrŠjs „ò 4ó (r&rŠcór—eZdZd„Zej
j ejdk7d¬«d„«Z    y)ÚTestCustomBuildExtcóD—ddlm}Gd„d|«}||jd<y)Nr)Ú    build_extcó —eZdZy)úITestCustomBuildExt.install_custom_build_ext_distutils.<locals>.MyBuildExtN)r„r…r†r‰r&r$Ú
MyBuildExtr§‹s„Ø r&r¨r¥)Údistutils.command.build_extr¥r—)rqrwÚ build_ext_clsr¨s    r$Ú"install_custom_build_ext_distutilsz5TestCustomBuildExt.install_custom_build_ext_distutilsˆs!€ÝJô    ˜ô    ð&0ˆ ‰ kÒ"r&Úlinuxz(compilers may fail without correct setupr/cón‡—tjjddi«dtddg«gi}t    |«}d|_|j «|j|«t|«}|j«|j«ttt«jd«««}d|vsJ‚t«jd«Dcgc]}|jd    k7sŒ|‘Œ}}t!|«d
k(sJ‚|d j"Št%ˆfd „t&D««sJ‚ycc}w) Nzmodule.cr”Ú ext_modulesÚmoduler2rœrzmodule.*z.crrc3ó@•K—|]}‰j|«–—Œy­w©Nr÷)rùÚextrls  €r$rüzHTestCustomBuildExt.test_distutils_leave_inplace_files.<locals>.<genexpr>¤søèø€ÒD¨#4—=‘= ×%ÑDùsƒ)rBrCrDrrróržr«rrmrGrErþrroÚsuffixrprlÚanyr)    rqrŸrrwrMr Úpr1rls            @r$Ú"test_distutils_leave_inplace_filesz5TestCustomBuildExt.test_distutils_leave_inplace_filess
ø€ô     ‰ ×ј: rÐ*Ô+à œI h°° Ó=Ð>ð
ˆô˜EÓ"ˆØ%ˆÔØ ×ÑÔØ ×/Ñ/°Ô5ܘTÓ"ˆØ ×ÑÔØ ‰Œ    Üœœd›fŸk™k¨,Ó7Ó8Ó9ˆ
ؘZÑ'Ð'Ð'Ü ›FŸK™K¨
Ó3ÖHq°q·x±xÀ4Ó7G’ÐHˆÐHܐ5‹z˜QŠÐˆØQ‰x}‰}ˆÜÓDÔ1CÔDÔDÐDÑDùòIs ÃD2Ã2D2N)
r„r…r†r«rer‡Úskipifr¤r±r¶r‰r&r$r£r£‡s@„ò0ð ‡[[×ÑØ  ‰ ˜ÑÐ(RðóñEóñEr&r£cóî—tjjddi«t«}d|_|j «t |«}|j«tdtfi«}t|«¬«}|j|d|«tj|«5}|j«ddd«td„j j"D««sJ‚y#1swYŒ2xYw)    z7Make sure to display useful debugging tips to the user.r›r@r2Ú SimulatedErr)Ú side_effectrkNc3ó$K—|]}d|v–—Œ
y­w)zdebugging-tipsNr‰)rùÚnotes  r$rüz&test_debugging_tips.<locals>.<genexpr>¶sèø€ÒH¨DР4Ô'ÑHùs‚)rBrCrDrróržrrmÚtypeÚ    Exceptionr
ÚsetattrrerrGr´ÚvalueÚ    __notes__)rŸrrrwrMr¹Úsimulated_failurervs       r$Útest_debugging_tipsrçsŀä
‡KK×ѐ{ HÐ-Ô.Ü ‹>€DØ!€DÔØ×ÑÔÜ
˜Ó
€CØ×ÑÔ䘬¨ °bÓ9€LÜ©«Ô8ÐØ×јÐ4Ð6GÔHä    ‰|Ó    $ð¨Ø ‰Œ    ÷ä ÑH°C·I±I×4GÑ4GÔHÔ HÐHÑ H÷ðús Â)C+Ã+C4Úerrorcó>—td«}t|t«sJ‚y)z>Ensure _encode_pth function does not produce encoding warningsutkmilan_ç_utf8N)r Ú
isinstanceÚbytes)Úcontents r$Útest_encode_pthrɹs€ôÐ+Ó,€GÜ gœuÔ %Ð%Ñ %r&c óè—||z }|j«tjj||¬«g|¢d‘}|j    ddddddt |«g|¢t j¬    «}||fS)
Nr4r:r6r7r8r–r9r;r€)rArBrCrDrGrEr¯r‚)rlrKrJr1r‚rLr™s       r$rVrVÀs~€Ø˜‰o€GØ ‡MM„OÜ
‡KK×ѐe GÐÔ,Ø *ˆTÐ *Ð)Ð *€DØ
(‰(Ø    4˜  i°´s¸7³|ÐKÀdÐKÜ× Ñ ð ó €Cð Cˆ<Ðr&có~—djdtd„|D««z«}|ddz j|d¬«y)    a5To use this function, it is necessary to insert new_dir in front of sys.path.
    The Python process will try to import a ``sitecustomize`` module on startup.
    If we manipulate sys.path/PYTHONPATH, we can force it to run our code,
    which invokes ``addsitedir`` and ensure ``.pth`` files are loaded.
    ú
)z import sitec3óNK—|]}dtj|«›d–—Œy­w)zsite.addsitedir(ú)N)r©Úfspath)rùÚnew_dirs  r$rüz_addsitedirs.<locals>.<genexpr>Ôs$èø€ÒS¸wÐ"¤2§9¡9¨WÓ#5Ð"8¸Ô:ÑSùs‚#%rzsitecustomize.pyr=r>N)r¬ÚtuplerI)Únew_dirsrÈs  r$r§r§ÌsH€ð i‰iØÜ
ÑSÈ(ÔSÓ
Sñ    Tó€Gðˆa[Ð%Ñ%×1Ñ1°'ÀGÐ1ÕLr&có°—|jrJtt|j«d«}|r(tt    |«j ««|k(sJ‚yyyr±)Ú__path__rþÚiterrErrÒ)rQrØrCs   r$rÓrÓÜsK€à
‡|‚|Ü”D˜Ÿ™Ó&¨Ó-ˆÙ Ü”t˜D“z×)Ñ)Ó+Ó,°Ò8Ð 8Ñ8ð ðr&cót—|j«r6t|j««t|j««k(sJ‚y|j«}|j«}|tj|tjk(sJ‚|tj
|tj
k(sJ‚yr±)Ú
is_symlinkrErÒÚstatÚST_INOÚST_DEV)Úfiler6Ú    file_statÚ
other_stats    r$rprpäs†€Ø ‡Ôܐ4—<‘<“>Ó"¤c¨%¯-©-«/Ó&:Ò:Ð:Ñ:à—I‘I“Kˆ    Ø—Z‘Z“\ˆ
ØœŸ™Ñ%¨´D·K±KÑ)@Ò@Ð@Ð@ØœŸ™Ñ%¨´D·K±KÑ)@Ò@Ð@Ñ@r&có~—|j«jtjd«jdd«S)Nú/z//)ÚlowerÚreplacer©Úsep)Ú str_with_paths r$r|r|îs/€Ø × Ñ Ó  × (Ñ (¬¯©°Ó 5× =Ñ =¸dÀCÓ HÐHr&)rÛrr6rÚreturnÚNone)rãrErärE)TÚ
__future__rr©r±rØr¯r¤ÚcopyrÚ    importlibrÚimportlib.machineryrÚpathlibrÚtextwraprÚtypingr    Ú unittest.mockr
Úuuidr Ú jaraco.envsrBÚ jaraco.pathrerCrhÚsetuptools._importlibr ráÚ!setuptools.command.editable_wheelr rrrrrrrÚsetuptools.distrÚsetuptools.extensionrÚsetuptools.warningsrr”rrÚdistutils.corerÚfixturer%rHr˜ÚSETUP_SCRIPT_STUBr‡r`rˆrNrUrXrZr‹r·r¹rFrHrcÚfilterwarningsr~Ú uses_networkr„r†rŠr£rÃrÉrVr§rÓrpr|r‰r&r$ú<module>rûsZðÝ"ã    ÛÛ ÛÛ
ÝÝ#Ý2ÝÝÝÝÝãÛÛ ÝåB÷    ÷    ó    õ)Ý*Ý<ç"å$ð€‡˜ )Ð,Ô-ñó.ðñð     óñ<ð     ó÷ eƒgØ(Ø6àÙ!ðó
ñ"ðó    ðØ%ñ/
ð ñSD €ðN7Ðð‡×ѐ3—<‘< 8Ñ+Ð4JÐÓK؇×ÑØ à2ˆ7Ð2JР1Ñ2Øðóñ>óóLð>ò2%*òP#(÷L?;ñ?;÷Db0ñb0òJ%*÷PU=ñU=òp
.Q÷bu%ñu%÷pP1ñP1ðf‡×ÑÐWÓXñ4óYð4ð@‡×Ññ!óð!÷"'ñ'÷T(ñ(÷:EñEò@Ið$‡×јGÓ$ñ&ó%ð&ò     ò
Mò 9óAôIr&