hyb
2026-01-09 4cb426cb3ae31e772a09d4ade5b2f0242aaeefa0
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
Ë
@ñúhÆãó—dZddlmZddlZddlZddlZddlZddlmZddl    m
Z
ddl m Z ddl mZdd    lmZdd
lmZmZdd lmZdd lmZmZmZmZmZmZdd lmZddlm Z m!Z!m"Z"ddl#m$Z$m%Z%m&Z&ejNd«Z(Gd„de«Z)y)z¶distutils.command.build_ext
 
Implements the Distutils 'build_ext' command, for building extension
modules (currently limited to C extensions, should accommodate C++
extensions ASAP).é)Ú annotationsN)ÚCallable)Úlog)Ú    USER_BASE)ÚClassVaré)Ú newer_group)Ú new_compilerÚshow_compilers)ÚCommand)ÚCCompilerErrorÚ CompileErrorÚDistutilsErrorÚDistutilsOptionErrorÚDistutilsPlatformErrorÚDistutilsSetupError)Ú    Extension)Úcustomize_compilerÚget_config_h_filenameÚget_python_version)Ú get_platformÚis_freethreadedÚis_mingwz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cój—eZdZUdZdej
›dZddddde«›d    fd
d d d ezfddddddezfddddddddddgZgd¢Z    de
d <d!d"d#e fgZ d$e
d%<d&„Z ed'„«Zd:d(„Zd:d)„Zd:d*„Zd+„Zd,„Zd:d-„Zd.„Zd/„Zej2d0„«Zd:d1„Zd2„Zd3„Zd;d4„Zd;d5„Zd;d6„Z d<d7„Z!d8„Z"d<d9„Z#y")=Ú    build_extz8build C/C++ extensions (compile/link to build directory)z (separated by 'z'))z
build-lib=Úbz(directory for compiled extension modules)z build-temp=Útz1directory for temporary files (build by-products)z
plat-name=Úpz;platform name to cross-compile for, if supported [default: ú])ÚinplaceÚiziignore build-lib and put compiled extensions into the source directory alongside your pure Python modulesz include-dirs=ÚIz.list of directories to search for header files)zdefine=ÚDzC preprocessor macros to define)zundef=ÚUz!C preprocessor macros to undefine)z
libraries=Úlz!external C libraries to link withz library-dirs=ÚLz.directories to search for external C libraries)zrpath=ÚRz7directories to search for shared C libraries at runtime)z link-objects=ÚOz2extra explicit link objects to include in the link)ÚdebugÚgz'compile/link with debugging information)ÚforceÚfz2forcibly build everything (ignore file timestamps))z    compiler=Úczspecify the compiler type)z    parallel=Újznumber of parallel build jobs)úswig-cppNz)make SWIG create C++ files (default is C))z
swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)ÚuserNz#add user include, library and rpath)r r)r+r/r0zClassVar[list[str]]Úboolean_optionsz help-compilerNzlist available compilerszAClassVar[list[tuple[str, str | None, str, Callable[[], object]]]]Ú help_optionscó*—d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_    d|_
d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_y)NF)Ú
extensionsÚ    build_libÚ    plat_nameÚ
build_tempr ÚpackageÚ include_dirsÚdefineÚundefÚ    librariesÚ library_dirsÚrpathÚ link_objectsr)r+ÚcompilerÚswigÚswig_cppÚ    swig_optsr0Úparallel©Úselfs úZH:\Change_password\venv_build\Lib\site-packages\setuptools/_distutils/command/build_ext.pyÚinitialize_optionszbuild_ext.initialize_optionsps˜€ØˆŒØˆŒØˆŒØˆŒØˆŒ ؈Œ à ˆÔØˆŒ ؈Œ
؈ŒØ ˆÔ؈Œ
Ø ˆÔ؈Œ
؈Œ
؈Œ ؈Œ    ØˆŒ ؈ŒØˆŒ    Øˆ óc#ó(K—|jd«sy|jrd–—ytjdk(rE|jd«}|jd«}tj
j ||«–—y|jd«–—y­w)zµ
        Resolve Python's library directory for building extensions
        that rely on a shared Python library.
 
        See python/cpython#44264 and python/cpython#48686
        ÚPy_ENABLE_SHAREDNú.ÚzosÚbaseÚ
