ó
    Eñi¤  ã                  ó  • S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	J
r
  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSKJrJrJrJrJrJr  SSKJr  SSKJ r J!r!J"r"  SSK#J$r$J%r%J&r&  \RN                  " S5      r( " S S\5      r)g)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                  ó†  • \ rS rSr% SrS\R                   S3rSSSSS	\" 5        S
34SSSS\-   4SSSSSS\-   4SSSSSSSSSS/r	/ SQr
S \S!'   S"S#S$\4/rS%\S&'   S' r\S( 5       rS<S) jrS<S* jrS<S+ jrS, rS- rS<S. jrS/ rS0 r\R4                  S1 5       rS<S2 jrS3 rS4 rS=S5 jrS=S6 jr S=S7 jr!S>S8 jr"S9 r#S>S: jr$S;r%g#)?Ú	build_exté&   z8build 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)zdefine=ÚDzC preprocessor macros to define)zundef=Ú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)zrpath=Ú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=Úczspecify the compiler type)z	parallel=Újznumber of parallel build jobs)úswig-cppNz)make SWIG create C++ files (default is C))z
swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)ÚuserNz#add user include, library and rpath)r!   r*   r,   r0   r1   zClassVar[list[str]]Úboolean_optionszhelp-compilerNzlist available compilerszAClassVar[list[tuple[str, str | None, str, Callable[[], object]]]]Úhelp_optionsc                ó*  • S U l         S U l        S U l        S U l        SU l        S U l        S U l        S U l        S U l        S U l	        S U l
        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        g )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_optsr1   Úparallel©Úselfs    Úd/home/mande/repo/quber/.venv/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.pyÚinitialize_optionsÚbuild_ext.initialize_optionsp   s˜   € ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒà ˆÔØˆŒØˆŒ
ØˆŒØ ˆÔØˆŒ
Ø ˆÔØˆŒ
ØˆŒ
ØˆŒØˆŒ	ØˆŒØˆŒØˆŒ	Øˆ�ó    c              #  ó<  #   • U R                  S5      (       d  gU R                  (       a  Sv •  g[        R                  S:X  aD  U R                  S5      nU R                  S5      n[        R
                  R                  X5      v •  gU R                  S5      v •  g7f)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      rH   Ú_python_lib_dirÚbuild_ext._python_lib_dirˆ   s�   é € ð ×'Ñ'Ð(:×;Ñ;Øà×!×!ØŠIØä�<‰<˜5Ó ð &×4Ñ4°VÓ<ˆMØ×.Ñ.¨|Ó<ˆGÜ—'‘'—,‘,˜}Ó6Ó6ð ×*Ñ*¨8Ó4Ó4ùs   ‚BBc           
     óÆ  • SSK Jn  U R                  SSSSSSS	S
