� ��^i�/��X�dZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z ddl mZmZddlmZmZddlmZddlmZmZddlmZmZdd lmZdd lmZdd lm Z dd l!m"Z"dd l#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*m+Z+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ej7e8��Z9ej:dej;��Ze e e&e e&fZ?de@de=fd�ZAde&de=de>de=fd�ZBde&de=fd�ZCde&de>de=fd�ZDde&de e=fd �ZEde&d!ede@fd"�ZFd#ede=fd$�ZGde&d%e@ddfd&�ZHde&d'e@d(e=d)e e@d*e e@d+e=de e@fd,�ZIde&d'e@d)e e@d*e e@d+e=de e@f d-�ZJde&d*e e@de=fd.�ZKd/e e&d!ed(e=d)e e@d*e e@de?f d0�ZLdS)1z;Orchestrator for building wheels from InstallRequirements. �N)�Any�Callable�Iterable�List�Optional�Tuple)�canonicalize_name�canonicalize_version)�InvalidVersion�Version)� WheelCache)�InvalidWheelFilename�UnsupportedWheel)�FilesystemWheel�get_wheel_distribution)�Link)�Wheel)�build_wheel_pep517)�build_wheel_editable)�build_wheel_legacy)�InstallRequirement)� indent_log)� ensure_dir� hash_file�is_wheel_installed)�make_setuptools_clean_args)�call_subprocess)� TempDirectory)� path_to_url)�vcsz([a-z0-9_.]+)-([a-z0-9_.!+-]+)�s�returnc�P�tt�|����S)zjDetermine whether the string looks like an egg_info. :param s: The string to parse. E.g. foo-2.1 )�bool� _egg_info_re�search)r!s ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/wheel_builder.py�_contains_egg_infor(&s �� � �#�#�A�&�&� '� '�'��req� need_wheel�check_binary_allowedc��|jrdS|jr$|r t�d|j��dS|rdS|jsdS|jr|���S|jrdS||��s"t�d|j��dSt��s"t�d|j��dSdS)zBReturn whether an InstallRequirement should be built into a wheel.Fz(Skipping %s, due to already being wheel.TzCSkipping wheel build for %s, due to binaries being disabled for it.zOUsing legacy 'setup.py install' for %s, since package 'wheel' is not installed.) � constraint�is_wheel�logger�info�name� source_dir�editable�supports_pyproject_editable� use_pep517r)r*r+r,s r'� _should_buildr7.s��  �~���u� �|�� � � �K�K�:��� � � ��u����t� �>���u� �|�1��.�.�0�0�0� �~���t� � �� $� $��� � � Q� �H� � � ��u� � � ��� � � 6� �H� � � � �u� �4r)c�0�t|dt���S)NT�r+r,)r7� _always_true)r*s r'�should_build_for_wheel_commandr;cs�� ���L� Q� Q� Q�Qr)c�&�t|d|���S)NFr9)r7)r*r,s r'� should_build_for_install_commandr=is#�� � ��4H� � � �r)c�r�|js|jsdS|jri|jjr]|jrJ�|jsJ�t j|jj��}|sJ�|�|jj|j��rdSdS|jsJ�|j� ��\}}t|��rdSdS)z� Return whether a built InstallRequirement can be stored in the persistent wheel cache, assuming the wheel cache is available, and _should_build() has determined a wheel needs to be built. FT) r4r3�link�is_vcsr �get_backend_for_scheme�scheme�is_immutable_rev_checkout�url�splitextr()r*� vcs_backend�base�exts r'� _should_cacherIrs��� �|��3�>���u� �x� �C�H�O� ��<�����~���~��0����A�A� ����{� � 0� 0����s�~� N� N� ��4��u� �8�O�O�8���!�!�#�#�I�D�#��$�����t� �5r)� wheel_cachec���t|j��}|jsJ�|r*t|��r|�|j��}n|�|j��}|S)zdReturn the persistent or temporary cache directory where the built wheel need to be stored. )r$� cache_dirr?rI�get_path_for_link�get_ephem_path_for_link)r*rJ�cache_availablerLs r'�_get_cache_dirrP�sj���;�0�1�1�O� �8�O�O�8��B�=��-�-�B��1�1�#�(�;�;� � ��7�7���A�A� � �r)�_c��dS)NT�)rQs r'r:r:�s�� �4r)� wheel_pathc�>�t|jpd��}ttj�|����}t|j��|kr(t d�||j�����tt|��|��}t|j ��}t|��t|j ��kr(t d�||j �����|j }|�td��� t|��}n"#t $rd|��}t|���wxYw|td��kr�>�)�)�*�T�\�7�2S�2S�)�� �$�f�[�1�1� � � �*�)�)�)s �D*�*E � output_dir�verify� build_options�global_optionsr4c��|rdnd} t|��n:#t$r-}t�d||j|��Yd}~dSd}~wwxYw|j5t |||||��}ddd��n #1swxYwY|rU|rS t||��nA#ttf$r-}t�d||j|��Yd}~dSd}~wwxYw|S)zaBuild one wheel. :return: The filename of the built wheel, or None if the build failed. r4�wheelzBuilding %s for %s failed: %sNzBuilt %s for %s is invalid: %s) r�OSErrorr0�warningr2� build_env�_build_one_inside_envrerr) r*rfrgrhrir4�artifact�erTs r'� _build_onerr�sr��&�2�z�z�7�H� ��:������ ������� +� � �H� �  � � � �t�t�t�t�t��������� �� � �*� ��]�N�H� � � � � � � � � � � � � � ���� � � � ���f�� � ��Z� (� (� (� (��$�&6�7� � � � �N�N�;�X�s�x�QR� S� S� S��4�4�4�4�4����� ���� �s>�� A�"A � A�A9�9A=�A=� B�C�+"C�Cc �H�td���5}|jsJ�|jr�|jsJ�|jsJ�|r t �d|j��|r t �d|j��|r(t|j|j|j|j���}nQt|j|j|j|j���}n)t|j|j |j |||j���}|��tj�|��}tj�||��} t!|��\} } t#j||��t �d|j|| | �����t �d|��|cddd��S#t*$r+} t �d |j| ��Yd} ~ nd} ~ wwxYw|jst-||�� ddd��dS#1swxYwYdS) Nrk)�kindz7Ignoring --global-option when building %s using PEP 517z6Ignoring --build-option when building %s using PEP 517)r2�backend�metadata_directory�tempd)r2� setup_py_pathr3rirhrwz3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)rr2r6rv�pep517_backendr0rmrrXrrrx�unpacked_source_directoryrWrY�joinr�shutil�mover1� hexdigest� Exception�_clean_one_legacy) r*rfrhrir4�temp_dirrT� wheel_name� dest_path� wheel_hash�lengthrqs r'roro�s��� �G� $� $� $�=���x���x� �>�! ��)� )� )�)��%� %� %�%�� ����M�s�x����� ����L�c�h����� �1����.�'*�'=�"�-� ��� � �0����.�'*�'=�"�-� ��� � �,��X�!�/��8�-�+��m� ���J� � !���)�)�*�5�5�J��� � �Z��<�<�I� �%.�z�%:�%:�"� �F�� �J� �2�2�2�� � �I��H����(�(�*�*� ���� � �5�z�B�B�B� �g=�=�=�=�=�=�=�=��h� � � ����6��H�������������� �����~� 3� �c�>� 2� 2� 2��{=�=�=�=�=�=�=�=�=�=�=�=����=�=�=�=�=�=s7�D#H�5A8F:�: G/�!G*�%H�*G/�/H�H�Hc��t|j|���}t�d|j�� t ||j���dS#t$r$t�d|j��YdSwxYw)N)rizRunning setup.py clean for %s)�cwdTz Failed cleaning build dir for %sF) rrxr0r1r2rr3r�error)r*ri� clean_argss r'r�r�1s���+� ��%����J�  �K�K�/���:�:�:��� ���7�7�7�7��t�� ����� � �7���B�B�B��u�u����s�A�*A>�=A>� requirementsc ��|sggfSt�dd�d�|D������t��5gg}}|D]�}|jsJ�t ||��}t ||||||jo|j��} | rVtt| ����|_ |j j |_ |j jsJ�|�|����|�|���� ddd��n #1swxYwY|r8t�dd�d�|D������|r8t�dd�d �|D������||fS) z�Build wheels. :return: The list of InstallRequirement that succeeded to build and the list of InstallRequirement that failed to build. z*Building wheels for collected packages: %sz, c3�$K�|] }|jV�� dS)N�r2��.0r*s r'� zbuild..Rs$����3�3�s�#�(�3�3�3�3�3�3r)NzSuccessfully built %s� c��g|] }|j�� SrSr�r�s r'� zbuild..os��:�:�:�3�c�h�:�:�:r)zFailed to build %sc��g|] }|j�� SrSr�r�s r'r�zbuild..ts��9�9�9�3�c�h�9�9�9r))r0r1r{rr2rPrrr4�permit_editable_wheelsrrr?� file_path�local_file_pathr/�append) r�rJrgrhri�build_successes�build_failuresr*rL� wheel_files r'�buildr�@s �� ���2�v� � �K�K�4� � � �3�3�l�3�3�3�3�3���� ���+�+�*,�b���� +� +�C��8�O�O�8�&�s�K�8�8�I�#������� �;��!;� ��J�� +�� �J� 7� 7�8�8���&)�h�&8��#��x�(�(�(�(��&�&�s�+�+�+�+��%�%�c�*�*�*�*�% +�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�.� �� � � #� �H�H�:�:�/�:�:�:� ;� ;� � � �� �� � � � �H�H�9�9�.�9�9�9� :� :� � � � �N� *�*s� B0D � D�D)M�__doc__�logging�os.pathrW�rer|�typingrrrrrr�pip._vendor.packaging.utilsr r �pip._vendor.packaging.versionr r �pip._internal.cacher �pip._internal.exceptionsrr�pip._internal.metadatarr�pip._internal.models.linkr�pip._internal.models.wheelr�$pip._internal.operations.build.wheelr�-pip._internal.operations.build.wheel_editabler�+pip._internal.operations.build.wheel_legacyr�pip._internal.req.req_installr�pip._internal.utils.loggingr�pip._internal.utils.miscrrr�$pip._internal.utils.setuptools_buildr�pip._internal.utils.subprocessr�pip._internal.utils.temp_dirr�pip._internal.utils.urlsr�pip._internal.vcsr � getLogger�__name__r0�compile� IGNORECASEr%r$�BinaryAllowedPredicate� BuildResultr[r(r7r;r=rIrPr:rerrror�r�rSr)r'�r�s������������� � � � � � � � �A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�O�O�O�O�O�O�O�O�A�A�A�A�A�A�A�A�*�*�*�*�*�*�K�K�K�K�K�K�K�K�J�J�J�J�J�J�J�J�*�*�*�*�*�*�,�,�,�,�,�,�C�C�C�C�C�C�N�N�N�N�N�N�J�J�J�J�J�J�<�<�<�<�<�<�2�2�2�2�2�2�N�N�N�N�N�N�N�N�N�N�K�K�K�K�K�K�:�:�:�:�:�:�6�6�6�6�6�6�0�0�0�0�0�0�!�!�!�!�!�!� �� �8� $� $���r�z�;�R�]�K�K� �!�#5�"6��"<�=���D�+�,�d�3E�.F�F�G� �(�#�(�$�(�(�(�(�2� �2��2�1�2� � 2�2�2�2�jR� �R� �R�R�R�R� � ��0�� ������ �� �d�^�����@ � � �� � � � � � � �C��D����� �'� �S� �T� � � � �<#� �#��#� �#���9� #� ��I� #� � #��c�]�#�#�#�#�LD� �D��D���9�D���I� D� � D� �c�]� D�D�D�D�N �-� �t�C�y� �T� � � � �7+��-�.�7+��7+� �7+���9� 7+� ��I� 7+� � 7+�7+�7+�7+�7+�7+r)