platlibdirÚLIBDIR)Úget_config_varÚ python_buildÚsysÚplatformÚosÚpathÚjoin)Ú    sysconfigÚ installed_dirÚlib_dirs   rGÚ_python_lib_dirzbuild_ext._python_lib_dirˆsèø€ð×'Ñ'Ð(:Ô;Ø à × !Ò !ØŠIØ ä <‰<˜5Ò  ð&×4Ñ4°VÓ<ˆMØ×.Ñ.¨|Ó<ˆGÜ—'‘'—,‘,˜}¨gÓ6Ó 6ð×*Ñ*¨8Ó4Ó 4ùs‚BBc
ó&—ddlm}|jddddddd    d
«|j€|jj
|_|jj |_|j«}|jd ¬ «}|j€|jjxsg|_    t|jt«r.|jjtj«|_    tj tj"k7rG|jj%tj&j)tj d ««|jj+|jtj&j««||k7rB|jj+|jtj&j««|j-d«|j-d«|j.€g|_|j0€g|_nHt|j0t«r.|j0jtj«|_|j2€g|_nHt|j2t«r.|j2jtj«|_tj4dk(rt7«s|j0j%tj&j)tj d««tj"tj8k7rG|j0j%tj&j)tj"d««|j:r0tj&j)|j<d«|_n/tj&j)|j<d«|_|jj%tj&j?tA«««|j0j%tj"«|jBdk(rd}n|jBdd}tj&j)tj d«}|r tj&j)||«}|j0j%|«tjDdddk(r||jFsU|j0j%tj&j)tj8ddtI«zd««n|j0j%d«|j0j+|jK|««|jLr2|jLjd«}|Dcgc]}|df‘Œc}|_&|jNr |jNjd«|_'|jP€g|_(n |jPjd«|_(|jRr×tj&j)tTd «}tj&j)tTd«}    tj&jW|«r|jj%|«tj&jW|    «r6|j0j%|    «|j2j%|    «t|jXt«r    t[|jX«|_,yycc}w#t\$r t_d «‚wxYw)!Nr)rXÚbuild)r5r5)r7r7)r@r@)r)r))r+r+)rDrD)r6r6T)Ú plat_specificÚincluder<r?ÚntÚlibsÚDebugÚReleaseÚwin32éÚPCbuildéÚcygwinÚlibÚpythonÚconfigrLú,Ú1ú zparallel should be an integer)0Ú    distutilsrXÚset_undefined_optionsr8Ú distributionÚ ext_packageÚ ext_modulesr4Úget_python_incr9Ú
isinstanceÚstrÚsplitrUÚpathseprSÚ exec_prefixÚbase_exec_prefixÚappendrVrWÚextendÚensure_string_listr<r=r>ÚnamerÚprefixr)r7Údirnamerr6rTrRrr[r:r;rCr0rÚisdirrDÚintÚ
ValueErrorr)
rFrXÚ
py_includeÚplat_py_includeÚsuffixÚnew_libÚdefinesÚsymbolÚ user_includeÚuser_libs
          rGÚfinalize_optionszbuild_ext.finalize_options¡sF€Ý'à ×"Ñ"Ø Ø &Ø (Ø $Ø Ø Ø $Ø &ô        
