� ,�Re�=����ddlZddlZddlZddlmZddlmZddlm Z m Z m Z m Z ddl mZddlmZddlmZmZddlmZdd lmZdd lmZmZ ddlmZed ��n #e$reZYnwxYwed ��dd lm Z!d�Z"dZ#dZ$dZ%ej&dkrdZ$n*ej'dkr ddl(Z(e)e(d��xZ$Z#n #e$rYnwxYwd�Z*d�Z+Gd�de��Ze$s ej'dkr dd�Z,dSdZ% dd�Z,dS)�N��EXTENSION_SUFFIXES)�cache_from_source)�Dict�Iterator�List�Tuple)� build_ext)� new_compiler)�customize_compiler�get_config_var)�log)� BaseError)� Extension�LibraryzCython.Compiler.Main�LDSHARED)� _config_varsc�p�tjdkr�tj��} dtd<dtd<dtd<t |��tj��tj|��dS#tj��tj|��wxYwt |��dS)N�darwinz0gcc -Wl,-x -dynamiclib -undefined dynamic_lookuprz -dynamiclib�CCSHAREDz.dylib�SO)�sys�platform� _CONFIG_VARS�copyr �clear�update)�compiler�tmps ��/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/command/build_ext.py�_customize_compiler_for_shlibr!s��� �|�x�����!�!�� %�C� �� $�'5�L�� $�!)�L�� � �x� (� (� (� � � � � � � �� $� $� $� $� $�� � � � � � � �� $� $� $� $�����8�$�$�$�$�$s �-A;�;)B$F�sharedrT�nt�RTLD_NOWc��tr|ndS)N�)� have_rtld)�ss r �if_dlr)@s��� !�1�1�r�!�c�>�tD]}d|vr|cS|dkr|cS�dS)z;Return the file extension for an abi3-compliant Extension()z.abi3z.pydNr)�suffixs r �get_abi3_suffixr-DsH��$���� �f� � ��M�M�M� �v� � ��M�M�M���r*c�$�eZdZUdZeed<dZeed<d�Zdede e e ffd�Z d�Z ded e de fd �Z dee e e ffd �Zd �Zd �Zd�Zd�Zd�Zd�Zd�Zdee fd�Zdee e ffd�Zd�Zd�Zdd�Zdde defd�Zde fd�ZdS)r F� editable_mode�inplacec��|jdc}|_tj|��||_|r|���dSdS)z;Build extensions in build directory, then copy if --inplacerN)r0� _build_ext�run�copy_extensions_to_source)�self� old_inplaces r r3z build_ext.runQsS��$(�L�!�!� �T�\���t����"�� � � -� � *� *� ,� ,� ,� ,� ,� -� -r*�ext�returnc��|�|j��}|�|��}|�d��}d�|dd���}|�|��}t j�|t j�|����}t j�|j |��} || fS)N�.�����) �get_ext_fullname�name�get_ext_filename�split�join�get_package_dir�os�path�basename� build_lib) r5�build_pyr7�fullname�filename�modpath�package� package_dir� inplace_file� regular_files r �_get_inplace_equivalentz!build_ext._get_inplace_equivalentYs����(�(���2�2���(�(��2�2���.�.��%�%���(�(�7�3�B�3�<�(�(���.�.�w�7�7� ��w�|�|�K���1A�1A�(�1K�1K�L�L� ��w�|�|�D�N�H�=�=� ��l�+�+r*c�f�|�d��}|jD]�}|�||��\}}tj�|��s|js|�|||j���|j r.|� ||��}|� ||d�����dS)NrF)�levelT)�compile) �get_finalized_command� extensionsrNrBrC�exists�optional� copy_file�verbose� _needs_stub�_get_equivalent_stub�_write_stub_file)r5rFr7rLrM� inplace_stubs r r4z#build_ext.copy_extensions_to_sourcecs����-�-�j�9�9���?� G� G�C�)-�)E�)E�h�PS�)T�)T� &�L�,� �w�~�~�l�+�+� O�3�<� O����|�\����N�N�N��� G�#�8�8��l�K�K� ��%�%�l�C��%�F�F�F�� G� Gr*� output_filec���tj�|��}|j�d��\}}}tj�||���d�S�Nr:�.py)rBrC�dirnamer=� rpartitionr@)r5r7r\�dir_�_r=s r rYzbuild_ext._get_equivalent_stubtsO���w���{�+�+���X�(�(��-�-� ��1�d��'�,�,�t�T�*�*�/�/�/�/r*c#�K�|jsdS|�d��}|�d��jpd}|jD]|}|�||��\}}||fV�|jrT|�||��}|�||��}t||���}t||���} | |fV��}dS)NrF� install_libr&)� optimization)r0rR�optimizerSrNrXrY�_compiled_file_name) r5rF�optr7rLrMr[� regular_stub� inplace_cache� output_caches r �_get_output_mappingzbuild_ext._get_output_mappingys������|� � �F��-�-�j�9�9���(�(��7�7�@�F�B���?� 4� 4�C�)-�)E�)E�h�PS�)T�)T� &�L�,���.� .� .� .��� 4� $�8�8��l�K�K� �#�8�8��l�K�K� � 3�L�s� S� S� S� �2�<�c�R�R�R� �#�]�3�3�3�3��! 4� 4r*c���tjd��}|r*tjj|�d���|z}n$t j||��}td��}||jv�r|j|}t|d��o t��}|r+|dt|�� �}t��}||z}t|t��rBtj�|��\}}|j�|t"��St$rL|jrEtj�|��\}}tj�|d|z��S|S)N�SETUPTOOLS_EXT_SUFFIXr:� EXT_SUFFIX�py_limited_apizdl-)rB�getenvrCr@r?r2r>r �ext_map�getattrr-�len� isinstancer�splitext�shlib_compiler�library_filename�libtype� use_stubs�_links_to_dynamic)r5rG�so_extrHr7�use_abi3�fn�ds r r>zbuild_ext.get_ext_filename�sM����2�3�3�� � 2��w�|�X�^�^�C�%8�%8�9�F�B�H�H�!�2�4��B�B�H�#�L�1�1�F� �t�|� #� #��,�x�(�C��s�$4�5�5�K�/�:K�:K�H�� -�#�M�c�&�k�k�\�M�2��(�*�*��#�f�,���#�w�'�'� 3��'�*�*�8�4�4���C��*�;�;�B��H�H�H�� 3�s�4� 3��� � �h�/�/���2��w�|�|�A�u�r�z�2�2�2��r*c�f�tj|��d|_g|_i|_d|_dS)NF)r2�initialize_optionsrx�shlibsrsr/�r5s r r�zbuild_ext.initialize_options�s7���%�d�+�+�+�"����� ��� �"����r*c���tj|��|jpg|_|�|j��d�|jD��|_|jr|���|jD]!}|�|j��|_�"|jD�]E}|j}||j |<||j |� d��d<|jr|� |��pd}|otot|t�� }||_||_|�|��x}|_t&j�t&j�|j|����}|r#||jvr|j�|��|r>tr7t&j|jvr$|j�t&j����G|jr d|_dSdS)Nc�<�g|]}t|t���|��S�)rvr)�.0r7s r � z.build_ext.finalize_options..�s6��4�4�4�s�$�S�'�2�2�4�s�4�4�4r*r:r;FT)r2�finalize_optionsrS�check_extensions_listr��setup_shlib_compilerr<r=� _full_namersr?�links_to_dynamicr{rvrr|rXr>� _file_namerBrCr`r@rE� library_dirs�append�curdir�runtime_library_dirsr/r0)r5r7rG�ltd�nsrH�libdirs r r�zbuild_ext.finalize_options�s����#�D�)�)�)��/�/�R��� �"�"�4�?�3�3�3�4�4�d�o�4�4�4�� � �;� (� � %� %� '� '� '��?� =� =�C�!�2�2�3�8�<�<�C�N�N��?� ;� ;�C��~�H�%(�D�L�� "�58�D�L�����,�,�R�0� 1��+�<�$�"7�"7��"<�"<�E��C��C��C�:�c�7�+C�+C�'C�B�$'�C� !� �C�O�(,�(=�(=�h�(G�(G� G�H�s�~��W�_�_�R�W�\�\�$�.�(�%K�%K�L�L�F�� 0�v�S�%5�5�5�� �'�'��/�/�/�� ;�y� ;�R�Y�c�6N�%N�%N��(�/�/�� �:�:�:�� � � ��D�L�L�L� � r*c��t|j|j|j���x}|_t |��|j�|�|j��|j�#|jD]\}}|� ||���|j �|j D]}|� |���|j �|� |j ��|j�|�|j��|j�|�|j��|j�|�|j��t(�|��|_dS)N)r�dry_run�force)r rr�r�rxr!� 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__)r5rr=�value�macros r r�zbuild_ext.setup_shlib_compiler�s]��)5��]�D�L�� �* �* �* � ��4�&� &�h�/�/�/� � � (� � %� %�d�&7� 8� 8� 8� �;� "�!%�� 3� 3� ��u��%�%�d�E�2�2�2�2� �:� !��� /� /���'�'��.�.�.�.� �>� %� � "� "�4�>� 2� 2� 2� � � (� � %� %�d�&7� 8� 8� 8� �:� !� � -� -�d�j� 9� 9� 9� � � (� � %� %�d�&7� 8� 8� 8�'9�&@�&@��&J�&J��#�#�#r*c�d�t|t��r|jStj||��S�N)rvr�export_symbolsr2�get_export_symbols)r5r7s r r�zbuild_ext.get_export_symbols�s0�� �c�7� #� #� &��%� %��,�T�3�7�7�7r*c�>�|���|j} t|t��r |j|_t j||��|jr0|�d��j }|� ||��||_dS#||_wxYw)NrF) �_convert_pyx_sources_to_langrrvrrxr2�build_extensionrXrRrE� write_stub)r5r7� _compilerrEs r r�zbuild_ext.build_extension�s��� �(�(�*�*�*��M� � &��#�w�'�'� 4� $� 3�� � � &�t�S� 1� 1� 1��� 0� �6�6�z�B�B�L� ���� �3�/�/�/�%�D�M�M�M��I�D�M� %� %� %� %s �A-B� Bc� ���t�d�|jD�����d�|j�d��dd�dgz���t ��fd�|jD����S)z?Return true if 'ext' links to a dynamic lib in the same packagec��g|] }|j�� Sr�)r�)r��libs r r�z.build_ext.links_to_dynamic..s��!H�!H�!H�S�#�.�!H�!H�!Hr*r:Nr;r&c3�&�K�|] }�|z�vV�� dSr�r�)r��libname�libnames�pkgs ��r � z-build_ext.links_to_dynamic..s,�����J�J��3��=�H�,�J�J�J�J�J�Jr*)�dict�fromkeysr�r@r�r?�anyr�)r5r7r�r�s @@r r�zbuild_ext.links_to_dynamic�s����� �=�=�!H�!H�D�K�!H�!H�!H�I�I���h�h�s�~�+�+�C�0�0��"��5���<�=�=���J�J�J�J�J�C�M�J�J�J�J�J�Jr*c���|jr3t|��������St t j|��|���z��Sr�)r0�list�get_output_mapping�keys�sortedr2� get_outputs�_build_ext__get_stubs_outputsr�s r r�zbuild_ext.get_outputss\�� �<� :���/�/�1�1�6�6�8�8�9�9� 9��j�,�T�2�2�T�5M�5M�5O�5O�O�P�P�Pr*c�h�|���}tt|d������S)z1See :class:`setuptools.commands.build.SubCommand`c��|dS)Nrr�)�xs r �z.build_ext.get_output_mapping..s ��!�A�$�r*)�key)rmr�r�)r5�mappings r r�zbuild_ext.get_output_mapping s0���*�*�,�,���F�7���7�7�7�8�8�8r*c����fd��jD��}tj|������}t d�|D����S)Nc3��K�|]?}|j� tjj�jg|j�d���R�V��@dS)r:N)rXrBrCr@rEr�r?)r�r7r5s �r r�z0build_ext.__get_stubs_outputs..se����� � ���� � �G�L��� D�#�.�*>�*>�s�*C�*C� D� D� D� � � � � � r*c3�&K�|] \}}||zV�� dSr�r�)r��base�fnexts r r�z0build_ext.__get_stubs_outputs..s*����:�:�[�T�5�D�5�L�:�:�:�:�:�:r*)rS� itertools�product�!_build_ext__get_output_extensionsr�)r5� ns_ext_bases�pairss` r �__get_stubs_outputszbuild_ext.__get_stubs_outputssj��� � � � ��� � � � � �!�,��0L�0L�0N�0N�O�O���:�:�E�:�:�:�:�:�:r*c#�ZK�dV�dV�|�d��jrdV�dSdS)Nr_z.pycrFz.pyo)rRrgr�s r �__get_output_extensionsz!build_ext.__get_output_extensionssH����� � � �� � � � � %� %�j� 1� 1� :� ��L�L�L�L�L� � r*c��tjj|g|j�d���R�dz}|�|||��dSr^)rBrCr@r�r?rZ)r5� output_dirr7rQ� stub_files r r�zbuild_ext.write_stub!sN���G�L��H�c�n�.B�.B�3�.G�.G�H�H�H�5�P� � ���i��g�6�6�6�6�6r*r�c�\�tjd|j|��|r1tj�|��rt |dz���|js�t|d��}|� d� dddtd��zd tj� |j ��zd d d td ��dddtd��dddddtd��dddg����|���|r|�|��dSdS)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&)r�infor�rBrCrTrr��open�writer@r)rDr��close�_compile_and_remove_stub)r5r�r7rQ�fs r rZzbuild_ext._write_stub_file%sR�� ��3�S�^�Y�O�O�O� � K�r�w�~�~�i�0�0� K��I�(I�I�J�J� J��|� ��Y��$�$�A� �G�G�� � �*�C�F��&�M�M�"�$��g�&�&�s�~�6�6�7�+�6�+��?�@�@�.��>��@�A�A�I�9�F�7�!��>�?�?�,�%��1��� � � �8 �G�G�I�I�I� � 5� � )� )�)� 4� 4� 4� 4� 4� 5� 5r*c�"�ddlm}||gdd|j���|�d��j}|dkr||g|d|j���t j�|��r|jst j|��dSdSdS)Nr)� byte_compileT)rgr�r�re) �distutils.utilr�r�rRrgrBrCrT�unlink)r5r�r�rgs r r�z"build_ext._compile_and_remove_stubKs���/�/�/�/�/�/�� �i�[�1���� 7� 7� 7� 7��-�-�m�<�<�E�� �a�<�<� �L�)��x�#�T�\� ;� ;� ;� ;� �7�>�>�)� $� $� !�T�\� !� �I�i� � � � � � !� !� !� !r*N)F) �__name__� __module__� __qualname__r/�bool�__annotations__r0r3rr �strrNr4rYrrmr>r�r�r�r�r�r�rr�rr�r�r�r�rZr�r�r*r r r Ms���������M�4�����G�T����-�-�-�,�Y�,�5��c��?�,�,�,�,� G� G� G�"0� �0��0��0�0�0�0� 4�X�e�C��H�o�%>�4�4�4�4�2���.#�#�#� � � �@K�K�K�68�8�8� &� &� &�K�K�K�Q�T�#�Y�Q�Q�Q�Q� 9�D��c��N�9�9�9�9� ;� ;� ;���� 7�7�7�7�$5�$5�#�$5�I�$5�$5�$5�$5�L !�#� !� !� !� !� !� !r*r c �R�|�|j||||||||| | | | � � dSr�)�link�SHARED_LIBRARY) r5�objects�output_libnamer�r�r�r�r��debug� extra_preargs�extra_postargs� build_temp� target_langs r r�r�[sF�� � � � � ��.� � �<�1E� �E�=�.� � �  � � � � r*�staticc �,�|�J�tj�|��\}} tj�| ��\}}|�d���d��r |dd�}|�||||| ��dS)Nr�r��)rBrCr?rwry� startswith�create_static_lib)r5r�r�r�r�r�r�r�r�r�r�r�r�rHrDr7s r r�r�js����!�!�!�!�w�}�}�^�<�<�� �H���(�(��2�2� ��#� � � �� %� %� 0� 0�� 7� 7� $� ����|�H� ��� �X�z�5�+� � � � � r*) NNNNNrNNNN)-rBrr��importlib.machineryr�importlib.utilrrh�typingrrrr �distutils.command.build_extr � _du_build_ext�distutils.ccompilerr �distutils.sysconfigr r � distutilsr�setuptools.errorsr�setuptools.extensionrr�Cython.Distutils.build_extr2� __import__� ImportErrorrrr!r'r{rzrr=�dl�hasattrr)r-r�r�r*r �r s��� � � � � � � � �����2�2�2�2�2�2�C�C�C�C�C�C�.�.�.�.�.�.�.�.�.�.�.�.�B�B�B�B�B�B�,�,�,�,�,�,�B�B�B�B�B�B�B�B�������'�'�'�'�'�'�3�3�3�3�3�3�3�3��B�B�B�B�B�B��J�%�&�&�&�&�������J�J�J�������z����<�<�<�<�<�<�%�%�%�( � � � � ���<�8����I�I��W��_�_� �� � � � '���J� 7� 7�7� �I�I�� � � � � �� ����"�"�"����H!�H!�H!�H!�H!� �H!�H!�H!�V �' ���4���GK�IM�IM��  �  �  �  �  �  ��G�GK�IM�IM��  � � � � � s$�A � A*�)A*�!B4�4B<�;B<