§
    WŠtj²  ã                  ó  — d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZmZmZmZmZmZ ddlmZ ddlm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z&  ej'        d¦  «        Z( G d„ de¦  «        Z)dS )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  — e Zd ZU dZdej        › d�Zddddd e¦   «         › d	�fd
dddez   fddddddez   fddddddddddgZg d¢Z	de
d <   d!d"d#efgZd$e
d%<   d&„ Zed'„ ¦   «         ZdAd*„ZdAd+„ZdAd,„Zd-„ Zd.„ ZdAd/„Zd0„ Zd1„ Zej        d2„ ¦   «         ZdAd3„Zd4„ Zd5„ ZdBd8„ZdBd9„ZdBd:„Z dCd>„Z!d?„ Z"dCd@„Z#d"S )DÚ	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)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+   r/   r0   zClassVar[list[str]]Úboolean_optionszhelp-compilerNzlist 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 | _        d S )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    úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.pyÚinitialize_optionszbuild_ext.initialize_optionsp   sœ   € ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒà ˆÔØˆŒØˆŒ
ØˆŒØ ˆÔØˆŒ
Ø ˆÔØˆŒ
ØˆŒ
ØˆŒØˆŒ	ØˆŒØˆŒØˆŒ	ØˆŒˆˆó    c              #  ó<  K  — |                       d¦  «        sdS | j        rdV — dS t          j        dk    rN|                       d¦  «        }|                       d¦  «        }t          j                             ||¦  «        V — dS |                       d¦  «        V — dS )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_dirzbuild_ext._python_lib_dirˆ   s¶   è è € ð ×'Ò'Ð(:Ñ;Ô;ð 	ØˆFàÔ!ð 	ØˆIˆIˆIØˆFåŒ<˜5Ò Ð ð &×4Ò4°VÑ<Ô<ˆMØ×.Ò.¨|Ñ<Ô<ˆGÝ”'—,’,˜}¨gÑ6Ô6Ð6Ð6Ð6Ð6Ð6ð ×*Ò*¨8Ñ4Ô4Ð4Ð4Ð4Ð4Ð4rI   ÚreturnÚNonec           
     óþ  — ddl m} |                      ddddddd	d
