Edit File: build_ext.cpython-311.pyc
� �����f�{�����������������������������d�Z�ddlZddlZddlZddlZddlmZ�ddlT�ddlm Z m Z �ddlmZ�ddlm Z �ddlmZ�dd lmZ�dd lmZ�ddlmZ��ej��������d������������Zd ��Z�G�d��de������������ZdS�)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).�����N)�Command)�*)�customize_compiler�get_python_version)�get_config_h_filename)�newer_group)� Extension)�get_platform)�log)� USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c�������������������&�����ddl�m}���|����������������d�S�)Nr�����show_compilers)�distutils.ccompilerr���r���s��� �B/opt/alt/python311/lib64/python3.11/distutils/command/build_ext.pyr���r������s(������2�2�2�2�2�2��N����������c�������������������� ����e�Zd�ZdZdej��������z��Zddddd�e��������������z��fdd d dez���fdd ddddez���fddddddddddgZg�d�Z ddde fgZd ��Zd!��Z d"��Zd#��Zd$��Zd%��Zd&��Zd'��Zd(��Zej��������d)����������������Zd*��Zd+��Zd,��Zd-��Zd.��Zd/��Zd0��Zd1��ZdS�)2� build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s'))z build-lib=�bz(directory for compiled extension modules)zbuild-temp=�tz1directory for temporary files (build by-products)z plat-name=�pz>platform name to cross-compile for, if supported (default: %s))�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)zdefine=�DzC preprocessor macros to define)zundef=�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)zrpath=�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=�czspecify the compiler type)z parallel=�jznumber of parallel build jobs)�swig-cppNz)make SWIG create C++ files (default is C))z swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)�userNz#add user include, library and rpath)r���r!���r#���r'���r(���z help-compilerNzlist available compilersc������������������,����d�|�_���������d�|�_��������d�|�_��������d�|�_��������d|�_��������d�|�_��������d�|�_��������d�|�_��������d�|�_��������d�|�_ ��������d�|�_ ��������d�|�_��������d�|�_��������d�|�_ ��������d�|�_��������d�|�_��������d�|�_��������d�|�_��������d�|�_��������d�|�_��������d�|�_��������d�S�)Nr���)� extensions� build_lib� plat_name� build_tempr����package�include_dirs�define�undef� libraries�library_dirs�rpath�link_objectsr!���r#����compiler�swig�swig_cpp� swig_optsr(����parallel��selfs��� r����initialize_optionszbuild_ext.initialize_optionsj���s������������������������� �������� ���� ����� � ����� ��� ��� ��� ��� ������ ��� � � r���c����������� ������������ddl�m}�|����������������������ddddddd d �������������|�j���������|�j��������j��������|�_��������|�j��������j��������|�_��������|�����������������������������������}|���������������������d�������������}|�j ���������|�j��������j ��������pg�|�_ ��������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��������dk�����r�|�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�����������������������������t?�������������������������������������������������tA����������t����������dd�������������}|r|�j�����������������������������|�������������|�j!��������dk����rd}n|�j!��������dd�����������}t����������j�����������������������������t����������j��������d������������}|r t����������j�����������������������������||������������}|�j�����������������������������|�������������t����������j"��������d�d����������dk����r�t����������j#���������$��������������������t����������j�����������������������������t����������j��������d������������������������rT|�j�����������������������������t����������j�����������������������������t����������j��������ddtK������������������������z���d�������������������������n|�j�����������������������������d�������������|�&��������������������d������������rO|j'��������s.|�j�����������������������������|�&��������������������d �������������������������n|�j�����������������������������d�������������|�j(��������r+|�j(�����������������������������d!������������}d"��|D���������������|�_(��������|�j)��������r|�j)�����������������������������d!������������|�_)��������|�j*���������g�|�_*��������n|�j*�����������������������������d#������������|�_*��������|�j+��������r�t����������j�����������������������������tX����������d ������������}t����������j�����������������������������tX����������d������������} t����������j���������-��������������������|������������r|�j �����������������������������|�������������t����������j���������-��������������������| ������������r4|�j�����������������������������| �������������|�j�����������������������������| �������������t����������|�j.��������t����������������������r9 �t_����������|�j.��������������������|�_.��������d�S�#�t`����������$�r�tc����������d$�������������w�xY�wd�S�)%Nr���)� sysconfig�build)r+���r+���)r-���r-���)r6���r6���)r!���r!���)r#���r#���)r:���r:���)r,���r,�������)� plat_specific�includer2���r5����nt�libs�Debug�Release�_home�win32�����PCbuild�����cygwin�bin�lib�python�config�.�Py_ENABLE_SHARED�LIBDIR�,c�����������������������g�|�]}|d�f��S�)�1��)�.0�symbols��� r���� <listcomp>z.build_ext.finalize_options.<locals>.<listcomp>����s������?�?�?�V�F�C�=�?�?�?r���� zparallel should be an integer)2� distutilsr?����set_undefined_optionsr.����distribution�ext_package�ext_modulesr*����get_python_incr/���� isinstance�str�split�os�pathsep�sys�exec_prefix�base_exec_prefix�append�path�join�extend�ensure_string_listr2���r3���r4����name�prefixr!���r-����dirnamer����getattrr,����platform� executable� startswithr����get_config_var�python_buildr0���r1���r9���r(���r����isdirr:����int� ValueError�DistutilsOptionError) r<���r?���� py_include�plat_py_include� _sys_home�suffix�new_lib�defines�user_include�user_libs ��� r����finalize_optionszbuild_ext.finalize_options����s`�����'�'�'�'�'�'��"�"�7�#=�#?�#;�#5�#5�#;�#=� %�� %�� %���<���,�8�D�L��+�7�����-�-�/�/� �#�2�2��2�C�C����$� $� 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�(�(���$�$��%�%�b�g�o�6�6� 8�� 8�� 8�� ����,�,�,�����/�/�/���>�!��D�N���$� "�D��� ��)�3� /� /�� D� $� 1� 7� 7�� � C� C�D���:���D�J�J� �� �C� (� (�� 6���)�)�"�*�5�5�D�J� ��7�d�?�?�� ��$�$�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���W�d�3�3�I��� 4��!�(�(��3�3�3���~��(�(� ���������+���g�l�l�3�?�I�>�>�G��� 8��'�,�,�w��7�7����$�$�W�-�-�-���<�����x�'�'��~�(�(�����c�o�u�)M�)M�N�N�� .��!�(�(�����c�j�%�6>�AS�AU�AU�6U�6>�*@��*@��A��A��A��A� ��!�(�(��-�-�-� � �$�$�%7�8�8�� .��)�� .��!�(�(��)A�)A�(�)K�)K�L�L�L�L���!�(�(��-�-�-���;�� @��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�� Ls����;]��]0c������������������v����ddl�m}�|�j��������sd�S�|�j�������������������������������������������rb|����������������������d������������}|�j�����������������������������|�����������������������������������pg��������������|�j ��������� ��������������������|j����������������������||�j��������|�j ��������|�j��������|�j���������������������|�_��������t!����������|�j���������������������t"����������j��������dk����r6|�j��������t)������������������������k����r|�j�����������������������������|�j���������������������|�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�)Nr���)�new_compiler� build_clib)r6����verbose�dry_runr#���rD���)#r���r����r*���r_����has_c_libraries�get_finalized_commandr2���rn����get_library_namesr3���rk���r����r6���r����r����r#���r���rf���rp���r,���r ���� initializer/����set_include_dirsr0����define_macror1����undefine_macro� set_libraries�set_library_dirsr4����set_runtime_library_dirsr5����set_link_objects�build_extensions)r<���r����r����rp����value�macros��� r����runz build_ext.run��s2�����4�4�4�4�4�4����� ��F� ���,�,�.�.�� <��3�3�L�A�A�J��N�!�!�*�">�">�"@�"@�"F�B�G�G�G���$�$�Z�%:�;�;�;��%��d�m�-1�\�-1�\�+/�:�7��7��7�� �� �4�=�)�)�)���7�d�?�?�t�~����?�?��M�$�$�T�^�4�4�4����(��M�*�*�4�+<�=�=�=��;�"�!%��� 8�� 8� ��u�� �*�*�4��7�7�7�7��:�!���� 4�� 4��� �,�,�U�3�3�3�3��>�%��M�'�'���7�7�7���(��M�*�*�4�+<�=�=�=��:�!��M�2�2�4�:�>�>�>���(��M�*�*�4�+<�=�=�=�� �������r���c����������������������t����������|t����������������������st����������d�������������t����������|������������D��] \��}}t����������|t����������������������r�t����������|t ����������������������rt ����������|������������dk����rt����������d�������������|\��}}t����������j��������d|�������������t����������|t����������������������rt�������������������������������|������������st����������d�������������t����������|t����������������������st����������d�������������t ����������||d���������������������}dD�]*}|� ��������������������|������������}|�t����������|||��������������+|� ��������������������d ������������|_��������d|v�rt����������j��������d�������������|� ��������������������d ������������}|r�g�|_��������g�|_��������|D�]�} t����������| t ����������������������rt ����������| ������������dv�st����������d�������������t ����������| ������������dk����r!|j�����������������������������| d�����������������������kt ����������| ������������dk����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 instances����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/���r3���r2���� extra_objects�extra_compile_args�extra_link_argsNr4����def_filez9'def_file' element of build info dict no longer supported�macros)rA���r����z9'macros' element of build info dict must be 1- or 2-tuplerA���r���)rc����list�DistutilsSetupError� enumerater ����tuple�lenr����warnrd����extension_name_re�match�dict�get�setattr�runtime_library_dirs� define_macros�undef_macrosrk���) r<���r*���r����ext�ext_name� build_info�key�valr����r����s ��� r����check_extensions_listzbuild_ext.check_extensions_listV��s��������*�d�+�+�� P�%�N�P��P�� P�� � �+�+��> ��> �F�A�s��#�y�)�)�� ����c�5�)�)�� 8�S��X�X��]�]�)�7�8��8��8��$'� �H�j��H��?�@H� J�� J�� J���x��-�-�� @�%�+�+�H�5�5� @�)�?�@��@��@���j�$�/�/�� <�)�;�<��<��<���H�j��&;�<�<�C�+�� +�� +���!�n�n�S�)�)���?��C��c�*�*�*���(2�~�~�g�'>�'>�C�$��Z�'�'����/��0��0��0� � �^�^�H�-�-�F��� 8�$&��!�#%�� �#��8��8�E�&�u�e�4�4��7��U���v�9M�9M�1�6�7��7��7���5�z�z�Q����(�/�/��a��9�9�9�9��U���q����)�0�0��7�7�7���J�q�M�M�}> ��> r���c�����������������������|�����������������������|�j���������������������g�}|�j��������D�]}|���������������������|j����������������������|S��N)r����r*���rn���r����)r<���� filenamesr����s��� r����get_source_fileszbuild_ext.get_source_files���sO�������"�"�4�?�3�3�3�� ���?�� *�� *�C����S�[�)�)�)�)��r���c�����������������������|�����������������������|�j���������������������g�}|�j��������D�]/}|���������������������|����������������������|j����������������������������������0|S�r����)r����r*���rk����get_ext_fullpathrp���)r<����outputsr����s��� r����get_outputszbuild_ext.get_outputs���s\������� �"�"�4�?�3�3�3� ����?�� <�� <�C��N�N�4�0�0���:�:�;�;�;�;��r���c�����������������������|�����������������������|�j���������������������|�j��������r|�������������������������������������d�S�|�������������������������������������d�S�r����)r����r*���r:����_build_extensions_parallel�_build_extensions_serialr;���s��� r���r����zbuild_ext.build_extensions���sR�������"�"�4�?�3�3�3��=�� ,��+�+�-�-�-�-�-��)�)�+�+�+�+�+r���c����������������������������j���������}��j���������du�rt����������j����������������������} �ddlm}�n#�t ����������$�r�d�}Y�nw�xY�w|���������������������������������������d�S��||�������������5�����fd���j��������D���������������}t������������j��������|������������D�]F\��}}��� ��������������������|������������5��|� �����������������������������������d�d�d��������������n#�1�swxY�w�Y����G �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)NTr���)�ThreadPoolExecutor)�max_workersc������������������F������g�|�]}������������������������j��������|��������������S�rX���)�submit�build_extension)rY���r�����executorr<���s��� ��r���r[���z8build_ext._build_extensions_parallel.<locals>.<listcomp>���s:��������3��3��3��� ���t�';�S�A�A��3��3��3r���)r:���rf���� cpu_count�concurrent.futuresr�����ImportErrorr����r*����zip�_filter_build_errors�result)r<����workersr�����futuresr�����futr����s���` @r���r����z$build_ext._build_extensions_parallel���s���������-���=�D� � ��l�n�n�G� �=�=�=�=�=�=�=���� �� �� ��G�G�G� ������?��)�)�+�+�+��F� � �G� 4� 4� 4�� !��3��3��3��3��3�"&�/�3��3��3�G�����9�9�� !�� !���S��.�.�s�3�3��!��!��J�J�L�L�L�!��!��!��!��!��!��!��!��!��!��!�����!��!��!��!�� !� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !����� !�� !�� !�� !�� !�� !sC����.��=�=�$AC#�(C �=C#� C � C#�C �C#�#C'�*C'c�����������������������|�j���������D�]D}|����������������������|������������5��|����������������������|�������������d�d�d��������������n#�1�swxY�w�Y����Ed�S�r����)r*���r����r����)r<���r����s��� r���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�}~ww�xY�w)Nzbuilding extension "z " failed: )�CCompilerError�DistutilsError�CompileError�optionalr����rp���)r<���r�����es��� r���r����zbuild_ext._filter_build_errors���s����������� %��E�E�E�E�E�����=�� %�� %�� %��<�� ���I�I�I��x�x�x���$�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %���s���� ��A�(A�Ac����������������������|j���������}|�t����������|t����������t����������f������������st ����������d|j��������z���������������t ����������|������������}|����������������������|j��������������������}||j��������z���}|�j ��������s-t����������||d������������st����������j��������d|j���������������������d�S�t����������j ��������d|j���������������������|����������������������||������������}|j��������pg�}|j��������d�d�����������}|j��������D�]}|���������������������|f��������������|�j�����������������������������||�j��������||j��������|�j��������||j���������������������}|d�d�����������|�_��������|j��������r|���������������������|j���������������������|j��������pg�}|j��������p|�j�����������������������������|������������} |�j�����������������������������|||����������������������|������������|j��������|j ��������||��!��������������������|������������|�j��������|�j��������| �� ��� ���������d�S�)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenames�newerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension)� output_dirr����r/���r!����extra_postargs�depends)r2���r3���r����r�����export_symbolsr!���r-����target_lang)"r����rc���r����r����r����rp����sortedr����r����r#���r���r���r!����info�swig_sourcesr����r����r����rk���r6����compiler-���r/����_built_objectsr����rn���r�����language�detect_language�link_shared_object� get_librariesr3���r�����get_export_symbols) r<���r����r�����ext_pathr����� extra_argsr����r1����objectsr����s ��� r���r����zbuild_ext.build_extension���s������+���?�*�W�t�U�m�"D�"D�?�%�/�14��:�;��;�� ;� ���/�/���(�(���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�(�#�#�#�#��-�'�'��48�O�06�69�6F�/3�z�8B�14�� �(��>��>���&�a�a�a�j��� ���� .��N�N�3�,�-�-�-��(�.�B� ���<�I�4�=�#@�#@��#I�#I��� �(�(��X��(�(��-�-��)�!$�!9�%��2�2�3�7�7��*��� �� )�� "�� "�� "�� "�� "r���c����������������������g�}g�}i�}|�j���������rt����������j��������d�������������|�j���������sd|�j��������v�s d|j��������v�rd}nd}|D�]{}t����������j�����������������������������|������������\��}} | dk����r<|���������������������|dz���|z����������������|���������������������|�������������|d���������||<����f|���������������������|��������������||s|S�|�j��������p|�� ����������������������������������} | dg}|� ��������������������|�j���������������������|�j���������r|���������������������d�������������|�j��������s|j��������D�]}|���������������������|��������������|D�];}||���������} t����������j��������d || �������������|����������������������|d | |gz�����������������<|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-pythonzswigging %s to %sz-o) r8���r���r����r9���rf���rl����splitextrk���r7���� find_swigrn���r�����spawn)r<���r����� extension�new_sourcesr�����swig_targets� target_ext�source�baser����r7����swig_cmd�o�targets��� r���r����zbuild_ext.swig_sources2��s���������������=�� H��H�F�G�G�G��=�� �V�t�~�5�5��i�)�)�)��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�#�#�#���~�� #��(�� #�� #������"�"�"�"�"�� :�� :�F�!�&�)�F��H�(�&�&�9�9�9��J�J�x�4���"8�8�9�9�9�9��r���c����������������������t�����������j��������dk����rdS�t�����������j��������dk����rMdD�]H}t�����������j�����������������������������d|z��d������������}t�����������j�����������������������������|������������r|c�S��IdS�t����������dt�����������j��������z���������������)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. �posixr7���rD���)z1.3z1.2z1.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rf���rp���rl���rm����isfile�DistutilsPlatformError)r<����vers�fns��� r���r����zbuild_ext.find_swigh��s������� ��7�g����6� �W��_�_��.�� "�� "���W�\�\�,��"5�z�B�B���7�>�>�"�%�%����I�I�I���"�z�(�%�')�w�/�0��0�� 0r���c������������������*����|�����������������������|������������}|���������������������d������������}|����������������������|d���������������������}|�j��������sDt ����������j��������j��������|dd����������|gz�����}t����������j�����������������������������|�j��������|������������S�d���������������������|dd����������������������}|����������������������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). rR���r����Nr����build_py)�get_ext_fullnamere����get_ext_filenamer���rf���rl���rm���r+���r�����abspath�get_package_dir)r<���r�����fullname�modpath�filenamer.���r���package_dirs��� r���r����zbuild_ext.get_ext_fullpath���s���������(�(��2�2���.�.��%�%���(�(����5�5���|�� :���w�|�W�S�b�S�\�8�*�%<�=�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�2r���c������������������.�����|�j����������|S�|�j���������dz���|z���S�)zSReturns the fullname of a given extension name. Adds the `package.` prefixNrR���)r.���)r<���r����s��� r���r��zbuild_ext.get_ext_fullname���s#��������<���O��<�#�%��0�0r���c������������������z�����ddl�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����rw���rR���� EXT_SUFFIX)�distutils.sysconfigrw���re���rf���rl���rm���)r<���r����rw���r����� ext_suffixs��� r���r��zbuild_ext.get_ext_filename���sJ������ � 7�6�6�6�6�6��>�>�#�&�&��#�^�L�1�1� ��w�|�X�&��3�3r���c������������������r����d|j������������������������������d������������d���������z���} �|���������������������d�������������nO#�t����������$�rB�d|���������������������d���������������������������������dd���������������������������������d������������z���}Y�nw�xY�wd |z���}||j��������vr|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. �_rR���r�����asciir����punycode����-����_�PyInit)rp���re����encode�UnicodeEncodeError�replace�decoder����rk���)r<���r����r����� initfunc_names��� r���r����zbuild_ext.get_export_symbols���s���������s�x�~�~�c�*�*�2�.�.�� Y�� �M�M�'�"�"�"�"��!�� Y�� Y�� Y��6�=�=��4�4�<�<�T�4�H�H�O�O�PW�X�X�X�F�F�F� Y�����!�6�)� ��� 2�2�2���%�%�m�4�4�4��!�!s����;��A B�Bc����������������������t�����������j��������dk����rYddlm}�t ����������|�j��������|������������s=d}|�j��������r|dz���}|t�����������j��������dz ��t�����������j��������dz ��dz��fz��}|j��������|gz���S�n�dd l m }�d }�|d������������r\t����������t�����������d������������rd }nDt�����������j��������dk����rd }n1dt����������j ��������v�r#�|d������������dk����rd }n�|d������������dk����rd }|r�|d������������}|j��������d|z���gz���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). rI���r���)�MSVCCompilerz python%d%d�_d������������r ��FrS����getandroidapilevelTrM����_PYTHON_HOST_PLATFORM�ANDROID_API_LEVEL�MACHDEP� LDVERSIONrP���)rh���rt����distutils._msvccompilerr��rc���r6���r!���� hexversionr2���r��rw����hasattrrf����environ)r<���r����r���template� pythonlibrw����link_libpython� ldversions��� r���r����zbuild_ext.get_libraries���s]�������<�7�"�"�<�<�<�<�<�<��d�m�\�:�:�� 3�'���:��/�'�$��H�%���"�,�s�~��/C�t�.K�L�M� ���}� �{�2�2� 3�$� ;�:�:�:�:�:�"�N��~�0�1�1�� .��3� 4�5�5�� .�%)�N�N��\�X�-�-�%)�N�N�,�� �:�:�%�~�&9�:�:�a�?�?�)-���'�� �2�2�h�>�>�)-���� >�*�N�;�7�7� ��}��9�(<�'=�=�=��}�r���) �__name__� __module__�__qualname__�descriptionrf���rg����sep_byr ����user_options�boolean_optionsr����help_optionsr=���r����r����r����r����r����r����r����r����� contextlib�contextmanagerr����r����r����r����r����r��r��r����r����rX���r���r���r���r���!���s�������������L�K�(�$�b�j� 0�F� 5� >� �s� �'�<�>�>� *� +� 9�� �#� 9�F� B� D� ,� .� .� �#� 9�F� B� D� D� ?� 4� ?� &� *� 6� .� (� 0�O) �L�V�H�G�G�O�� �$� #�^� 5� �L� �����0RL��RL��RL�h> ��> ��> �@L ��L ��L �\����������,��,��,�!��!��!�(*��*��*� ���%��%����%�J"��J"��J"�X4��4��4�l0��0��0�03��3��3�61��1��1�4��4��4�"��"��"�&1��1��1��1��1r���r���)�__doc__r8��rf����rerh����distutils.corer����distutils.errorsr��r���r���r����distutils.dep_utilr����distutils.extensionr ����distutils.utilr ���r]���r����siter���r����r����r���r���rX���r���r����<module>rB�����s@���������������� � � � �� � � � �� � � � ��"��"��"��"��"��"����������F��F��F��F��F��F��F��F��5��5��5��5��5��5��*��*��*��*��*��*��)��)��)��)��)��)��'��'��'��'��'��'���������������������������B�J�;�=��=�������� Q��Q��Q��Q��Q���Q��Q��Q��Q��Qr���