ð <‰<Ð Ø×,Ñ,×8Ñ8ˆDŒLà×+Ñ+×7Ñ7ˆŒð×-Ñ-Ó/ˆ
Ø#×2Ñ2ÀÐ2ÓFˆØ × Ñ Ð $Ø $× 1Ñ 1× >Ñ >Ò DÀ"ˆDÔ Ü d×'Ñ'¬Ô -Ø $× 1Ñ 1× 7Ñ 7¼¿
¹
Ó CˆDÔ ô ?‰?œc×2Ñ2Ò 2Ø × Ñ × $Ñ $¤R§W¡W§\¡\´#·/±/À9Ó%MÔ Nð     ×Ñ× Ñ  ×!1Ñ!1´"·'±'·/±/Ó!BÔCØ ˜jÒ (Ø × Ñ × $Ñ $ _×%:Ñ%:¼2¿7¹7¿?¹?Ó%KÔ Là ×Ñ  Ô,Ø ×Ñ Ô/ð >‰>Ð !؈DŒNØ × Ñ Ð $Ø "ˆDÕ Ü ˜×)Ñ)¬3Ô /Ø $× 1Ñ 1× 7Ñ 7¼¿
¹
Ó CˆDÔ à :‰:Р؈DJÜ ˜Ÿ
™
¤CÔ (ØŸ™×)Ñ)¬"¯*©*Ó5ˆDŒJô
7‰7d‹?¤8¥:ð × Ñ × $Ñ $¤R§W¡W§\¡\´#·/±/À6Ó%JÔ KÜ×#Ñ#¤s§z¡zÒ1Ø×!Ñ!×(Ñ(¬¯©¯©´c×6JÑ6JÈFÓ)SÔT؏zŠzÜ"$§'¡'§,¡,¨t¯©ÀÓ"H•ä"$§'¡'§,¡,¨t¯©À    Ó"J”ð × Ñ × $Ñ $¤R§W¡W§_¡_Ô5JÓ5LÓ%MÔ NØ × Ñ × $Ñ $¤S×%9Ñ%9Ô :ð~‰~ Ò(Ø ‘🙨¨Ð+Ü—g‘g—l‘l¤3§?¡?°IÓ>ˆGÙÜŸ'™'Ÿ,™, w°Ó7Ø × Ñ × $Ñ $ WÔ -ô <‰<˜˜Ð ˜xÒ 'Ø×)Ò)à×!Ñ!×(Ñ(Ü—G‘G—L‘LÜŸ
™
 E¨8Ô6HÓ6JÑ+JÈHóõð×!Ñ!×(Ñ(¨Ô-à ×Ñ× Ñ  ×!5Ñ!5°iÓ!@ÔAð ;Š;Ø—k‘k×'Ñ'¨Ó,ˆGØ7>Ö?¨V˜F Cš=Ò?ˆDŒKð
:Š:ØŸ™×)Ñ)¨#Ó.ˆDŒJà >‰>Ð !؈DNà!Ÿ^™^×1Ñ1°#Ó6ˆDŒNð 9Š9ÜŸ7™7Ÿ<™<¬    °9Ó=ˆLÜ—w‘w—|‘|¤I¨uÓ5ˆH܏w‰w}‰}˜\Ô*Ø×!Ñ!×(Ñ(¨Ô6܏w‰w}‰}˜XÔ&Ø×!Ñ!×(Ñ(¨Ô2Ø—
‘
×!Ñ! (Ô+ä d—m‘m¤SÔ )ð LÜ # D§M¡MÓ 2• ð *ùò/@øô4ò LÜ*Ð+JÓKÐKð Lús×) ]6Ý];Ý;^có¼—|jsy|jj«rc|jd«}|jj |j «xsg«|jj|j«t|j|j|j|j¬«|_ t|j«t j"dk(r<|j$t'«k7r%|jj)|j$«t j"dk(r&t+«r|jj-dd«|j.%|jj1|j.«|j20|j2D]!\}}|jj-||«Œ#|j4,|j4D]}|jj7|«Œ|j%|jj9|j«|j%|jj;|j«|j<%|jj?|j<«|j@%|jjC|j@«|jE«y)NÚ
build_clib)r@ÚverboseÚdry_runr+r`ÚPy_GIL_DISABLEDrm)#r4rqÚhas_c_librariesÚget_finalized_commandr<r|Úget_library_namesr=r{rŽr
r@rrr+rrUr~r6rÚ
initializerÚ define_macror9Úset_include_dirsr:r;Úundefine_macroÚ set_librariesÚset_library_dirsr>Úset_runtime_library_dirsr?Úset_link_objectsÚbuild_extensions)rFrŽr~ÚvalueÚmacros     rGÚrunz build_ext.run,s€ðŠØ ð
× Ñ × ,Ñ ,Ô .Ø×3Ñ3°LÓAˆJØ N‰N× !Ñ ! *×">Ñ">Ó"@Ò"FÀBÔ GØ × Ñ × $Ñ $ Z×%:Ñ%:Ô ;ô%Ø—]‘]Ø—L‘LØ—L‘LØ—*‘*ô    
ˆŒ ô     ˜4Ÿ=™=Ô)ô 7‰7dŠ?˜tŸ~™~´³Ò?Ø M‰M× $Ñ $ T§^¡^Ô 4ô
7‰7dŠ?œÔ0Ø M‰M× &Ñ &Ð'8¸#Ô >ð × Ñ Ð (Ø M‰M× *Ñ *¨4×+<Ñ+<Ô =Ø ;‰;Ð "à#Ÿ{™{ò 8‘ eØ— ‘ ×*Ñ*¨4°Õ7ð 8à :‰:Ð !ØŸ™ò 4Ø— ‘ ×,Ñ,¨UÕ3ð 4à >‰>Ð %Ø M‰M× 'Ñ '¨¯©Ô 7Ø × Ñ Ð (Ø M‰M× *Ñ *¨4×+<Ñ+<Ô =Ø :‰:Ð !Ø M‰M× 2Ñ 2°4·:±:Ô >Ø × Ñ Ð (Ø M‰M× *Ñ *¨4×+<Ñ+<Ô =ð     ×ÑÕrIcóÈ—t|t«s td«‚t|«D]¸\}}t|t«rŒt|t
«rt |«dk7r td«‚|\}}tjd|«t|t«rtj|«s td«‚t|t«s td«‚t    ||d«}dD]#}|j|«}|€Œt|||«Œ%|jd
«|_d |vrtjd «|jd «}|r”g|_g|_|D]}    t|    t
«r t |    «dvs td«‚t |    «dk(r|j"j%|    d«ŒXt |    «dk(sŒg|j j%|    «Œƒ|||<Œ»y    )a¬Ensure that the list of extensions (presumably provided as a
        command option 'extensions') is valid, i.e. it is a list of
        Extension objects.  We also support the old-style list of 2-tuples,
        where the tuples are (ext_name, build_info), which are converted to
        Extension instances here.
 
        Raise DistutilsSetupError if the structure is invalid anywhere;
        just returns otherwise.
        z:'ext_modules' option must be a list of Extension instancesrzMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)Úsources)r9r=r<Ú extra_objectsÚextra_compile_argsÚextra_link_argsNr>Údef_filez9'def_file' element of build info dict no longer supportedÚmacros)érz9'macros' element of build info dict must be 1- or 2-tupler¨r)ruÚlistrÚ    enumeraterÚtupleÚlenrÚwarningrvÚextension_name_reÚmatchÚdictÚgetÚsetattrÚruntime_library_dirsÚ define_macrosÚ undef_macrosr{)
rFr4r!ÚextÚext_nameÚ
build_infoÚkeyÚvalr§rŸs
          rGÚcheck_extensions_listzbuild_ext.check_extensions_listrsï€ô˜*¤dÔ+Ü%ØLóð ô  
Ó+óG     ‰FˆAˆsܘ#œyÔ)Øô˜c¤5Ô)¬S°«X¸ª]Ü)ð4óðð
$'Ñ  ˆHjä K‰Kð:ðô     ô˜x¬Ô-Ô2C×2IÑ2IÈ(Ô2SÜ)ð<óðô
˜j¬$Ô/Ü)ð8óðô˜H j°Ñ&;Ó<ˆCðò
+ð!—n‘n SÓ)Ø‘?ܘC  cÕ*ð
+ð(2§~¡~°gÓ'>ˆCÔ $ؘZÑ'Ü— ‘ ÐWÔXð —^‘^ HÓ-ˆFÙØ$&Ô!Ø#%Ô Ø#ò8EÜ& u¬eÔ4¼¸U»ÀvÑ9MÜ1ØWóðô˜5“z Q’Ø×(Ñ(×/Ñ/°°a±Õ9ܘU› q›Ø×)Ñ)×0Ñ0°Õ7ð8ð ˆJq‹MñOG     rIcó˜—|j|j«g}|jD]}|j|j«Œ|S©N)r»r4r|r¢)rFÚ    filenamesr¶s   rGÚget_source_fileszbuild_ext.get_source_filesÊsF€Ø ×"Ñ" 4§?¡?Ô3؈    ð—?‘?ò    *ˆCØ × Ñ ˜SŸ[™[Õ )ð    *àÐrIcó¨—|j|j«|jDcgc]}|j|j«‘Œc}Scc}wr½)r»r4Úget_ext_fullpathr~©rFr¶s  rGÚ get_outputszbuild_ext.get_outputsÓs@€ð     ×"Ñ" 4§?¡?Ô3ð
<@¿?¹?ÖK°C×%Ñ% c§h¡hÕ/ÒKÐKùÒKsª"Acó”—|j|j«|jr|j«y|j    «yr½)r»r4rDÚ_build_extensions_parallelÚ_build_extensions_serialrEs rGrzbuild_ext.build_extensionsÞs3€à ×"Ñ" 4§?¡?Ô3Ø =Š=Ø × +Ñ +Õ -à × )Ñ )Õ +rIcó —|j}|jdurtj«}    ddlm}|€|j «y|¬«5}|jDcgc]}|j|j|«‘Œ }}t|j|«D]/\}}|j|«5|j«ddd«Œ1    ddd«y#t
$rd}YŒ¯wxYwcc}w#1swYŒ[xYw#1swYyxYw)NTr)ÚThreadPoolExecutor)Ú max_workers) rDrUÚ    cpu_countÚconcurrent.futuresrÈÚ ImportErrorrÆr4ÚsubmitÚbuild_extensionÚzipÚ_filter_build_errorsÚresult)rFÚworkersrÈÚexecutorr¶ÚfuturesÚfuts       rGrÅz$build_ext._build_extensions_parallelæsþ€Ø—-‘-ˆØ =‰=˜DÑ  Ü—l‘l“nˆGð    Ý =ð ˆ?Ø × )Ñ )Ô +Ø á ¨GÔ 4ð    !¸àFJÇoÁoöØ?B—‘ × 4Ñ 4°cÕ:ðˆGðô  §¡°Ó9ò !‘SØ×.Ñ.¨sÓ3ñ!Ø—J‘J”L÷!ð!ñ !÷        !ð    !øôò    ØŠGð    üò÷!ð!ú÷     !ð    !úsG°CÁC:Á!#C)Â/C:Â3C.Ã
C:à C&Ã%C&Ã)C:Ã.C7 Ã3C:Ã:Dcó”—|jD]-}|j|«5|j|«ddd«Œ/y#1swYŒ:xYwr½)r4rÐrÎrÂs  rGrÆz"build_ext._build_extensions_serialûsK€Ø—?‘?ò    *ˆCØ×*Ñ*¨3Ó/ñ *Ø×$Ñ$ SÔ)÷ *ð *ñ    *÷ *ð *ús    ¡>¾A    c#ó´K—    d–—y#tttf$r8}|js‚|j    d|j
›d|›«Yd}~yd}~wwxYw­w)Nzbuilding extension "z
" failed: )r rrÚoptionalÚwarnr~)rFr¶Úes   rGrÐzbuild_ext._filter_build_errorssRèø€ð    FÜ øÜ¤´ Ð=ò    FØ—<’<ØØ I‰IÐ,¨S¯X©X¨J°jÀÀÐD× EÑ Eûð    Füs*‚A„    ˆA‰A.AÁ AÁAÁAc ó‚—|j}|t|ttf«st    d|j
›d«‚t |«}|j|j
«}||jz}|js.t||d«s!tjd|j
«ytjd|j
«|j||«}|jxsg}|j dd}|j"D]}|j%|f«Œ|j&j)||j*||j,|j||j¬«}|dd|_|j0r|j3|j0«|j4xsg}|j6xs|j&j9|«}    |j&j;|||j=|«|j>|j@||jC|«|j|j*|    ¬«
y)Nz$in 'ext_modules' option (extension 'zD'), 'sources' must be present and must be a list of source filenamesÚnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension)Ú
output_dirr§r9r)Úextra_postargsÚdepends)r<r=r³rÞÚexport_symbolsr)r7Ú target_lang)"r¢rur©r«rr~ÚsortedrÁrßr+r    rr)ÚinfoÚ swig_sourcesr¤r´rµr{r@Úcompiler7r9Ú_built_objectsr£r|r¥ÚlanguageÚdetect_languageÚlink_shared_objectÚ get_librariesr=r³Úget_export_symbols)
rFr¶r¢Úext_pathrßÚ
extra_argsr§r;Úobjectsrçs
          rGrÎzbuild_ext.build_extension    sü€Ø—+‘+ˆØ ˆ?¤*¨W´t¼U°mÔ"DÜ%Ø6°s·x±x°jðA-ð-óð ô ˜“/ˆà×(Ñ(¨¯©Ó2ˆØ˜CŸK™KÑ'ˆØ—
’
œk¨'°8¸WÔEÜ I‰IÐ<¸c¿h¹hÔ GØ ä H‰HÐ.°·±Ô 9ð
×#Ñ# G¨SÓ1ˆð ×+Ñ+Ò1¨rˆ
à×"Ñ"¡1Ð%ˆØ×%Ñ%ò    $ˆEØ M‰M˜5˜(Õ #ð    $ð—-‘-×'Ñ'Ø Ø—‘ØØ×)Ñ)Ø—*‘*Ø%Ø—K‘Kð(ó
ˆð&¡a˜jˆÔð
× Ò Ø N‰N˜3×,Ñ,Ô -Ø×(Ñ(Ò.¨Bˆ
ð—<‘<ÒI 4§=¡=×#@Ñ#@ÀÓ#Iˆà  ‰ ×(Ñ(Ø Ø Ø×(Ñ(¨Ó-Ø×)Ñ)Ø!$×!9Ñ!9Ø%Ø×2Ñ2°3Ó7Ø—*‘*Ø—‘Ø ð    )õ     
rIcó —g}g}i}|jrtjd«|jsd|jvsd|jvrd}nd}|D]k}tj
j |«\}}    |    dk(r1|j|dz|z«|j|«|d||<Œ[|j|«Œm|s|S|jxs|j«}
|
dg} | j|j«|jr| jd«|js| j|j«|D]5}||} tjd    || «|j| d
| |gz«Œ7|S) züWalk the list of source files in 'sources', looking for SWIG
        interface (.i) files.  Run SWIG on all that are found, and
        return a modified 'sources' list with SWIG source files replaced
        by the generated C (or C++) files.
        z/--swig-cpp is deprecated - use --swig-opts=-c++z-c++z.cppz.cz.iÚ_wrapéÿÿÿÿz-pythonzswigging %s to %sz-o) rBrr­rCrUrVÚsplitextr{rAÚ    find_swigr|rãÚspawn) rFr¢Ú    extensionÚ new_sourcesräÚ swig_targetsÚ
target_extÚsourcerNr¶rAÚswig_cmdÚtargets              rGräzbuild_ext.swig_sourcesZsw€ð ˆ ؈ ؈ ð =Š=Ü K‰KÐIÔ Jð MŠMؘ$Ÿ.™.Ñ(ؘ)×-Ñ-Ñ-à‰JàˆJàò    +ˆFÜŸ'™'×*Ñ*¨6Ó2‰KˆT3ؐdŠ{Ø×"Ñ" 4¨'¡>°JÑ#>Ô?Ø×#Ñ# FÔ+Ø'2°2¡ ˜VÒ$à×"Ñ" 6Õ*ð    +ñØÐ ày‰yÒ,˜DŸN™NÓ,ˆØ˜)Ð$ˆØ‰˜Ÿ™Ô'Ø =Š=Ø O‰O˜FÔ #ð~Š~Ø O‰O˜I×/Ñ/Ô 0à"ò    :ˆFØ! &Ñ)ˆFÜ H‰HÐ(¨&°&Ô 9Ø J‰Jx 4¨°Ð"8Ñ8Õ 9ð    :ð
ÐrIcó&—tjdk(rytjdk(rNdD]H}tjjd|›d«}tjj    |«sŒF|cSyt dtj›d«‚)    z›Return the name of the SWIG executable.  On Unix, this is
        just "swig" -- it should be in the PATH.  Tries a bit harder on
        Windows.
        ÚposixrAr`)z1.3z1.2z1.1zc:\swigzswig.exez;I don't know how to find (much less run) SWIG on platform 'ú')rUr~rVrWÚisfiler)rFÚversÚfns   rGrózbuild_ext.find_swig’s‚€ô
