Ë
    
_ßd`D  ã                   ó  — 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	m
Z
mZ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 d dlmZmZ 	 d dlmZ  e d«        ed«       d dlm"Z# d„ Z$dZ%dZ&dZ'ejP                  dk(  rdZ&ne jR                  dk7  r	 d dl*Z* e+e*d«      xZ&Z%d„ Z,d„ Z- G d„ de«      Ze&se jR                  dk(  r	 	 	 	 	 	 	 	 	 	 dd„Z.ydZ'	 	 	 	 	 	 	 	 	 	 dd„Z.y# e!$ r eZY Œ“w xY w# e!$ r Y ŒVw xY w)é    N©ÚEXTENSION_SUFFIXES)Úcache_from_source)ÚDictÚIteratorÚListÚTuple)ÚPath)Ú	build_ext)Únew_compiler)Úcustomize_compilerÚget_config_var)Úlog)Ú	BaseError)Ú	ExtensionÚLibraryzCython.Compiler.MainÚLDSHARED)Ú_config_varsc                 óf  — t         j                  dk(  ret        j                  «       }	 dt        d<   dt        d<   dt        d<   t	        | «       t        j
                  «        t        j                  |«       y t	        | «       y # t        j
                  «        t        j                  |«       w xY w)NÚdarwinz0gcc -Wl,-x -dynamiclib -undefined dynamic_lookupr   z -dynamiclibÚCCSHAREDz.dylibÚSO)ÚsysÚplatformÚ_CONFIG_VARSÚcopyr   ÚclearÚupdate)ÚcompilerÚtmps     ú>/usr/lib/python3/dist-packages/setuptools/command/build_ext.pyÚ_customize_compiler_for_shlibr"       s”   € Ü
‡|�|�xÒô ×ÑÓ!ˆð
	%ð Cô Øñð (6ŒL˜Ñ$Ø!)ŒL˜ÑÜ˜xÔ(ä×ÑÔ Ü×Ñ Õ$ä˜8Õ$øô ×ÑÔ Ü×Ñ Õ$ús   ©&B Â+B0FÚsharedr   TÚntÚRTLD_NOWc                 ó   — t         r| S dS )NÚ )Ú	have_rtld)Úss    r!   Úif_dlr*   D   s   € Ýˆ1Ð!˜rÐ!ó    c                  ó<   — t         D ]  } d| v r| c S | dk(  sŒ| c S  y)z;Return the file extension for an abi3-compliant Extension()z.abi3z.pydNr   )Úsuffixs    r!   Úget_abi3_suffixr.   H   s+   € ä$ò ˆØ�fÑØŠMØ�vÓØŠMñ	r+   c                   ó(  — e Zd ZU dZeed<   dZeed<   d„ Zdede	e
e
f   fd„Zd„ Zded	e
de
fd
„Zdee	e
e
f      fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdee
   fd„Zdee
   fd„Zdee
   fd„Zdee
e
f   fd„Zd„ Zd„ Zdd„Zdde
defd„Z de
fd„Z!y)r   FÚeditable_modeÚinplacec                 óŠ   — | j                   dc}| _         t        j                  | «       || _         |r| j                  «        yy)z;Build extensions in build directory, then copy if --inplacer   N)r1   Ú
_build_extÚrunÚcopy_extensions_to_source)ÚselfÚold_inplaces     r!   r4   zbuild_ext.runU   s;   € à$(§L¡L°!Ð!ˆ�T”\Ü�‰�tÔØ"ˆŒÙØ×*Ñ*Õ,ð r+   ÚextÚreturnc                 óœ  — | j                  |j                  «      }| j                  |«      }|j                  d«      }dj	                  |d d «      }|j                  |«      }t        j                  j	                  |t        j                  j                  |«      «      }t        j                  j	                  | j                  |«      }	||	fS )Nú.éÿÿÿÿ)
Úget_ext_fullnameÚnameÚget_ext_filenameÚsplitÚjoinÚget_package_dirÚosÚpathÚbasenameÚ	build_lib)
r6   Úbuild_pyr8   ÚfullnameÚfilenameÚmodpathÚpackageÚpackage_dirÚinplace_fileÚregular_files
             r!   Ú_get_inplace_equivalentz!build_ext._get_inplace_equivalent]   sž   € Ø×(Ñ(¨¯©Ó2ˆØ×(Ñ(¨Ó2ˆØ—.‘. Ó%ˆØ—(‘(˜7 3 B˜<Ó(ˆØ×.Ñ.¨wÓ7ˆÜ—w‘w—|‘| K´·±×1AÑ1AÀ(Ó1KÓLˆÜ—w‘w—|‘| D§N¡N°HÓ=ˆØ˜lÐ+Ð+r+   c                 ój  — | j                  d«      }| j                  D ]“  }| j                  ||«      \  }}t        j                  j                  |«      s|j                  s| j                  ||| j                  ¬«       |j                  sŒn| j                  ||«      }| j                  ||d¬«       Œ• y )NrG   )ÚlevelT)Úcompile)Úget_finalized_commandÚ
extensionsrO   rC   rD   ÚexistsÚoptionalÚ	copy_fileÚverboseÚ_needs_stubÚ_get_equivalent_stubÚ_write_stub_file)r6   rG   r8   rM   rN   Úinplace_stubs         r!   r5   z#build_ext.copy_extensions_to_sourceg   s›   € Ø×-Ñ-¨jÓ9ˆØ—?‘?ò 	GˆCØ)-×)EÑ)EÀhÐPSÓ)TÑ&ˆL˜,ô
 �w‰w�~‰~˜lÔ+°3·<²<Ø—‘˜|¨\ÀÇÁ�ÔNà�‹Ø#×8Ñ8¸¸lÓK�Ø×%Ñ% l°CÀÐ%ÕFñ	Gr+   Úoutput_filec                 óÄ   — t         j                  j                  |«      }|j                  j	                  d«      \  }}}t         j                  j                  ||«      › d�S ©Nr;   ú.py)rC   rD   Údirnamer>   Ú
rpartitionrA   )r6   r8   r]   Údir_Ú_r>   s         r!   rZ   zbuild_ext._get_equivalent_stubx   sK   € Ü�w‰w�‰˜{Ó+ˆØ—X‘X×(Ñ(¨Ó-‰
ˆˆ1ˆdÜ—'‘'—,‘,˜t TÓ*Ð+¨3Ð/Ð/r+   c              #   ó€  K  — | j                   sy | j                  d«      }| j                  d«      j                  xs d}| j                  D ]n  }| j	                  ||«      \  }}||f–— |j
                  sŒ+| j                  ||«      }| j                  ||«      }t        ||¬«      }t        ||¬«      }	|	|f–— Œp y ­w)NrG   Úinstall_libr'   )Úoptimization)r1   rS   ÚoptimizerT   rO   rY   rZ   Ú_compiled_file_name)
r6   rG   Úoptr8   rM   rN   r\   Úregular_stubÚinplace_cacheÚoutput_caches
             r!   Ú_get_output_mappingzbuild_ext._get_output_mapping}   sÁ   è ø€ Ø�|Š|Øà×-Ñ-¨jÓ9ˆØ×(Ñ(¨Ó7×@Ñ@ÒFÀBˆà—?‘?ò 	4ˆCØ)-×)EÑ)EÀhÐPSÓ)TÑ&ˆL˜,Ø Ð.Ò.à�‹ð  $×8Ñ8¸¸lÓK�Ø#×8Ñ8¸¸lÓK�Ü 3°LÈsÔ S�Ü2°<ÈcÔR�Ø# ]Ð3Ó3ñ!	4ùs   ‚A4B>Á7AB>c                 óÐ  — t        j                  d«      }|r/t        j                  j                  |j	                  d«      Ž |z   }n!t        j                  | |«      }t        d«      }|| j                  v rð| j                  |   }t        |d«      xr
 t        «       }|r|d t        |«        }t        «       }||z   }t        |t        «      rBt         j                  j                  |«      \  }}| j                  j!                  |t"        «      S t$        rQ|j&                  rEt         j                  j	                  |«      \  }}t         j                  j                  |d|z   «      S |S )NÚSETUPTOOLS_EXT_SUFFIXr;   Ú
EXT_SUFFIXÚpy_limited_apizdl-)rC   ÚgetenvrD   rA   r@   r3   r?   r   Úext_mapÚgetattrr.   ÚlenÚ
isinstancer   ÚsplitextÚshlib_compilerÚlibrary_filenameÚlibtypeÚ	use_stubsÚ_links_to_dynamic)r6   rH   Úso_extrI   r8   Úuse_abi3ÚfnÚds           r!   r?   zbuild_ext.get_ext_filename–   s   € Ü—‘Ð2Ó3ˆÙÜ—w‘w—|‘| X§^¡^°CÓ%8Ð9¸FÑB‰Hä!×2Ñ2°4¸ÓBˆHÜ# LÓ1ˆFà�t—|‘|Ñ#Ø—,‘,˜xÑ(ˆCÜ˜sÐ$4Ó5ÒK¼/Ó:KˆHÙØ# N¤s¨6£{ lÐ3�Ü(Ó*�Ø# fÑ,�Ü˜#œwÔ'ÜŸ'™'×*Ñ*¨8Ó4‘��CØ×*Ñ*×;Ñ;¸BÄÓHÐHÝ˜s×4Ò4ÜŸ™Ÿ™ hÓ/‘��2Ü—w‘w—|‘| A u¨r¡zÓ2Ð2Øˆr+   c                 óf   — t        j                  | «       d | _        g | _        i | _        d| _        y )NF)r3   Úinitialize_optionsry   Úshlibsrt   r0   ©r6   s    r!   rƒ   zbuild_ext.initialize_options­   s.   € Ü×%Ñ% dÔ+Ø"ˆÔØˆŒØˆŒØ"ˆÕr+   c                 ó®  — t        j                  | «       | j                  xs g | _        | j                  | j                  «       | j                  D �cg c]  }t	        |t
        «      sŒ|‘Œ c}| _        | j                  r| j                  «        | j                  D ]"  }| j                  |j                  «      |_
        Œ$ | j                  D �]j  }|j                  }|| j                  |<   || j                  |j                  d«      d   <   | j                  xr | j                  |«      xs d}|xr t        xr t	        |t
        «       }||_        ||_        | j#                  |«      x}|_        t&        j(                  j+                  t&        j(                  j-                  | j.                  |«      «      }|r)||j0                  vr|j0                  j3                  |«       |s�Œt        s�Œ$t&        j4                  |j6                  vs�ŒB|j6                  j3                  t&        j4                  «       �Œm | j8                  rd| _        y y c c}w )Nr;   r<   FT)r3   Úfinalize_optionsrT   Úcheck_extensions_listrw   r   r„   Úsetup_shlib_compilerr=   r>   Ú
_full_namert   r@   Úlinks_to_dynamicr|   r}   rY   r?   Ú
_file_namerC   rD   ra   rA   rF   Úlibrary_dirsÚappendÚcurdirÚruntime_library_dirsr0   r1   )r6   r8   rH   ÚltdÚnsrI   Úlibdirs          r!   r‡   zbuild_ext.finalize_options´   sÆ  € Ü×#Ñ# DÔ)ØŸ/™/Ò/¨RˆŒØ×"Ñ" 4§?¡?Ô3Ø&*§o¡oÖR˜s¼ÀCÌÕ9Q’sÒRˆŒØ�;Š;Ø×%Ñ%Ô'Ø—?‘?ò 	=ˆCØ!×2Ñ2°3·8±8Ó<ˆC�Nð	=à—?‘?ó 	;ˆCØ—~‘~ˆHØ%(ˆD�L‰L˜Ñ"ð 58ˆD�L‰L˜Ÿ™¨Ó,¨RÑ0Ñ1à—+‘+Ò< $×"7Ñ"7¸Ó"<ÒEÀˆCØÒCœÒC¬:°c¼7Ó+CÐ'CˆBØ$'ˆCÔ!Ø ˆCŒOØ(,×(=Ñ(=¸hÓ(GÐGˆH�s”~Ü—W‘W—_‘_¤R§W¡W§\¡\°$·.±.À(Ó%KÓLˆFÙ�v S×%5Ñ%5Ñ5Ø× Ñ ×'Ñ'¨Ô/Û—y¤R§Y¡Y°c×6NÑ6NÓ%NØ×(Ñ(×/Ñ/´·	±	Ö:ð#	;ð& ×ÒØˆD�Lð ùò1 Ss   ÁIÁ*Ic                 óú  — t        | j                  | j                  | j                  ¬«      x}| _        t        |«       | j                  �|j                  | j                  «       | j                  �&| j                  D ]  \  }}|j                  ||«       Œ | j                  �"| j                  D ]  }|j                  |«       Œ | j                  �|j                  | j                  «       | j                  �|j                  | j                  «       | j                   �|j#                  | j                   «       | j$                  �|j'                  | j$                  «       t(        j+                  |«      |_        y )N)r   Údry_runÚforce)r   r   r•   r–   ry   r"   Úinclude_dirsÚset_include_dirsÚdefineÚdefine_macroÚundefÚundefine_macroÚ	librariesÚset_librariesr�   Úset_library_dirsÚrpathÚset_runtime_library_dirsÚlink_objectsÚset_link_objectsÚlink_shared_objectÚ__get__)r6   r   r>   ÚvalueÚmacros        r!   r‰   zbuild_ext.setup_shlib_compilerÓ   s<  € Ü)5Ø—]‘]¨D¯L©LÀÇ
Á
ô*
ð 	
ˆ�4Ô&ô 	& hÔ/à×ÑÐ(Ø×%Ñ% d×&7Ñ&7Ô8Ø�;‰;Ð"à#Ÿ{™{ò 3‘��eØ×%Ñ% d¨EÕ2ð3à�:‰:Ð!ØŸ™ò /�Ø×'Ñ'¨Õ.ð/à�>‰>Ð%Ø×"Ñ" 4§>¡>Ô2Ø×ÑÐ(Ø×%Ñ% d×&7Ñ&7Ô8Ø�:‰:Ð!Ø×-Ñ-¨d¯j©jÔ9Ø×ÑÐ(Ø×%Ñ% d×&7Ñ&7Ô8ô '9×&@Ñ&@ÀÓ&JˆÕ#r+   c                 óf   — t        |t        «      r|j                  S t        j                  | |«      S ©N)rw   r   Úexport_symbolsr3   Úget_export_symbols)r6   r8   s     r!   r«   zbuild_ext.get_export_symbolsî   s+   € Ü�cœ7Ô#Ø×%Ñ%Ð%Ü×,Ñ,¨T°3Ó7Ð7r+   c                 óD  — |j                  «        | j                  }	 t        |t        «      r| j                  | _        t        j                  | |«       |j                  r-| j                  d«      j                  }| j                  ||«       || _        y # || _        w xY w)NrG   )Ú_convert_pyx_sources_to_langr   rw   r   ry   r3   Úbuild_extensionrY   rS   rF   Ú
write_stub)r6   r8   Ú	_compilerrF   s       r!   r®   zbuild_ext.build_extensionó   s}   € Ø×(Ñ(Ô*Ø—M‘Mˆ	ð	&Ü˜#œwÔ'Ø $× 3Ñ 3�”Ü×&Ñ& t¨SÔ1Ø�ŠØ ×6Ñ6°zÓB×LÑL�	Ø—‘ 	¨3Ô/à%ˆD�Mø˜IˆD�Mús   žA0B Â	Bc                 ó  ‡‡— t         j                  | j                  D �cg c]  }|j                  ‘Œ c}«      Šdj	                  |j                  j                  d«      dd dgz   «      Št        ˆˆfd„|j                  D «       «      S c c}w )z?Return true if 'ext' links to a dynamic lib in the same packager;   Nr<   r'   c              3   ó,   •K  — | ]  }‰|z   ‰v –— Œ y ­wr©   © )Ú.0ÚlibnameÚlibnamesÚpkgs     €€r!   ú	<genexpr>z-build_ext.links_to_dynamic.<locals>.<genexpr>  s   øè ø€ ÒJ°�3˜‘= HÔ,ÑJùs   ƒ)ÚdictÚfromkeysr„   rŠ   rA   r@   Úanyr�   )r6   r8   Úlibr¶   r·   s      @@r!   r‹   zbuild_ext.links_to_dynamic   sl   ù€ ô
 —=‘=¸D¿K¹KÖ!H°S #§.£.Ò!HÓIˆØ�h‰h�s—~‘~×+Ñ+¨CÓ0°°"Ð5¸¸Ñ<Ó=ˆÜÔJ¸C¿M¹MÔJÓJÐJùò "Is    B
c                 óP   — g t        j                  | «      ¢| j                  «       ¢S r©   )r3   Úget_source_filesÚ_get_internal_dependsr…   s    r!   r¾   zbuild_ext.get_source_files	  s&   € ØR”×,Ñ,¨TÓ2ÐR°T×5OÑ5OÓ5QÐRÐRr+   c              #   ó0  K  — t        | j                  j                  xs t        j                  «      j                  «       }d„ | j                  D «       }dt        dt        ddfd„}|D ]y  }t        |«      }|j                  «       r
 ||d«       Œ(d|j                  v r
 ||d	«       Œ@	 ||z  j                  d
¬«      }	 |j                  |«       |j                  «       –— Œ{ y# t        $ r  ||d«       Y Œ‘w xY w# t        $ r  ||d«       Y Œ©w xY w­w)zAYield ``ext.depends`` that are contained by the project directoryc              3   óB   K  — | ]  }|j                   D ]  }|–— Œ Œ y ­wr©   )Údepends)r´   r8   Údeps      r!   r¸   z2build_ext._get_internal_depends.<locals>.<genexpr>  s    è ø€ ÒI˜3¸S¿[¹[ÒI°c”3ÐI�3ÑIùs   ‚Ú	orig_pathÚreasonr9   Nc                 ó2   — t        j                  d| |«       y )NzJdependency %s won't be automatically included in the manifest: the path %s)r   Úinfo)rÄ   rÅ   s     r!   Úskipz-build_ext._get_internal_depends.<locals>.skip  s   € Ü�H‰Hð8àØõ	r+   zmust be relativez..zcan't have `..` segmentsT)Ústrictzdoesn't existzmust be inside the project root)r
   ÚdistributionÚsrc_rootrC   r�   ÚresolverT   ÚstrÚis_absoluteÚpartsÚOSErrorÚrelative_toÚ
ValueErrorÚas_posix)r6   Úproject_rootrÂ   rÈ   rÃ   rD   Úresolveds          r!   r¿   zbuild_ext._get_internal_depends  s  è ø€ ä˜D×-Ñ-×6Ñ6ÒC¼"¿)¹)ÓD×LÑLÓNˆÙI $§/¡/ÔIˆð	œCð 	¬ð 	°ó 	ð ò 	"ˆCÜ˜“9ˆDà×ÑÔ!Ù�SÐ,Ô-Øà�t—z‘zÑ!Ù�SÐ4Ô5ØðØ(¨4Ñ/×8Ñ8ÀÐ8ÓE�ð
Ø×$Ñ$ \Ô2ð
 —-‘-“/Ó!ñ/	"øô ò Ù�S˜/Ô*Ùðûô ò Ù�SÐ;Ô<ÙðüsH   ‚B'DÂ*C&Ã C>ÃDÃ&C;Ã8DÃ:C;Ã;DÃ>DÄDÄDÄDc                 óÆ   — | j                   r't        | j                  «       j                  «       «      S t	        t        j                  | «      | j                  «       z   «      S r©   )r1   ÚlistÚget_output_mappingÚkeysÚsortedr3   Úget_outputsÚ_build_ext__get_stubs_outputsr…   s    r!   rÛ   zbuild_ext.get_outputs2  sJ   € Ø�<Š<Ü˜×/Ñ/Ó1×6Ñ6Ó8Ó9Ð9Ü”j×,Ñ,¨TÓ2°T×5MÑ5MÓ5OÑOÓPÐPr+   c                 óP   — | j                  «       }t        t        |d„ ¬«      «      S )z1See :class:`setuptools.commands.build.SubCommand`c                 ó   — | d   S )Nr   r³   )Úxs    r!   ú<lambda>z.build_ext.get_output_mapping.<locals>.<lambda>:  s
   € °!°A±$€ r+   )Úkey)rn   r¹   rÚ   )r6   Úmappings     r!   rØ   zbuild_ext.get_output_mapping7  s"   € à×*Ñ*Ó,ˆÜ”F˜7©Ô7Ó8Ð8r+   c                 óš   ‡ — ˆ fd„‰ j                   D «       }t        j                  |‰ j                  «       «      }t	        d„ |D «       «      S )Nc              3   ó¼   •K  — | ]S  }|j                   rEt        j                  j                  ‰j                  g|j
                  j                  d «      ¢­Ž –— ŒU y­w)r;   N)rY   rC   rD   rA   rF   rŠ   r@   )r´   r8   r6   s     €r!   r¸   z0build_ext.__get_stubs_outputs.<locals>.<genexpr>>  sE   øè ø€ ò 
àØ�Šô �G‰G�L‰L˜Ÿ™ÐD¨#¯.©.×*>Ñ*>¸sÓ*CÖDñ
ùs   ƒAAc              3   ó,   K  — | ]  \  }}||z   –— Œ y ­wr©   r³   )r´   ÚbaseÚfnexts      r!   r¸   z0build_ext.__get_stubs_outputs.<locals>.<genexpr>E  s   è ø€ Ò:¡[ T¨5�D˜5•LÑ:ùs   ‚)rT   Ú	itertoolsÚproductÚ!_build_ext__get_output_extensionsr×   )r6   Úns_ext_basesÚpairss   `  r!   Ú__get_stubs_outputszbuild_ext.__get_stubs_outputs<  sD   ø€ ó
à—‘ô
ˆô ×!Ñ! ,°×0LÑ0LÓ0NÓOˆÜÑ:°EÔ:Ó:Ð:r+   c              #   ó\   K  — d–— d–— | j                  d«      j                  rd–— y y ­w)Nr`   z.pycrG   z.pyo)rS   rh   r…   s    r!   Ú__get_output_extensionsz!build_ext.__get_output_extensionsG  s.   è ø€ ØŠØŠØ×%Ñ% jÓ1×:Ò:Ø‹Lð ;ùs   ‚*,c                 ó¢   — t        j                  j                  |g|j                  j	                  d«      ¢­Ž dz   }| j                  |||«       y r_   )rC   rD   rA   rŠ   r@   r[   )r6   Ú
output_dirr8   rR   Ú	stub_files        r!   r¯   zbuild_ext.write_stubM  s?   € Ü—G‘G—L‘L ÐH¨c¯n©n×.BÑ.BÀ3Ó.GÒHÈ5ÑPˆ	Ø×Ñ˜i¨¨gÕ6r+   rò   c                 ó(  — t        j                  d|j                  |«       |r-t        j                  j                  |«      rt        |dz   «      ‚| j                  s¢t        |d«      }|j                  dj                  dddt        d«      z   d	t        j                  j                  |j                  «      z  d
ddt        d«      dddt        d«      dddddt        d«      dddg«      «       |j                  «        |r| j                  |«       y y )Nz writing stub loader for %s to %sz already exists! Please delete.Úwú
zdef __bootstrap__():z-   global __bootstrap__, __file__, __loader__z0   import sys, os, pkg_resources, importlib.utilz, dlz:   __file__ = pkg_resources.resource_filename(__name__,%r)z   del __bootstrap__z    if '__loader__' in globals():z       del __loader__z#   old_flags = sys.getdlopenflags()z   old_dir = os.getcwd()z   try:z(     os.chdir(os.path.dirname(__file__))z$     sys.setdlopenflags(dl.RTLD_NOW)z3     spec = importlib.util.spec_from_file_location(z#                __name__, __file__)z0     mod = importlib.util.module_from_spec(spec)z!     spec.loader.exec_module(mod)z   finally:z"     sys.setdlopenflags(old_flags)z     os.chdir(old_dir)z__bootstrap__()r'   )r   rÇ   rŠ   rC   rD   rU   r   r•   ÚopenÚwriterA   r*   rE   rŒ   ÚcloseÚ_compile_and_remove_stub)r6   rò   r8   rR   Úfs        r!   r[   zbuild_ext._write_stub_fileQ  s  € Ü�‰Ð3°S·^±^ÀYÔOÙ”r—w‘w—~‘~ iÔ0Ü˜IÐ(IÑIÓJÐJØ�|Š|Ü�Y Ó$ˆAØ�G‰GØ—	‘	à.ØGØJÜ ›-ñ(ð(Ü*,¯'©'×*:Ñ*:¸3¿>¹>Ó*JñKà.Ø:Ø/ÜÐCÓDØ2Ø!ØBÜÐDÓEØMØ=ØJØ;Ø%ÜÐBÓCØ0Ø)Øð/óôð: �G‰GŒIÙØ×)Ñ)¨)Õ4ð r+   c                 ó0  — ddl m}  ||gdd| j                  ¬«       | j                  d«      j                  }|dkD  r ||g|d| j                  ¬«       t
        j                  j                  |«      r#| j                  st        j                  |«       y y y )Nr   )Úbyte_compileT)rh   r–   r•   rf   )	Údistutils.utilrü   r•   rS   rh   rC   rD   rU   Úunlink)r6   rò   rü   rh   s       r!   rù   z"build_ext._compile_and_remove_stubx  sy   € Ý/á�i�[¨1°DÀ$Ç,Á,ÕOØ×-Ñ-¨mÓ<×EÑEˆØ�aŠ<ÙØ� h°dÀDÇLÁLõô �7‰7�>‰>˜)Ô$¨T¯\ª\Ü�I‰I�iÕ ð .:Ð$r+   N)F)"Ú__name__Ú