¦  «         | j        €| j        j        | _        | j        j        | _        |                     ¦   «         }|                     d¬¦  «        }| j	        €| j        j	        pg | _	        t          | j	        t          ¦  «        r)| j	                             t          j        ¦  «        | _	        t          j        t          j        k    rB| j	                             t          j                             t          j        d¦  «        ¦  «         | j	                             |                     t          j        j        ¦  «        ¦  «         ||k    r<| j	                             |                     t          j        j        ¦  «        ¦  «         |                      d¦  «         |                      d¦  «         | j        €g | _        | j        €g | _        nCt          | j        t          ¦  «        r)| j                             t          j        ¦  «        | _        | j        €g | _        nCt          | j        t          ¦  «        r)| j                             t          j        ¦  «        | _        t          j        dk    �rót7          ¦   «         �sä| j                             t          j                             t          j        d¦  «        ¦  «         t          j        t          j        k    rB| j                             t          j                             t          j        d¦  «        ¦  «         | j        r+t          j                             | j        d¦  «        | _        n*t          j                             | j        d¦  «        | _        | j	                             t          j                             tA          ¦   «         ¦  «        ¦  «         | j                             t          j        ¦  «         | j!        dk    rd}n| j!        dd …         }t          j                             t          j        d¦  «        }|r t          j                             ||¦  «        }| j                             |¦  «         t          j"        d d…         dk    ru|j#        sT| j                             t          j                             t          j        ddtI          ¦   «         z   d¦  «        ¦  «         n| j                             d¦  «         | j                             |  %                    |¦  «        ¦  «         | j&        r+| j&                             d¦  «        }d„ |D ¦   «         | _&        | j'        r| j'                             d¦  «        | _'        | j(        €g | _(        n| j(                             d¦  «        | _(        | j)        rÖt          j                             tT          d¦  «        }t          j                             tT          d¦  «        }t          j         +                    |¦  «        r| j	                             |¦  «         t          j         +                    |¦  «        r4| j                             |¦  «         | j                             |¦  «         t          | j,        t          ¦  «        r9	 t[          | j,        ¦  «        | _,        d S # t\          $ r t_          d ¦  «        ‚w xY wd S )!Nr   )rX   Úbuild)r5   r5   )r7   r7   )r@   r@   )r)   r)   )r+   r+   )rD   rD   )r6   r6   T)Úplat_specificÚincluder<   r?   ÚntÚlibsÚDebugÚReleaseÚwin32é   ÚPCbuildé   ÚcygwinÚlibÚpythonÚconfigrL   ú,c                ó   — g | ]}|d f‘ŒS )Ú1© )Ú.0Úsymbols     rG   ú
<listcomp>z.build_ext.finalize_options.<locals>.<listcomp>  s   € Ð?Ð?Ð?¨V˜F C˜=Ð?Ð?Ð?rI   ú zparallel 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ÚappendrV   rW   ÚextendÚensure_string_listr<   r=   r>   Únamer   Úprefixr)   r7   Údirnamer   r6   rT   rR   r   r[   r:   r;   rC   r0   r   ÚisdirrD   ÚintÚ
ValueErrorr   )	rF   rX   Ú
py_includeÚplat_py_includeÚsuffixÚnew_libÚdefinesÚuser_includeÚuser_libs	            rG   Úfinalize_optionszbuild_ext.finalize_options¡   så  € Ø'Ð'Ð'Ð'Ð'Ð'à×"Ò"ØØ&Ø(Ø$ØØØ$Ø&ñ		
ô 		
ð 		
ð Œ<ÐØÔ,Ô8ˆDŒLàÔ+Ô7ˆŒð ×-Ò-Ñ/Ô/ˆ
Ø#×2Ò2ÀÐ2ÑFÔFˆØÔÐ$Ø $Ô 1Ô >Ð DÀ"ˆDÔÝ�dÔ'­Ñ-Ô-ð 	DØ $Ô 1× 7Ò 7½¼
Ñ CÔ CˆDÔõ Œ?�cÔ2Ò2Ð2ØÔ×$Ò$¥R¤W§\¢\µ#´/À9Ñ%MÔ%MÑNÔNÐNð 	Ô× Ò  ×!1Ò!1µ"´'´/Ñ!BÔ!BÑCÔCÐCØ˜jÒ(Ð(ØÔ×$Ò$ _×%:Ò%:½2¼7¼?Ñ%KÔ%KÑLÔLÐLà×Ò Ñ,Ô,Ð,Ø×Ò Ñ/Ô/Ð/ð Œ>Ð!ØˆDŒNØÔÐ$Ø "ˆDÔÐÝ˜Ô)­3Ñ/Ô/ð 	DØ $Ô 1× 7Ò 7½¼
Ñ CÔ CˆDÔàŒ:ÐØˆDŒJˆJÝ˜œ
¥CÑ(Ô(ð 	6Øœ×)Ò)­"¬*Ñ5Ô5ˆDŒJõ
 Œ7�dŠ?‰?¥8¡:¤:‰?ð Ô×$Ò$¥R¤W§\¢\µ#´/À6Ñ%JÔ%JÑKÔKÐKÝÔ#¥s¤zÒ1Ð1ØÔ!×(Ò(­¬¯ªµcÔ6JÈFÑ)SÔ)SÑTÔTÐTØŒzð KÝ"$¤'§,¢,¨t¬ÀÑ"HÔ"H�”�å"$¤'§,¢,¨t¬À	Ñ"JÔ"J�”ð Ô×$Ò$¥R¤W§_¢_Õ5JÑ5LÔ5LÑ%MÔ%MÑNÔNÐNØÔ×$Ò$¥SÔ%9Ñ:Ô:Ð:ð Œ~ Ò(Ð(Ø ��ð œ¨¨¨Ô+�Ý”g—l’l¥3¤?°IÑ>Ô>ˆGØð 8Ýœ'Ÿ,š, w°Ñ7Ô7�ØÔ×$Ò$ WÑ-Ô-Ð-õ Œ<˜˜˜Ô˜xÒ'Ð'ØÔ)ð 	.àÔ!×(Ò(Ý”G—L’LÝœ
 E¨8Õ6HÑ6JÔ6JÑ+JÈHñô ñô ð ð ð Ô!×(Ò(¨Ñ-Ô-Ð-àÔ× Ò  ×!5Ò!5°iÑ!@Ô!@ÑAÔAÐAð Œ;ð 	@Ø”k×'Ò'¨Ñ,Ô,ˆGØ?Ð?°wÐ?Ñ?Ô?ˆDŒKð
 Œ:ð 	/Øœ×)Ò)¨#Ñ.Ô.ˆDŒJàŒ>Ð!ØˆDŒNˆNà!œ^×1Ò1°#Ñ6Ô6ˆDŒNð Œ9ð 	,Ýœ7Ÿ<š<­	°9Ñ=Ô=ˆLÝ”w—|’|¥I¨uÑ5Ô5ˆHÝŒw�}Š}˜\Ñ*Ô*ð 7ØÔ!×(Ò(¨Ñ6Ô6Ð6ÝŒw�}Š}˜XÑ&Ô&ð ,ØÔ!×(Ò(¨Ñ2Ô2Ð2Ø”
×!Ò! (Ñ+Ô+Ð+å�d”m¥SÑ)Ô)ð 	LðLÝ # D¤MÑ 2Ô 2�”��øÝð Lð Lð LÝ*Ð+JÑKÔKÐKðLøøøð	Lð 	Ls   Û[  Û [:c                óØ  — | j         sd S | j                             ¦   «         rb|                      d¦  «        }| j                             |                     ¦   «         pg ¦  «         | j                             |j	        ¦  «         t          | j        | j        | j        ¬¦  «        | _        t          | j        ¦  «         t          j        dk    r6| j        t%          ¦   «         k    r| j                             | j        ¦  «         t          j        dk    r)t)          ¦   «         r| j                             dd¦  «         | j        �| j                             | j        ¦  «         | j        �(| j        D ] \  }}| j                             ||¦  «         Œ!| j        �$| j        D ]}| j                             |¦  «         Œ| j        �| j                             | j        ¦  «         | j        �| j                             | j        ¦  «         | j        �| j                             | j        ¦  «         | j        �| j                              | j        ¦  «         |  !                    ¦   «          d S )NÚ
build_clib)r@   Úverboser+   rb   ÚPy_GIL_DISABLEDrp   )"r4   rx   Úhas_c_librariesÚget_finalized_commandr<   rƒ   Úget_library_namesr=   r‚   r”   r
   r@   r•   r+   r   rU   r…   r6   r   Ú
