Current File : //usr/lib/python3/dist-packages/setuptools/command/__pycache__/build_ext.cpython-312.pyc
�


_�d`D���ddlZddlZddlZddlmZddlmZddlm	Z	m
Z
mZmZddl
mZddlmZddlmZddlmZmZdd	lmZdd
lmZddlmZmZ	ddlmZe d�ed
�ddlm"Z#d�Z$dZ%dZ&dZ'ejPdk(rdZ&nejRdk7r	ddl*Z*e+e*d�xZ&Z%d�Z,d�Z-Gd�de�Ze&sejRdk(r										dd�Z.ydZ'										dd�Z.y#e!$reZY��wxYw#e!$rY�VwxYw)�N��EXTENSION_SUFFIXES)�cache_from_source)�Dict�Iterator�List�Tuple)�Path)�	build_ext)�new_compiler)�customize_compiler�get_config_var)�log)�	BaseError)�	Extension�LibraryzCython.Compiler.Main�LDSHARED)�_config_varsc�f�tjdk(retj�}	dtd<dtd<dtd<t	|�tj
�tj|�yt	|�y#tj
�tj|�wxYw)N�darwinz0gcc -Wl,-x -dynamiclib -undefined dynamic_lookuprz -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�+B0F�sharedrT�nt�RTLD_NOWc��tr|SdS)N�)�	have_rtld)�ss r!�if_dlr*Ds���1�!�r�!�c�<�tD]}d|vr|cS|dk(s�|cSy)z;Return the file extension for an abi3-compliant Extension()z.abi3z.pydNr)�suffixs r!�get_abi3_suffixr.Hs+��$����f���M�
�v�
��M�	r+c�(�eZdZUdZeed<dZeed<d�Zdede	e
e
ffd�Zd�Zded	e
de
fd
�Z
dee	e
e
ffd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zdee
fd�Zdee
fd�Zdee
fd�Zdee
e
ffd�Zd�Zd�Zdd�Zdde
defd�Z de
fd�Z!y)rF�
editable_mode�inplacec��|jdc}|_tj|�||_|r|j�yy)z;Build extensions in build directory, then copy if --inplacerN)r1�
_build_ext�run�copy_extensions_to_source)�self�old_inplaces  r!r4z
build_ext.runUs;��$(�L�L�!�!��T�\����t��"�����*�*�,�r+�ext�returnc��|j|j�}|j|�}|jd�}dj	|dd�}|j|�}tjj	|tjj|��}tjj	|j|�}	||	fS)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�|jd�}|jD]�}|j||�\}}tjj|�s|js|j|||j��|js�n|j||�}|j||d����y)NrG)�levelT)�compile)�get_finalized_command�
extensionsrOrCrD�exists�optional�	copy_file�verbose�_needs_stub�_get_equivalent_stub�_write_stub_file)r6rGr8rMrN�inplace_stubs      r!r5z#build_ext.copy_extensions_to_sourcegs����-�-�j�9���?�?�	G�C�)-�)E�)E�h�PS�)T�&�L�,�
�w�w�~�~�l�+�3�<�<����|�\�����N����#�8�8��l�K���%�%�l�C��%�F�	Gr+�output_filec���tjj|�}|jj	d�\}}}tjj||��d�S�Nr;�.py)rCrD�dirnamer>�
rpartitionrA)r6r8r]�dir_�_r>s      r!rZzbuild_ext._get_equivalent_stubxsK���w�w���{�+���X�X�(�(��-�
��1�d��'�'�,�,�t�T�*�+�3�/�/r+c#�K�|jsy|jd�}|jd�jxsd}|jD]n}|j	||�\}}||f��|j
s�+|j
||�}|j
||�}t||��}t||��}	|	|f���py�w)NrG�install_libr')�optimization)r1rS�optimizerTrOrYrZ�_compiled_file_name)
r6rG�optr8rMrNr\�regular_stub�
inplace_cache�output_caches
          r!�_get_output_mappingzbuild_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>�7AB>c���tjd�}|r/tjj|j	d��|z}n!tj||�}td�}||jvr�|j|}t|d�xr
t�}|r|dt|�}t�}||z}t|t�rBtjj|�\}}|jj!|t"�St$rQ|j&rEtjj	|�\}}tjj|d|z�S|S)N�SETUPTOOLS_EXT_SUFFIXr;�
EXT_SUFFIX�py_limited_apizdl-)rC�getenvrDrAr@r3r?r�ext_map�getattrr.�len�
isinstancer�splitext�shlib_compiler�library_filename�libtype�	use_stubs�_links_to_dynamic)r6rH�so_extrIr8�use_abi3�fn�ds        r!r?zbuild_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�tj|�d|_g|_i|_d|_y)NF)r3�initialize_optionsry�shlibsrtr0�r6s r!r�zbuild_ext.initialize_options�s.���%�%�d�+�"���������"��r+c��tj|�|jxsg|_|j|j�|jD�cgc]}t	|t
�s�|��c}|_|jr|j�|jD]"}|j|j�|_
�$|jD�]j}|j}||j|<||j|jd�d<|jxr|j|�xsd}|xrtxrt	|t
�}||_||_|j#|�x}|_t&j(j+t&j(j-|j.|��}|r)||j0vr|j0j3|�|s��ts��$t&j4|j6vs��B|j6j3t&j4���m|j8rd|_yycc}w)Nr;r<FT)r3�finalize_optionsrT�check_extensions_listrwrr��setup_shlib_compilerr=r>�
_full_namertr@�links_to_dynamicr|r}rYr?�
_file_namerCrDrarArF�library_dirs�append�curdir�runtime_library_dirsr0r1)r6r8rH�ltd�nsrI�libdirs       r!r�zbuild_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���1Ss�I�*Ic��t|j|j|j��x}|_t|�|j�|j|j�|j�&|jD]\}}|j||��|j�"|jD]}|j|��|j�|j|j�|j�|j|j�|j �|j#|j �|j$�|j'|j$�t(j+|�|_y)N)r�dry_run�force)rrr�r�ryr"�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__)r6rr>�value�macros     r!r�zbuild_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|jStj||�S�N)rwr�export_symbolsr3�get_export_symbols)r6r8s  r!r�zbuild_ext.get_export_symbols�s+���c�7�#��%�%�%��,�,�T�3�7�7r+c�D�|j�|j}	t|t�r|j|_tj||�|jr-|jd�j}|j||�||_y#||_wxYw)NrG)�_convert_pyx_sources_to_langrrwrryr3�build_extensionrYrSrF�
write_stub)r6r8�	_compilerrFs    r!r�zbuild_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�	Bc����tj|jD�cgc]}|j��c}��dj	|jjd�dddgz��t
��fd�|jD��Scc}w)z?Return true if 'ext' links to a dynamic lib in the same packager;Nr<r'c3�,�K�|]}�|z�v���
y�wr��)�.0�libname�libnames�pkgs  ��r!�	<genexpr>z-build_ext.links_to_dynamic.<locals>.<genexpr>s�����J��3��=�H�,�J�s�)�dict�fromkeysr�r�rAr@�anyr�)r6r8�libr�r�s   @@r!r�zbuild_ext.links_to_dynamicsl���
�=�=�D�K�K�!H�S�#�.�.�!H�I���h�h�s�~�~�+�+�C�0��"�5���<�=���J�C�M�M�J�J�J��"Is�B
c�P�gtj|��|j��Sr�)r3�get_source_files�_get_internal_dependsr�s r!r�zbuild_ext.get_source_files	s&��R��,�,�T�2�R�T�5O�5O�5Q�R�Rr+c#�0K�t|jjxstj�j�}d�|jD�}dtdtddfd�}|D]y}t|�}|j�r
||d��(d|jvr
||d	��@	||zjd
��}	|j|�|j����{y#t$r||d�Y��wxYw#t$r||d
�Y��wxYw�w)zAYield ``ext.depends`` that are contained by the project directoryc3�BK�|]}|jD]}|����y�wr�)�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�reasonr9Nc�2�tjd||�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>.skips���H�H�8���	
r+zmust be relativez..zcan't have `..` segmentsT)�strictz
doesn't existzmust be inside the project root)r
�distribution�src_rootrCr��resolverT�str�is_absolute�parts�OSError�relative_to�
ValueError�as_posix)r6�project_rootr�r�r�rD�resolveds       r!r�zbuild_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;�8D�:C;�;D�>D�D�D�Dc���|jr't|j�j��St	tj|�|j�z�Sr�)r1�list�get_output_mapping�keys�sortedr3�get_outputs�_build_ext__get_stubs_outputsr�s r!r�zbuild_ext.get_outputs2sJ���<�<���/�/�1�6�6�8�9�9��j�,�,�T�2�T�5M�5M�5O�O�P�Pr+c�P�|j�}tt|d����S)z1See :class:`setuptools.commands.build.SubCommand`c��|dS)Nrr�)�xs r!�<lambda>z.build_ext.get_output_mapping.<locals>.<lambda>:s
��!�A�$�r+)�key)rnr�r�)r6�mappings  r!r�zbuild_ext.get_output_mapping7s"���*�*�,���F�7��7�8�8r+c����fd��jD�}tj|�j��}t	d�|D��S)Nc3��K�|]S}|jrEtjj�jg|j
j
d�������Uy�w)r;N)rYrCrDrArFr�r@)r�r8r6s  �r!r�z0build_ext.__get_stubs_outputs.<locals>.<genexpr>>sE�����
�����
�G�G�L�L����D�#�.�.�*>�*>�s�*C�D�
�s�AAc3�,K�|]\}}||z���y�wr�r�)r��base�fnexts   r!r�z0build_ext.__get_stubs_outputs.<locals>.<genexpr>Es����:�[�T�5�D�5�L�:�s�)rT�	itertools�product�!_build_ext__get_output_extensionsr�)r6�ns_ext_bases�pairss`  r!�__get_stubs_outputszbuild_ext.__get_stubs_outputs<sD���
����
���!�!�,��0L�0L�0N�O���:�E�:�:�:r+c#�\K�d��d��|jd�jrd��yy�w)Nr`z.pycrGz.pyo)rSrhr�s r!�__get_output_extensionsz!build_ext.__get_output_extensionsGs.���������%�%�j�1�:�:��L�;�s�*,c��tjj|g|jj	d����dz}|j|||�yr_)rCrDrAr�r@r[)r6�
output_dirr8rR�	stub_files     r!r�zbuild_ext.write_stubMs?���G�G�L�L��H�c�n�n�.B�.B�3�.G�H�5�P�	����i��g�6r+r�c�(�tjd|j|�|r-tjj|�rt
|dz��|js�t|d�}|jdjdddtd�zd	tjj|j�zd
ddtd
�dddtd�dddddtd�dddg��|j�|r|j|�yy)Nz writing stub loader for %s to %sz already exists! Please delete.�w�
zdef __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')rr�r�rCrDrUrr��open�writerAr*rEr��close�_compile_and_remove_stub)r6r�r8rR�fs     r!r[zbuild_ext._write_stub_fileQs�����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�ddlm}||gdd|j��|jd�j}|dkDr||g|d|j��t
jj|�r#|jstj|�yyy)Nr)�byte_compileT)rhr�r�rf)	�distutils.utilr�r�rSrhrCrDrU�unlink)r6r�r�rhs    r!r�z"build_ext._compile_and_remove_stubxsy��/��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__r1r4rr	r�rOr5rZrrnr?r�r�r�r�r�r�rr�r�r�rr�r�r�r�r[r�r�r+r!rrQs���M�4���G�T��-�,�Y�,�5��c��?�,�
G�"0�	�0��0��0�
4�X�e�C��H�o�%>�4�2�.#� �>K�68�
&�K�S�$�s�)�S�$"�x��}�$"�LQ�T�#�Y�Q�
9�D��c��N�9�
	;��7�%5�#�%5�I�%5�N
!�#�
!r+rc
�R�|j|j|||||||||	|
||�
yr�)�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�tjj|�\}}
tjj|
�\}}|j	d�jd�r|dd}|j
|||||�y)Nr�r��)rCrDr@rxrz�
startswith�create_static_lib)r6rrr�r�r�r�r�r	r
rrr
rIrEr8s                r!r�r��s{��*�!�!�!�!�w�w�}�}�^�<��
�H����(�(��2�
��#�� � ��%�0�0��7� ���|�H����w��*�e�[�Qr+)
NNNNNrNNNN)/rCrr��importlib.machineryr�importlib.utilrri�typingrrrr	�pathlibr
�distutils.command.build_extr�
_du_build_ext�distutils.ccompilerr�distutils.sysconfigr
r�	distutilsr�setuptools.errorsr�setuptools.extensionrr�Cython.Distutils.build_extr3�
__import__�ImportErrorrrr"r(r|r{rr>�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�5C6�9D�D