__module__Ú__qualname__r0   ÚboolÚ__annotations__r1   r4   r   r	   rÍ   rO   r5   rZ   r   rn   r?   rƒ   r‡   r‰   r«   r®   r‹   r   r¾   r¿   rÛ   r   rØ   rÜ   rê   r¯   r[   rù   r³   r+   r!   r   r   Q   s  … Ø€M�4ÓØ€GˆTÓò-ð,°Yð ,À5ÈÈcÈÁ?ó ,òGð"0¨	ð 0Àð 0Èó 0ð
4 X¨e°C¸°H©oÑ%>ó 4ò2ò.#ò ò>Kò68ò
&òKðS $ s¡)ó Sð$" x°¡}ó $"ðLQ˜T #™Yó Qð
9 D¨¨c¨¡Nó 9ò
	;òó7ñ%5¨#ð %5°Ió %5ðN
!°#ô 
!r+   r   c                 óR   — | j                  | j                  |||||||||	|
||«       y r©   )ÚlinkÚSHARED_LIBRARY)r6   ÚobjectsÚoutput_libnamerñ   r�   r�   r�   rª   ÚdebugÚextra_preargsÚextra_postargsÚ
build_tempÚtarget_langs                r!   r¤   r¤   ˆ  s=   € ð 	�	‰	Ø×ÑØØØØØØ ØØØØØØõ	
r+   Ústaticc                 ó  — |�J ‚t         j                  j                  |«      \  }}t         j                  j                  |«      \  }}| j	                  d«      j                  d«      r|dd  }| j                  |||||«       y )Nrß   r¼   é   )rC   rD   r@   rx   rz   Ú
startswithÚcreate_static_lib)r6   r  r  rñ   r�   r�   r�   rª   r	  r
  r  r  r  rI   rE   r8   s                   r!   r¤   r¤   «  s{   € ð* Ð!Ð!Ð!Ü!Ÿw™wŸ}™}¨^Ó<Ñˆ