initializer   Údefine_macror9   Úset_include_dirsr:   r;   Úundefine_macroÚset_librariesÚset_library_dirsr>   Úset_runtime_library_dirsr?   Úset_link_objectsÚbuild_extensions)rF   r”   r…   ÚvalueÚmacros        rG   Úrunzbuild_ext.run,  sJ  € ð Œð 	ØˆFð
 Ô×,Ò,Ñ.Ô.ð 	<Ø×3Ò3°LÑAÔAˆJØŒN×!Ò! *×">Ò">Ñ"@Ô"@Ð"FÀBÑGÔGÐGØÔ×$Ò$ ZÔ%:Ñ;Ô;Ð;õ %Ø”]Ø”LØ”*ð
ñ 
ô 
ˆŒõ
 	˜4œ=Ñ)Ô)Ð)õ Œ7�dŠ?ˆ?˜tœ~µ±´Ò?Ð?ØŒM×$Ò$ T¤^Ñ4Ô4Ð4õ
 Œ7�dŠ?ˆ?�Ñ0Ô0ˆ?ØŒM×&Ò&Ð'8¸#Ñ>Ô>Ð>ð ÔÐ(ØŒM×*Ò*¨4Ô+<Ñ=Ô=Ð=ØŒ;Ð"à#œ{ð 8ð 8‘��eØ”×*Ò*¨4°Ñ7Ô7Ð7Ð7ØŒ:Ð!Øœð 4ð 4�Ø”×,Ò,¨UÑ3Ô3Ð3Ð3ØŒ>Ð%ØŒM×'Ò'¨¬Ñ7Ô7Ð7ØÔÐ(ØŒM×*Ò*¨4Ô+<Ñ=Ô=Ð=ØŒ:Ð!ØŒM×2Ò2°4´:Ñ>Ô>Ð>ØÔÐ(ØŒM×*Ò*¨4Ô+<Ñ=Ô=Ð=ð 	×ÒÑÔÐÐÐrI   c                ó‚  — t          |t          ¦  «        st          d¦  «        ‚t          |¦  «        D �]	\  }}t          |t          ¦  «        rŒt          |t
          ¦  «        rt          |¦  «        dk    rt          d¦  «        ‚|\  }}t          j        d|¦  «         t          |t          ¦  «        rt                               |¦  «        st          d¦  «        ‚t          |t          ¦  «        st          d¦  «        ‚t	          ||d         ¦  «        }dD ]*}|                     |¦  «        }|�t          |||¦  «         Œ+|                     d