5        U R                  c  U R                  R
                  U l        U R                  R                  U l        UR                  5       nUR                  SS9nU R                  c$  U R                  R                  =(       d    / U l	        [        U R                  [        5      (       a.  U R                  R                  [        R                  5      U l	        [        R                   [        R"                  :w  aG  U R                  R%                  [        R&                  R)                  [        R                   S5      5        U R                  R+                  UR                  [        R&                  R                  5      5        X2:w  aB  U R                  R+                  UR                  [        R&                  R                  5      5        U R-                  S5        U R-                  S5        U R.                  c  / U l        U R0                  c  / U l        OM[        U R0                  [        5      (       a.  U R0                  R                  [        R                  5      U l        U R2                  c  / U l        OM[        U R2                  [        5      (       a.  U R2                  R                  [        R                  5      U l        [        R4                  S:X  Ga*  [7        5       (       Gd  U R0                  R%                  [        R&                  R)                  [        R                   S5      5        [        R"                  [        R8                  :w  aG  U R0                  R%                  [        R&                  R)                  [        R"                  S5      5        U R:                  (       a0  [        R&                  R)                  U R<                  S5      U l        O/[        R&                  R)                  U R<                  S5      U l        U R                  R%                  [        R&                  R?                  [A        5       5      5        U R0                  R%                  [        R"                  5        U RB                  S:X  a  SnOU RB                  SS  n[        R&                  R)                  [        R                   S5      nU(       a  [        R&                  R)                  XT5      nU R0                  R%                  U5        [        RD                  S S S:X  a�  URF                  (       dU  U R0                  R%                  [        R&                  R)                  [        R8                  SS[I        5       -   S5      5        OU R0                  R%                  S5        U R0                  R+                  U RK                  U5      5        U RL                  (       a4  U RL                  R                  S5      nU Vs/ s H  owS4PM     snU l&        U RN                  (       a   U RN                  R                  S5      U l'        U RP                  c  / U l(        O U RP                  R                  S5      U l(        U RR                  (       aá  [        R&                  R)                  [T        S5      n[        R&                  R)                  [T        S5      n	[        R&                  RW                  U5      (       a  U R                  R%                  U5        [        R&                  RW                  U	5      (       a6  U R0                  R%                  U	5        U R2                  R%                  U	5        [        U RX                  [        5      (       a   [[        U RX                  5      U l,        g g s  snf ! [\         a    [_        S 5      ef = f)!Nr   )rZ   Úbuild)r6   r6   )r8   r8   )rA   rA   )r*   r*   )r,   r,   )rE   rE   )r7   r7   T)Úplat_specificÚincluder=   r@   ÚntÚlibsÚDebugÚReleaseÚwin32é   ÚPCbuildé   ÚcygwinÚlibÚpythonÚconfigrN   Ú,Ú1Ú zparallel should be an integer)0Ú	distutilsrZ   Úset_undefined_optionsr9   ÚdistributionÚext_packageÚext_modulesr5   Úget_python_incr:   Ú
isinstanceÚstrÚsplitrW   ÚpathseprU   Úexec_prefixÚbase_exec_prefixÚappendrX   rY   ÚextendÚensure_string_listr=   r>   r?   Únamer   Úprefixr*   r8   Údirnamer   r7   rV   rT   r   r]   r;   r<   rD   r1   r   ÚisdirrE   ÚintÚ
ValueErrorr   )
rG   rZ   Ú
py_includeÚplat_py_includeÚsuffixÚnew_libÚdefinesÚsymbolÚuser_includeÚuser_libs
             rH   Úfinalize_optionsÚbuild_ext.finalize_options¡   sX  € Ý'à×"Ñ"ØØ&Ø(Ø$ØØØ$Ø&ô		
ð �<‰<ÑØ×,Ñ,×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ØÓ(Ø×Ñ×$Ñ$ _×%:Ñ%:¼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>Ó?²w¨V C›=±wÑ?ˆ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   Ø_Þ)_
 ß
_ c                óà  • U R                   (       d  g U R                  R                  5       (       ah  U R                  S5      nU R                  R                  UR                  5       =(       d    / 5        U R                  R                  UR                  5        [        U R                  U R                  U R                  S9U l        [        U R                  5        [        R                   S:X  a=  U R"                  [%        5       :w  a%  U R                  R'                  U R"                  5        [        R                   S:X  a+  [)        5       (       a  U R                  R+                  SS5        U R,                  b%  U R                  R/                  U R,                  5        U R0                  b0  U R0                   H   u  p#U R                  R+                  X#5        M"     U R2                  b.  U R2                   H  nU R                  R5                  U5        M      U R                  b%  U R                  R7                  U R                  5        U R                  b%  U R                  R9                  U R                  5        U R:                  b%  U R                  R=                  U R:                  5        U R>                  b%  U R                  RA                  U R>                  5        U RC                  5         g )NÚ
build_clib)rA   Úverboser,   rc   ÚPy_GIL_DISABLEDrp   )"r5   rt   Úhas_c_librariesÚget_finalized_commandr=   r   Úget_library_namesr>   r~   r’   r
   rA   r“   r,   r   rW   r�   r7   r   Ú
initializer   Údefine_macror:   Úset_include_dirsr;   r<   Úundefine_macroÚset_librariesÚset_library_dirsr?   Úset_runtime_library_dirsr@   Úset_link_objectsÚbuild_extensions)rG   r’   r�   ÚvalueÚmacros        rH   ÚrunÚbuild_ext.run,  s  € ð ��Øð
 ×Ñ×,Ñ,×.Ñ.Ø×3Ñ3°LÓAˆJØ�N‰N×!Ñ! *×">Ñ">Ó"@×"FÀBÔGØ×Ñ×$Ñ$ Z×%:Ñ%:Ô;ô %Ø—]‘]Ø—L‘LØ—*‘*ñ
ˆŒô
 	˜4Ÿ=™=Ô)ô �7‰7�d‹?˜tŸ~™~´³Ó?Ø�M‰M×$Ñ$ T§^¡^Ô4ô
 �7‰7�d‹?œ×0Ñ0Ø�M‰M×&Ñ&Ð'8¸#Ô>ð ×ÑÑ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=Ø�;‰;Ñ"à#Ÿ{œ{‘�Ø—‘×*Ñ*¨4Ö7ñ  +à�:‰:Ñ!ØŸœ�Ø—‘×,Ñ,¨UÖ3ñ $à�>‰>Ñ%Ø�M‰M×'Ñ'¨¯©Ô7Ø×ÑÑ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=Ø�:‰:Ñ!Ø�M‰M×2Ñ2°4·:±:Ô>Ø×ÑÑ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=ð 	×ÑÕrK   c                ó6  • [        U[        5      (       d  [        S5      e[        U5       GHé  u  p#[        U[        5      (       a  M  [        U[
        5      (       a  [        U5      S:w  a  [        S5      eUu  pE[        R                  " SU5        [        U[        5      (       a  [        R                  U5      (       d  [        S5      e[        U[        5      (       d  [        S5      e[	        XES   5      nS H%  nUR                  U5      nUc  M  [        X6U5        M'     UR                  S
5      Ul        SU;   a  [        R                  " S5        UR                  S5      nU(       a¡  / Ul        / Ul        U H�  n	[        U	[
        5      (       a  [        U	5      S;   d  [        S5      e[        U	5      S:X  a   UR"                  R%                  U	S   5        Ma  [        U	5      S:X  d  Mr  UR                   R%                  U	5        M�     X1U'   GMì     g	)at  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 instancesr   zMeach 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)r:   r>   r=   Úextra_objectsÚextra_compile_argsÚextra_link_argsNr?   Údef_filez9'def_file' element of build info dict no longer supportedÚmacros)é   r   z9'macros' element of build info dict must be 1- or 2-tupler¬   r   )rx   Úlistr   Ú	enumerater   ÚtupleÚlenr   Úwarningry   Úextension_name_reÚmatchÚdictÚgetÚsetattrÚruntime_library_dirsÚdefine_macrosÚundef_macrosr~   )
rG   r5   r"   ÚextÚext_nameÚ
build_infoÚkeyÚvalr«   r¢   s
             rH   Úcheck_extensions_listÚbuild_ext.check_extensions_listq  sé  € ô ˜*¤d×+Ñ+Ü%ØLóð ô   
×+‰FˆAÜ˜#œy×)Ñ)Ùô ˜c¤5×)Ñ)¬S°«X¸«]Ü)ð4óð ð
 $'Ñ ˆHä�KŠKð:ð ô	ô ˜x¬×-Ñ-Ô2C×2IÑ2IÈ(×2SÑ2SÜ)ð<óð ô
 ˜j¬$×/Ñ/Ü)ð8óð ô ˜H°Ñ&;Ó<ˆCó�ð !—n‘n SÓ)�Ø“?Ü˜C cÖ*ñð (2§~¡~°gÓ'>ˆCÔ$Ø˜ZÓ'Ü—’ÐWÔXð  —^‘^ HÓ-ˆFÞØ$&�Ô!Ø#%�Ô Û#�EÜ& u¬e×4Ñ4¼¸U»ÀvÓ9MÜ1ØWóð ô ˜5“z Q“Ø×(Ñ(×/Ñ/°°a±Ö9Ü˜U› q�Ø×)Ñ)×0Ñ0°Ö7ñ $ð  �qŒMòO ,rK   c                óœ   • U R                  U R                  5        / nU R                   H  nUR                  UR                  5        M      U$ ©N)r¿   r5   r   r¦   )rG   Ú	filenamesrº   s      rH   Úget_source_filesÚbuild_ext.get_source_filesÉ  sA   € Ø×"Ñ" 4§?¡?Ô3Øˆ	ð —?”?ˆCØ×Ñ˜SŸ[™[Ö)ñ #àÐrK   c                ó¬   • U R                  U R                  5        U R                   Vs/ s H  oR                  UR                  5      PM     sn$ s  snf rÂ   )r¿   r5   Úget_ext_fullpathr�   ©rG   rº   s     rH   Úget_outputsÚbuild_ext.get_outputsÒ  sB   € ð 	×"Ñ" 4§?¡?Ô3ð
 <@¿?º?ÓKº?°C×%Ñ% c§h¡hÖ/¹?ÑKÐKùÒKs   ª$Ac                óž   • U R                  U R                  5        U R                  (       a  U R                  5         g U R	                  5         g rÂ   )r¿   r5   rE   Ú_build_extensions_parallelÚ_build_extensions_serialrF   s    rH   r    Úbuild_ext.build_extensionsÝ  s3   € à×"Ñ" 4§?¡?Ô3Ø�=�=Ø×+Ñ+Õ-à×)Ñ)Õ+rK   c                ó(  • U R                   nU R                   SL a  [        R                  " 5       n SSKJn  Uc  U R                  5         g W" US9 nU R                   Vs/ s H  oCR                  U R                  U5      PM      nn[        U R                  U5       H/  u  pFU R                  U5         UR                  5         S S S 5        M1     S S S 5        g ! [
         a    S n N°f = fs  snf ! , (       d  f       Mb  = f! , (       d  f       g = f)NTr   )ÚThreadPoolExecutor)Úmax_workers)rE   rW   Ú	cpu_countÚconcurrent.futuresrÐ   ÚImportErrorrÍ   r5   ÚsubmitÚbuild_extensionÚzipÚ_filter_build_errorsÚresult)rG   ÚworkersrÐ   Úexecutorrº   ÚfuturesÚfuts          rH   rÌ   Ú$build_ext._build_extensions_parallelå  så   € Ø—-‘-ˆØ�=‰=˜DÒ Ü—l’l“nˆGð	Ý=ð ‰?Ø×)Ñ)Ô+Øá¨GÒ4¸àFJÇoÂoóÚFU¸s—‘ × 4Ñ 4°cÖ:Áoð ð ô   §¡°Ö9‘�Ø×.Ñ.¨sÕ3Ø—J‘J”L÷ 4Ñ3ñ :÷	 5Ð4øô ó 	ØŠGð	üò÷ 4Ö3ú÷ 5Õ4úsG   ²C ÁDÁ!%C,Â.DÂ4C1ÃDÃC)Ã(C)Ã,DÃ1
D Ã;DÄ
Dc                ó¤   • U R                    H.  nU R                  U5         U R                  U5        S S S 5        M0     g ! , (       d  f       MB  = frÂ   )r5   rØ   rÖ   rÈ   s     rH   rÍ   Ú"build_ext._build_extensions_serialú  s;   € Ø—?”?ˆCØ×*Ñ*¨3Õ/Ø×$Ñ$ SÔ)÷ 0Ñ/ò #ß/Ö/ús   ¡A Á 
A	c              #  óÀ   #   •  S v •  g ! [         [        [        4 a=  nUR                  (       d  e U R	                  SUR
                   SU 35         S nAg S nAff = f7f)Nzbuilding extension "z
" failed: )r   r   r   ÚoptionalÚwarnr�   )rG   rº   Úes      rH   rØ   Úbuild_ext._filter_build_errorsÿ  sQ   é € ð	FÜøÜ¤´Ð=ó 	FØ—<—<ØØ�I‰IÐ,¨S¯X©X¨J°jÀÀÐD×EÑEûð	Füs*   ‚A„	 ˆA‰Až3AÁAÁAÁAc                óÀ  • UR                   nUb  [        U[        [        45      (       d  [	        SUR
                   S35      e[        U5      nU R                  UR
                  5      nX!R                  -   nU R                  (       d3  [        XCS5      (       d"  [        R                  " SUR
                  5        g [        R                  " SUR
                  5        U R                  X!5      nUR                  =(       d    / nUR                   S S  nUR"                   H  nUR%                  U45        M     U R&                  R)                  UU R*                  UUR,                  U R                  UUR                  S9nUS S  U l        UR0                  (       a  UR3                  UR0                  5        UR4                  =(       d    / nUR6                  =(       d    U R&                  R9                  U5      n	U R&                  R;                  UUU R=                  U5      UR>                  UR@                  UU RC                  U5      U R                  U R*                  U	S9
  g )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)zbuilding '%s' extension)Ú
output_dirr«   r:   r*   Úextra_postargsÚdepends)r=   r>   r·   ré   Úexport_symbolsr*   r8   Útarget_lang)"r¦   rx   r­   r¯   r   r�   ÚsortedrÇ   rê   r,   r	   r   r*   ÚinfoÚswig_sourcesr¨   r¸   r¹   r~   rA   Úcompiler8   r:   Ú_built_objectsr§   r   r©   ÚlanguageÚdetect_languageÚlink_shared_objectÚget_librariesr>   r·   Úget_export_symbols)
rG   rº   r¦   Úext_pathrê   Ú
extra_argsr«   r<   Úobjectsrò   s
             rH   rÖ   Úbuild_ext.build_extension  s÷  € Ø—+‘+ˆØ‰?¤*¨W´t¼U°m×"DÑ"DÜ%Ø6°s·x±x°jð A-ð -óð ô ˜“/ˆà×(Ñ(¨¯©Ó2ˆØŸK™KÑ'ˆØ—
—
œk¨'¸W×EÑEÜ�IŠIÐ<¸c¿h¹hÔGØä�HŠHÐ.°·±Ô9ð
 ×#Ñ# GÓ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Ø—*‘*Ø—‘Ø ð 	)ò 	
rK   c                óV  • / n/ n0 nU R                   (       a  [        R                  " S5        U R                   (       d   SU R                  ;   d  SUR                  ;   a  SnOSnU Hl  n[        R
                  R                  U5      u  p‰U	S:X  a1  UR                  US-   U-   5        UR                  U5        US   XW'   M[  UR                  U5        Mn     U(       d  U$ U R                  =(       d    U R                  5       n
U
S/nUR                  U R                  5        U R                   (       a  UR                  S5        U R                  (       d  UR                  UR                  5        U H4  nXW   n[        R                  " S	X|5        U R                  US
XÇ/-   5        M6     U$ )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-pythonzswigging %s to %sz-o)rC   r   r±   rD   rW   rX   Úsplitextr~   rB   Ú	find_swigr   rî   Úspawn)rG   r¦   Ú	extensionÚnew_sourcesrï   Úswig_targetsÚ
target_extÚsourcerP   rº   rB   Úswig_cmdÚtargets                rH   rï   Úbuild_ext.swig_sourcesY  sc  € ð ˆØˆØˆð �=�=Ü�KŠKÐIÔJð �M�MØ˜$Ÿ.™.Ó(Ø˜)×-Ñ-Ó-à‰JàˆJãˆFÜŸ'™'×*Ñ*¨6Ó2‰KˆTØ�d‹{Ø×"Ñ" 4¨'¡>°JÑ#>Ô?Ø×#Ñ# FÔ+Ø'2°2¡�Ó$à×"Ñ" 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ñ #ð
 ÐrK   c                ó8  • [         R                  S:X  a  g[         R                  S:X  aU  S HN  n[         R                  R                  SU 3S5      n[         R                  R	                  U5      (       d  ML  Us  $    g[        S[         R                   S35      e)	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.
ÚposixrB   rc   )z1.3z1.2z1.1zc:\swigzswig.exez;I don't know how to find (much less run) SWIG on platform 'Ú')rW   r�   rX   rY   Úisfiler   )rG   ÚversÚfns      rH   rÿ   Úbuild_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óð rK   c                ó  • U R                  U5      nUR                  S5      nU R                  US   5      nU R                  (       dN  [        R
                  R                  " USS U/-   6 n[        R
                  R                  U R                  U5      $ SR                  USS 5      nU R                  S5      n[        R
                  R                  UR                  U5      5      n[        R
                  R                  Xt5      $ )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).
rN   rý   Nr   Úbuild_py)Úget_ext_fullnamerz   Úget_ext_filenamer!   rW   rX   rY   r6   r–   ÚabspathÚget_package_dir)rG   r»   ÚfullnameÚmodpathÚfilenamer9   r  Úpackage_dirs           rH   rÇ   Úbuild_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Ð2rK   c                óD   • U R                   c  U$ U R                   S-   U-   $ )zKReturns the fullname of a given extension name.

Adds the `package.` prefixrN   )r9   )rG   r»   s     rH   r  Úbuild_ext.get_ext_fullnameÄ  s'   € ð �<‰<ÑØˆOà—<‘< #Ñ%¨Ñ0Ð0rK   c                ó€   • SSK Jn  UR                  S5      nU" S5      n[        R                  R
                  " U6 U-   $ )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   ©rS   rN   Ú
EXT_SUFFIX)rZ   rS   rz   rW   rX   rY   )rG   r»   rS   r÷   Ú
ext_suffixs        rH   r  Úbuild_ext.get_ext_filenameÍ  s7   € õ
 	/à—>‘> #Ó&ˆÙ# LÓ1ˆ
Ü�w‰w�|Š|˜XÐ&¨Ñ3Ð3rK   c                óN  • U R                  U5      n UR                  S5        SU-   nSU-   nXAR
                  ;  a  UR
                  R                  U5        UR
                  $ ! [         a6    SUR                  S5      R                  SS5      R	                  S5      -   n Nzf = f)züReturn 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~   )rG   rº   r�   r‰   Úinitfunc_names        rH   rö   Úbuild_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                ó|   • UR                   R                  S5      nUS   S:X  a  [        U5      S:¼  a  US   $ US   $ )NrN   rý   Ú__init__r   éþÿÿÿ)r�   rz   r°   )rG   rº   Úpartss      rH   r*  Ú%build_ext._get_module_name_for_symbolí  s@   € ð —‘—‘˜sÓ#ˆØ�‰9˜
Ó"¤s¨5£z°Q£Ø˜‘9ÐØ�R‰yÐrK   c                ó°  • [         R                  S:X  a‘  [        5       (       d‚  SSKJn  [        U R                  U5      (       dT  SnU R                  (       a  US-   nU[         R                  S-	  [         R                  S-	  S-  4-  nUR                  U/-   $  UR                  $ SS	K
Jn  S
nU" S5      (       ao  [        [         S5      (       a  SnOW[         R                  S:X  d  [        5       (       a  SnO1S[        R                  ;   a  U" S5      S:w  a  SnOU" S5      S:X  a  SnU(       a  U" S5      nUR                  SU-   /-   $ UR                  $ )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).
rg   r   )ÚMSVCCompilerz
python%d%dÚ_dé   é   éÿ   r  FrM   ÚgetandroidapilevelTrk   Ú_PYTHON_HOST_PLATFORMÚANDROID_API_LEVELr   ÚMACHDEPÚ	LDVERSIONrm   )rU   rV   r   Ú_msvccompilerr7  rx   rA   r*   Ú
hexversionr=   rZ   rS   ÚhasattrrW   Úenviron)rG   rº   r7  ÚtemplateÚ	pythonlibrS   Úlink_libpythonÚ	ldversions           rH   rõ   Úbuild_ext.get_librariesö  s/  € ô �<‰<˜7Ó"¬8¯:©:Ý4ä˜dŸm™m¨\×:Ñ:Ø'�Ø—:—:Ø'¨$™�HØ$Ü—N‘N bÑ(Ü—^‘^ rÑ)¨TÑ1ð(ñ �	ð —}‘}¨	 {Ñ2Ð2ð ;ðP �}‰}Ðõ) 3à"ˆNÙÐ0×1Ñ1äœ3Ð 4×5Ñ5Ø%)‘NÜ—\‘\ XÓ-´·±Ø%)‘NØ,´·
±
Ó:á%Ð&9Ó:¸aÓ?Ø)-™Ù'¨	Ó2°hÓ>Ø)-˜æÙ*¨;Ó7�	Ø—}‘}¨°9Ñ(<Ð'=Ñ=Ð=à�}‰}ÐrK   )rñ   r6   r8   rA   r*   r;   r5   r,   r:   r!   r=   r>   r@   r9   rE   r7   r?   rB   rC   rD   r<   r1   )ÚreturnÚNone)r»   ry   rJ  ry   )rº   r   rJ  z	list[str])&Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚdescriptionrW   r{   Úsep_byr   Úuser_optionsr2   Ú__annotations__r   r3   rI   Ústaticmethodr]   r�   r£   r¿   rÄ   rÉ   r    rÌ   rÍ   Ú
contextlibÚcontextmanagerrØ   rÖ   rï   rÿ   rÇ   r  r  rö   r*  rõ   Ú__static_attributes__© rK   rH   r   r   &   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ô0ILôVC ôJV òpò	Lô,ò!ò**ð
 ×ÑñFó ðFôO
òb6òpô03ô61ô	4ô"ò*÷5rK   r   )*Ú__doc__Ú
__future__r   rU  rW   ÚrerU   Úcollections.abcr   Údistutils._logr   Úsiter   Útypingr   Ú	_modifiedr	   Ú	ccompilerr
   r   Úcorer   Úerrorsr   r   r   r   r   r   r  r   rZ   r   r   r   Úutilr   r   r   rð   r²   r   rX  rK   rH   Ú<module>re     sk   ðñõ #ã Û 	Û 	Û 
Ý $Ý Ý Ý å #ß 4Ý ÷÷ õ "ß UÑ Uß :Ñ :ð —J’JÐUÓVÐ ôE�õ ErK   