�HÜŸ™×(Ñ(¨Ó2‰ˆ�#Ø× Ñ  Ó%×0Ñ0°Ô7ð    �|ˆHà×Ñ˜w¨°*¸eÀ[ÕQr+   )
NNNNNr   NNNN)/rC   r   rè   Úimportlib.machineryr   Úimportlib.utilr   ri   Útypingr   r   r   r	   Úpathlibr
   Údistutils.command.build_extr   Ú_du_build_extÚdistutils.ccompilerr   Údistutils.sysconfigr   r   Ú	distutilsr   Úsetuptools.errorsr   Úsetuptools.extensionr   r   ÚCython.Distutils.build_extr3   Ú
__import__ÚImportErrorr   r   r"   r(   r|   r{   r   r>   ÚdlÚhasattrr*   r.   r¤   r³   r+   r!   ú<module>r#     s@  ðÛ 	Û 
Û Ý 2Ý Cß .Ó .Ý å BÝ ,ß BÝ å 'ß 3ðåBñ Ð%Ô&ñ
 ˆzÔ Ý <ò%ð* €	Ø€	Ø
€à‡<�<�8ÒØ�IØ‡W�W�‚_ðÛá '¨¨JÓ 7Ð7ˆ	�Iò
"òôq!�
ô q!ñh	 �—‘˜4’ð ØØØ!ØØØØØØô
ðB €Gð ØØØ!ØØØØØØôRøðg ò Ø‚JðûðP ò Ùðús$   ÁC, ÂC9 Ã,C6Ã5C6Ã9DÄ D