¦  «        |_        d|v rt          j        d¦  «         |                     d¦  «        }|r©g |_        g |_        |D ]˜}	t          |	t
          ¦  «        rt          |	¦  «        dv st          d¦  «        ‚t          |	¦  «        dk    r!|j                             |	d         ¦  «         Œkt          |	¦  «        dk    r|j                             |	¦  «         Œ™|||<   �Œd	S )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 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)r9   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   )r|   Úlistr   Ú	enumerater   ÚtupleÚlenr   Úwarningr}   Úextension_name_reÚmatchÚdictÚgetÚsetattrÚruntime_library_dirsÚdefine_macrosÚundef_macrosr‚   )
rF   r4   r!   ÚextÚext_nameÚ
build_infoÚkeyÚvalr¬   r¤   s
             rG   Úcheck_extensions_listzbuild_ext.check_extensions_listq  s‘  € õ ˜*¥dÑ+Ô+ð 	Ý%ØLñô ð õ   
Ñ+Ô+ð G	 ñ G	 ‰FˆAˆsÝ˜#�yÑ)Ô)ð Øõ ˜c¥5Ñ)Ô)ð ­S°©X¬X¸ª]¨]Ý)ð4ñô ð ð
 $'Ñ ˆH�jåŒKð:ð ñ	ô ð õ ˜x­Ñ-Ô-ð Õ2C×2IÒ2IÈ(Ñ2SÔ2Sð Ý)ð<ñô ð õ
 ˜j­$Ñ/Ô/ð Ý)ð8ñô ð õ ˜H j°Ô&;Ñ<Ô<ˆCðð 