7‰7gÒ ØÜ W‰W˜Š_ð.ò "Ü—W‘W—\‘\ H¨T¨FÐ"3°ZÓ@Ü—7‘7—>‘> "Õ%Ø’Ið "ð
"ä(ØMÌbÏgÉgÈYÐVWÐXóð rIcó—|j|«}|jd«}|j|d«}|jsMt    j
j |dd|gzŽ}tj
j |j|«Sdj |dd«}|jd«}tj
j|j|««}tj
j ||«S)z¡Returns the path of the filename for a given extension.
 
        The file is located in `build_lib` or directly in the package
        (inplace option).
        rLrñNrÚbuild_py) Úget_ext_fullnamerwÚget_ext_filenamer rUrVrWr5r“ÚabspathÚget_package_dir)rFr·ÚfullnameÚmodpathÚfilenamer8rÚ package_dirs        rGrÁzbuild_ext.get_ext_fullpathªsрð ×(Ñ(¨Ó2ˆØ—.‘. Ó%ˆØ×(Ñ(¨°©Ó5ˆà|Š|ô—w‘w—|‘| W¨S¨b \°X°JÑ%>Ð?ˆHÜ—7‘7—<‘< §¡°Ó9Ð 9ð—(‘(˜7 1 R˜=Ó)ˆØ×-Ñ-¨jÓ9ˆÜ—g‘g—o‘o h×&>Ñ&>¸wÓ&GÓHˆ ôw‰w|‰|˜K¨Ó2Ð2rIcóB—|j€|S|jdz|zS)zSReturns the fullname of a given extension name.
 
        Adds the `package.` prefixrL)r8)rFr·s  rGrzbuild_ext.get_ext_fullnameÅs'€ð <‰<Р؈Oà—<‘< #Ñ%¨Ñ0Ð 0rIcó~—ddlm}|jd«}|d«}tjj
|Ž|zS)z¦Convert the name of an extension (eg. "foo.bar") into the name
        of the file from which it will be loaded (eg. "foo/bar.so", or
        "foo\bar.pyd").
        r©rQrLÚ
EXT_SUFFIX)rXrQrwrUrVrW)rFr·rQrìÚ
ext_suffixs     rGrzbuild_ext.get_ext_filenameÎs7€õ
    /à—>‘> #Ó&ˆÙ# LÓ1ˆ