+ð 
+�ð !—n’n SÑ)Ô)�Ø�?Ý˜C  cÑ*Ô*Ð*øð (2§~¢~°gÑ'>Ô'>ˆCÔ$Ø˜ZÐ'Ð'Ý”ÐWÑXÔXÐXð  —^’^ HÑ-Ô-ˆFØð 8Ø$&�Ô!Ø#%�Ô Ø#ð 8ð 8�EÝ& u­eÑ4Ô4ð ½¸U¹¼ÀvÐ9MÐ9MÝ1ØWñô ð õ ˜5‘z”z Q’�ØÔ(×/Ò/°°a´Ñ9Ô9Ð9Ð9Ý˜U™œ qš˜ØÔ)×0Ò0°Ñ7Ô7Ð7øàˆJ�q‰M‰MðOG	 ð G	 rI   c                ó†   — |                       | j        ¦  «         g }| j        D ]}|                     |j        ¦  «         Œ|S ©N)rÀ   r4   rƒ   r§   )rF   Ú	filenamesr»   s      rG   Úget_source_fileszbuild_ext.get_source_filesÉ  sO   € Ø×"Ò" 4¤?Ñ3Ô3Ð3Øˆ	ð ”?ð 	*ð 	*ˆCØ×Ò˜Sœ[Ñ)Ô)Ð)Ð)ØÐrI   c                ó^   ‡ — ‰                       ‰ j        ¦  «         ˆ fd„‰ j        D ¦   «         S )Nc                óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS rq   )Úget_ext_fullpathr…   )rr   r»   rF   s     €rG   rt   z)build_ext.get_outputs.<locals>.<listcomp>Û  s)   ø€ ÐKÐKÐK°C�×%Ò% c¤hÑ/Ô/ÐKÐKÐKrI   )rÀ   r4   rE   s   `rG   Úget_outputszbuild_ext.get_outputsÒ  s:   ø€ ð 	×"Ò" 4¤?Ñ3Ô3Ð3ð
 LÐKÐKÐK¸4¼?ÐKÑKÔKÐKrI   c                óœ   — |                       | j        ¦  «         | j        r|                      ¦   «          d S |                      ¦   «          d S rÂ   )rÀ   r4   rD   Ú_build_extensions_parallelÚ_build_extensions_serialrE   s    rG   r¢   zbuild_ext.build_extensionsÝ  sR   € à×"Ò" 4¤?Ñ3Ô3Ð3ØŒ=ð 	,Ø×+Ò+Ñ-Ô-Ð-Ð-Ð-à×)Ò)Ñ+Ô+Ð+Ð+Ð+rI   c                óä  ‡ ‡— ‰ j         }‰ j         du rt          j        ¦   «         }	 ddlm} n# t
          $ r d }Y nw xY w|€‰                      ¦   «          d S  ||¬¦  «        5 Šˆˆ fd„‰ j        D ¦   «         }t          ‰ j        |d¬¦  «        D ]F\  }}‰  	                    |¦  «        5  | 
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   ŒG	 d d d ¦  «         d S # 1 swxY w Y   d S )NTr   )ÚThreadPoolExecutor)Úmax_workersc                óF   •— g | ]}‰                      ‰j        |¦  «        ‘ŒS rq   )ÚsubmitÚbuild_extension)rr   r»   ÚexecutorrF   s     €€rG   rt   z8build_ext._build_extensions_parallel.<locals>.<listcomp>ó  s7   ø€ ð ð ð Ø?B�—’ Ô 4°cÑ:Ô:ðð ð rI   F)Ústrict)rD   rU   Ú	cpu_countÚconcurrent.futuresrÍ   ÚImportErrorrË   r4   ÚzipÚ_filter_build_errorsÚresult)rF   ÚworkersrÍ   Úfuturesr»   ÚfutrÒ   s   `     @rG   rÊ   z$build_ext._build_extensions_parallelå  sÅ  øø€ Ø”-ˆØŒ=˜DÐ Ð Ý”l‘n”nˆGð	Ø=Ð=Ð=Ð=Ð=Ð=Ð=øÝð 	ð 	ð 	ØˆGˆGˆGð	øøøð ˆ?Ø×)Ò)Ñ+Ô+Ð+ØˆFàÐ¨GÐ4Ñ4Ô4ð 	!¸ðð ð ð ð ØFJÄoðñ ô ˆGõ   ¤°ÀÐGÑGÔGð !ð !‘��SØ×.Ò.¨sÑ3Ô3ð !ð !Ø—J’J‘L”L�Lð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !øð!ð		!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!sC   §. ®=¼=Á$AC%Â*CÂ?C%ÃCÃC%ÃCÃC%Ã%C)Ã,C)c                óž   — | j         D ]D}|                      |¦  «        5  |                      |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒEd S rÂ   )r4   rØ   rÑ   )rF   r»   s     rG   rË   z"build_ext._build_extensions_serialú  s›   € Ø”?ð 	*ð 	*ˆCØ×*Ò*¨3Ñ/Ô/ð *ð *Ø×$Ò$ SÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *øð	*ð 	*s   ŸAÁA	ÁA	c              #  ó®   K  — 	 d V — d S # t           t          t          f$ r3}|j        s‚ |                      d|j        › d|› �¦  «         Y d }~d S d }~ww xY w)Nzbuilding extension "z
" failed: )r   r   r   ÚoptionalÚwarnr…   )rF   r»   Úes      rG   rØ   zbuild_ext._filter_build_errorsÿ  s‡   è è € ð	FØˆEˆEˆEˆEˆEøÝ¥µÐ=ð 	Fð 	Fð 	FØ”<ð ØØ�IŠIÐD¨S¬XÐDÐDÀÐDÐDÑEÔEÐEÐEÐEÐEÐEÐEÐEøøøøð	Føøøs   „
 ŠA¡(AÁAc                óø  — |j         }|�t          |t          t          f¦  «        st	          d|j        › d�¦  «        ‚t          |¦  «        }|                      |j        ¦  «        }||j        z   }| j	        s-t          ||d¦  «        st          j        d|j        ¦  «         d S t          j        d|j        ¦  «         |                      ||¦  «        }|j        pg }|j        d d …         }|j        D ]}|                     |f¦  «         Œ| j                             || j        ||j        | j        ||j        ¬¦  «        }|d d …         | _        |j        r|                     |j        ¦  «         |j        pg }|j        p| j                             |¦  «        }	| j                             |||                      |¦  «        |j        |j         ||  !                    |¦  «        | j        | j        |	¬¦
  «
         d S )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¬   r9   r)   Úextra_postargsÚdepends)r<   r=   r¸   rå   Úexport_symbolsr)   r7   Útarget_lang)"r§   r|   r®   r°   r   r…   ÚsortedrÇ   ræ   r+   r	   r   r)   ÚinfoÚswig_sourcesr©   r¹   rº   r‚   r@   Úcompiler7   r9   Ú_built_objectsr¨   rƒ   rª   ÚlanguageÚdetect_languageÚlink_shared_objectÚget_librariesr=   r¸   Úget_export_symbols)