܏w‰w|‰|˜XÐ&¨Ñ3Ð3rIcóJ—|j|«}    |jd«d|z}d|z}||j
vr|j
j |«|j
S#t$r6d|jd«jdd«j    d«z}YŒxwxYw)aReturn the list of symbols that a shared extension has to
        export.  This either uses 'ext.export_symbols' or, if it's not
        provided, "PyInit_" + module_name.  Only relevant on Windows, where
        the .pyd file (DLL) must export the module "PyInit_" function.
        ÚasciiÚ_ÚU_Úpunycodeó-ó_ÚPyInit)Ú_get_module_name_for_symbolÚencodeÚUnicodeEncodeErrorÚreplaceÚdecoderàr{)rFr¶r~r†Ú initfunc_names     rGrëzbuild_ext.get_export_symbolsÙs¨€ð ×/Ñ/°Ó4ˆð     ð K‰K˜Ô  ð˜4‘ZˆFà  6Ñ)ˆ Ø  × 2Ñ 2Ñ 2Ø × Ñ × %Ñ % mÔ 4Ø×!Ñ!Ð!øô"ò    XؘDŸK™K¨
Ó3×;Ñ;¸DÀ$ÓG×NÑNÈwÓWÑWŠFð    Xús“A#Á#<B"Â!B"cóx—|jjd«}|ddk(rt|«dk\r|dS|dS)NrLrñÚ__init__réþÿÿÿ)r~rwr¬)rFr¶Úpartss   rGrz%build_ext._get_module_name_for_symbolîs@€ð—‘—‘˜sÓ#ˆØ ‰9˜
Ò "¤s¨5£z°Q¢Ø˜‘9РؐR‰yÐrIcó\—tjdk(rt«swddlm}t |j |«sOd}|jr|dz}|tjdz    tjdz    dzfz}|j|gzS|jSdd    l
m }d
}|d «r`ttd «rd }nMtjdk(s
t«rd }n-dtjvr|d«dk7rd }n |d«dk(rd }|r|d«}|jd|zgzS|jS)zÓReturn the list of libraries to link against when building a
        shared extension.  On most platforms, this is just 'ext.libraries';
        on Windows, we add the Python library (eg. python20.dll).
        rdr)Ú MSVCCompilerz
python%d%dÚ_déééÿrFrKÚgetandroidapilevelTrhÚ_PYTHON_HOST_PLATFORMÚANDROID_API_LEVELrÚMACHDEPÚ    LDVERSIONrj)rSrTrÚ _msvccompilerr$rur@r)Ú
hexversionr<rXrQÚhasattrrUÚenviron)rFr¶r$ÚtemplateÚ    pythonlibrQÚlink_libpythonÚ    ldversions        rGrêzbuild_ext.get_libraries÷s€ô <‰<˜7Ò "¬8¬:Ý 4ä˜dŸm™m¨\Ô:Ø'Ø—:’:Ø'¨$™HØ$Ü—N‘N bÑ(Ü—^‘^ rÑ)¨TÑ1ð(ñ    ð —}‘}¨     {Ñ2Ð2ð<}‰}Ðõ) 3à"ˆNÙÐ0Ô1äœ3Р4Ô5Ø%)‘NÜ—\‘\ XÒ-´´Ø%)‘NØ,´·
±
Ñ:á%Ð&9Ó:¸aÒ?Ø)-™Ù'¨    Ó2°hÒ>Ø)-˜áÙ*¨;Ó7    Ø—}‘}¨°9Ñ(<Ð'=Ñ=Ð=à}‰}ÐrI)ÚreturnÚNone)r·rvr6rv)r¶rr6z    list[str])$Ú__name__Ú
__module__Ú __qualname__Ú descriptionrUrxÚsep_byrÚ user_optionsr1Ú__annotations__r r2rHÚ staticmethodr[rŒr r»r¿rÃrrÅrÆÚ
contextlibÚcontextmanagerrÐrÎrärórÁrrrërrê©rIrGrr&se…ØL€Kð(  §
¡
˜|¨2Ð .€FàGØQà Ø ð Ù%›Ð(¨ð +ð    
ð     
ð Ø Ø <¸vÑ Eð    
ð
    <Ø<Ø@à Ø Ø <¸vÑ Eð    
ð
    SØTØAØLØ7Ø;ØGØAØ6Ø=ðK&€LòP,€OÐ(óð
˜$Р:¸NÐKðW€LÐSóòð0ñ5óð5ó0ILóVD óLV òpò    Ló,ò!ò**ð
×ÑñFóðFóO
òb6òpó03ó61ó    4ó"ò*ô5rIr)*Ú__doc__Ú
__future__rr@rUÚrerSÚcollections.abcrÚdistutils._logrÚsiterÚtypingrÚ    _modifiedr    Ú    ccompilerr
r Úcorer Úerrorsr rrrrrrõrrXrrrÚutilrrrrår®rrBrIrGú<module>rOsmðñõ #ãÛ    Û    Û
Ý$ÝÝÝå#ß4Ý÷÷õ"ßUÑUß:Ñ:ðB—J‘JÐUÓVÐôF õF rI