rF   r»   r§   Úext_pathræ   Ú
extra_argsr¬   r;   Úobjectsrî   s
             rG   rÑ   zbuild_ext.build_extension  s*  € Ø”+ˆØˆ?¥*¨Wµt½U°mÑ"DÔ"Dˆ?Ý%ð-°s´xð -ð -ð -ñô ð õ ˜‘/”/ˆà×(Ò(¨¬Ñ2Ô2ˆØ˜CœKÑ'ˆØ”
ð 	:�k¨'°8¸WÑEÔEð 	:ÝŒIÐ<¸c¼hÑGÔGÐGØˆFåŒHÐ.°´Ñ9Ô9Ð9ð
 ×#Ò# G¨SÑ1Ô1ˆð  Ô+Ð1¨rˆ
àÔ" 1 1 1Ô%ˆØÔ%ð 	$ð 	$ˆEØ�MŠM˜5˜(Ñ#Ô#Ð#Ð#à”-×'Ò'ØØ”ØØÔ)Ø”*Ø%Ø”Kð (ñ 
ô 
ˆð & a a aœjˆÔð
 Ôð 	.Ø�NŠN˜3Ô,Ñ-Ô-Ð-ØÔ(Ð.¨Bˆ
ð ”<ÐI 4¤=×#@Ò#@ÀÑ#IÔ#IˆàŒ×(Ò(ØØØ×(Ò(¨Ñ-Ô-ØÔ)Ø!$Ô!9Ø%Ø×2Ò2°3Ñ7Ô7Ø”*Ø”Ø ð 	)ñ 	
ô 	
ð 	
ð 	
ð 	
rI   c                óð  — g }g }i }| j         rt          j        d¦  «         | j         sd| j        v s	d|j        v rd}nd}|D ]{}t          j                             |¦  «        \  }}	|	dk    r<|                     |dz   |z   ¦  «         |                     |¦  «         |d         ||<   Œf|                     |¦  «         Œ||s|S | j        p|  	                    ¦   «         }
|
dg}| 
                    | j        ¦  «         | j         r|                     d¦  «         | j        s| 
                    |j        ¦  «         |D ];}||         }t          j        d	||¦  «         |                      |d
||gz   ¦  «         Œ<|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-pythonzswigging %s to %sz-o)rB   r   r²   rC   rU   rV   Úsplitextr‚   rA   Ú	find_swigrƒ   rê   Úspawn)rF   r§   Ú	extensionÚnew_sourcesrë   Úswig_targetsÚ
target_extÚsourcerN   r»   rA   Úswig_cmdÚtargets                rG   rë   zbuild_ext.swig_sourcesY  sÂ  € ð ˆØˆØˆð Œ=ð 	KÝŒKÐIÑJÔJÐJð ŒMð	à˜$œ.Ð(Ð(Ø˜)Ô-Ð-Ð-àˆJˆJàˆJàð 	+ð 	+ˆFÝœ'×*Ò*¨6Ñ2Ô2‰KˆT�3Ø�dŠ{ˆ{Ø×"Ò" 4¨'¡>°JÑ#>Ñ?Ô?Ð?Ø×#Ò# FÑ+Ô+Ð+Ø'2°2¤�˜VÑ$Ð$à×"Ò" 6Ñ*Ô*Ð*Ð*àð 	ØÐàŒyÐ,˜DŸNšNÑ,Ô,ˆØ˜)Ð$ˆØ�Š˜œÑ'Ô'Ð'ØŒ=ð 	$Ø�OŠO˜FÑ#Ô#Ð#ð Œ~ð 	1Ø�OŠO˜IÔ/Ñ0Ô0Ð0à"ð 	:ð 	:ˆFØ! &Ô)ˆFÝŒHÐ(¨&°&Ñ9Ô9Ð9Ø�JŠJ�x 4¨°Ð"8Ñ8Ñ9Ô9Ð9Ð9àÐrI   c                ó  — t           j        dk    rdS t           j        dk    rMdD ]H}t           j                             d|› �d¦  «        }t           j                             |¦  «        r|c S ŒIdS t          dt           j        › 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.
        ÚposixrA   rb   )z1.3z1.2z1.1zc:\swigzswig.exez;I don't know how to find (much less run) SWIG on platform 'ú')rU   r…   rV   rW   Úisfiler   )rF   ÚversÚfns      rG   rú   zbuild_ext.find_swig‘  s�   € õ
 Œ7�gÒÐØ�6ÝŒW˜Š_ˆ_ð .ð "ð "�Ý”W—\’\Ð"3¨TÐ"3Ð"3°ZÑ@Ô@�Ý”7—>’> "Ñ%Ô%ð Ø�I�I�Iðð "�zå(ØXÍbÌgÐXÐXÐXñô ð rI   r¼   r}   c                ó*  — |                       |¦  «        }|                     d¦  «        }|                      |d         ¦  «        }| j        sDt	          j        j        |dd…         |gz   Ž }t          j                             | j        |¦  «        S d                     |dd…         ¦  «        }|                      d¦  «        }t          j         	                    | 
                    |¦  «        ¦  «        }t          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).
        rL   rø   Nr   Úbuild_py)Úget_ext_fullnamer~   Úget_ext_filenamer    rU   rV   rW   r5   r˜   ÚabspathÚget_package_dir)rF   r¼   ÚfullnameÚmodpathÚfilenamer8   r
  Úpackage_dirs           rG   rÇ   zbuild_ext.get_ext_fullpath©  sç   € ð ×(Ò(¨Ñ2Ô2ˆØ—.’. Ñ%Ô%ˆØ×(Ò(¨°¬Ñ5Ô5ˆàŒ|ð 	:õ ”w”| W¨S¨b¨S¤\°X°JÑ%>Ð?ˆHÝ”7—<’< ¤°Ñ9Ô9Ð9ð —(’(˜7 1 R 4œ=Ñ)Ô)ˆØ×-Ò-¨jÑ9Ô9ˆÝ”g—o’o h×&>Ò&>¸wÑ&GÔ&GÑHÔHˆõ Œw�|Š|˜K¨Ñ2Ô2Ð2rI   c                ó.   — | j         €|S | j         dz   |z   S )zSReturns the fullname of a given extension name.

        Adds the `package.` prefixNrL   )r8   )rF   r¼   s     rG   r  zbuild_ext.get_ext_fullnameÄ  s#   € ð Œ<ÐØˆOà”< #Ñ%¨Ñ0Ð0rI   c                óz   — ddl m} |                     d¦  «        } |d¦  «        }t          j        j        |Ž |z   S )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   ©rQ   rL   Ú
EXT_SUFFIX)rX   rQ   r~   rU   rV   rW   )rF   r¼   rQ   ró   Ú
ext_suffixs        rG   r  zbuild_ext.get_ext_filenameÍ  sJ   € ð
 	/Ð.Ð.Ð.Ð.Ð.à—>’> #Ñ&Ô&ˆØ#�^ LÑ1Ô1ˆ
ÝŒwŒ|˜XÐ&¨Ñ3Ð3rI   r»   r   ú	list[str]c                ó`  — |                       |¦  «        }	 |                     d¦  «         d|z   }nO# t          $ rB d|                     d¦  «                             dd¦  «                             d¦  «        z   }Y nw xY wd|z   }||j        vr|j                             |¦  «         |j        S )a  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‚   )rF   r»   r…   r�   Úinitfunc_names        rG   rò   zbuild_ext.get_export_symbolsØ  sÐ   € ð ×/Ò/°Ñ4Ô4ˆð	 ð �KŠK˜Ñ Ô Ð ð ˜4‘ZˆFˆFøõ "ð 	Xð 	Xð 	XØ˜DŸKšK¨
Ñ3Ô3×;Ò;¸DÀ$ÑGÔG×NÒNÈwÑWÔWÑWˆFˆFˆFð	Xøøøð
 ! 6Ñ)ˆØ Ô 2Ð2Ð2ØÔ×%Ò% mÑ4Ô4Ð4ØÔ!Ð!s   —2 ²A	A>Á=A>c                ó”   — |j                              d¦  «        }|d         dk    rt          |¦  «        dk    r|d         S |d         S )NrL   rø   Ú__init__r   éþÿÿÿ)r…   r~   r±   )rF   r»   Úpartss      rG   r!  z%build_ext._get_module_name_for_symbolí  sH   € ð ”—’˜sÑ#Ô#ˆØ�Œ9˜
Ò"Ð"¥s¨5¡z¤z°Q¢ Ø˜”9ÐØ�RŒyÐrI   c                ó.  — t           j        dk    rgt          ¦   «         sYddlm} t          | j        |¦  «        s=d}| j        r|dz   }|t           j        dz	  t           j        dz	  dz  fz  }|j	        |gz   S n˜dd	l
m} d
} |d¦  «        rjt          t           d¦  «        rd}nRt           j        dk    st          ¦   «         rd}n1dt          j        v r# |d¦  «        dk    rd}n |d¦  «        dk    rd}|r |d¦  «        }|j	        d|z   gz   S |j	        S )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).
        rf   r   )ÚMSVCCompilerz
python%d%dÚ_dé   é   éÿ   r  FrK   ÚgetandroidapilevelTrj   Ú_PYTHON_HOST_PLATFORMÚANDROID_API_LEVELr   ÚMACHDEPÚ	LDVERSIONrl   )rS   rT   r   Ú_msvccompilerr,  r|   r@   r)   Ú
hexversionr<   rX   rQ   ÚhasattrrU   Úenviron)rF   r»   r,  ÚtemplateÚ	pythonlibrQ   Úlink_libpythonÚ	ldversions           rG   rñ   zbuild_ext.get_librariesö  sq  € õ Œ<˜7Ò"Ð"­8©:¬:Ð"Ø4Ð4Ð4Ð4Ð4Ð4å˜dœm¨\Ñ:Ô:ð 
3Ø'�Ø”:ð /Ø'¨$™�HØ$Ý”N bÑ(Ý”^ rÑ)¨TÑ1ð(ñ �	ð ”}¨	 {Ñ2Ð2ð
3ð( 3Ð2Ð2Ð2Ð2Ð2à"ˆNØˆ~Ð0Ñ1Ô1ð .å�3Ð 4Ñ5Ô5ð 	.Ø%)�N�NÝ”\ XÒ-Ð-µ±´Ð-Ø%)�N�NØ,µ´
Ð:Ð:à%�~Ð&9Ñ:Ô:¸aÒ?Ð?Ø)-˜˜Ø'˜¨	Ñ2Ô2°hÒ>Ð>Ø)-˜àð >Ø*˜N¨;Ñ7Ô7�	Ø”}¨°9Ñ(<Ð'=Ñ=Ð=àŒ}ÐrI   )r\   r]   )r¼   r}   r\   r}   )r»   r   r\   r  )$Ú__name__Ú
__module__Ú__qualname__ÚdescriptionrU   r   Úsep_byr   Úuser_optionsr1   Ú__annotations__r   r2   rH   Ústaticmethodr[   r’   r¥   rÀ   rÄ   rÈ   r¢   rÊ   rË   Ú
contextlibÚcontextmanagerrØ   rÑ   rë   rú   rÇ   r  r  rò   r!  rñ   rq   rI   rG   r   r   &   s¨  € € € € € € ØL€Kð( / ¤
Ð.Ð.Ð.€FàGØQàØð+Ø%˜™œð+ð +ð +ð	
ð	
ð ØØ<¸vÑEð	
ð
 	<Ø<Ø@àØØ<¸vÑEð	
ð
 	SØTØAØLØ7Ø;ØGØAØ6Ø=ðK&€LðP,ð ,ð ,€Oð ð ð ñ ð 
˜$Ð :¸NÐKðW€Lð ð ð ñ ðð ð ð0 ð5ð 5ñ „\ð5ð0ILð ILð ILð ILðVC ð C ð C ð C ðJV ð V ð V ð V ðpð ð ð	Lð 	Lð 	Lð,ð ,ð ,ð ,ð!ð !ð !ð**ð *ð *ð
 ÔðFð Fñ ÔðFðO
ð O
ð O
ð O
ðb6ð 6ð 6ðpð ð ð03ð 3ð 3ð 3ð61ð 1ð 1ð 1ð	4ð 	4ð 	4ð 	4ð"ð "ð "ð "ð*ð ð ð5ð 5ð 5ð 5ð 5ð 5rI   r   )*Ú__doc__Ú
__future__r   rF  rU   ÚrerS   Úcollections.abcr   Údistutils._logr   Úsiter   Útypingr   Ú	_modifiedr	   Ú	ccompilerr
   r   Úcorer   Úerrorsr   r   r   r   r   r   rü   r   rX   r   r   r   Úutilr   r   r   rì   r³   r   rq   rI   rG   ú<module>rT     sÁ  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à #Ð #Ð #Ð #Ð #Ð #Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ð �B”JÐUÑVÔVÐ ðEð Eð Eð Eð E�ñ Eô Eð Eð Eð ErI   