� ��^i�&���dZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddlmZmZmZmZmZmZmZmZddlmZddlmZdd lmZdd lmZdd l m!Z!dd l"m#Z#m$Z$m%Z%dd l&m'Z'ddl(m)Z)ddl*m+Z+m,Z,erddl-m.Z.ej/e0��Z1Gd�d��Z2ej3dee4fd���Z5Gd�d��Z6Gd�de6��Z7dS)z;Build Environment used for isolation during sdist building �N)� OrderedDict)� get_paths)� TracebackType)� TYPE_CHECKING�Iterable�Iterator�List�Optional�Set�Tuple�Type)�where)� Requirement)�Version)�__file__)� open_spinner)� get_platlib�get_prefixed_libs� get_purelib)�get_environment)�call_subprocess)� TempDirectory� tempdir_kinds)� PackageFinderc��eZdZdeddfd�ZdS)�_Prefix�path�returnNc��||_d|_ttjdkrdnd||d����d|_t |��|_dS)NF�nt� posix_prefix)�base�platbase)�vars�scripts)r�setupr�os�name�bin_dirr�lib_dirs)�selfrs ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/build_env.py�__init__z_Prefix.__init__"sa���� ��� � ��G�t�O�O�D�D���D�1�1� � � � ��� �*�$�/�/�� � � �)�__name__� __module__� __qualname__�strr-�r.r,rr!s6������0�S�0�T�0�0�0�0�0�0r.rrc #��K�tjt�����j}|���st |��V�dStd���5}tj � |j d��}i}tj dkrd|d<tj|dfi|��5}|�d ��D]B}|�||�|j��������C ddd��n #1swxYwYtj � |d ��V�ddd��dS#1swxYwYdS) z�Create a "standalone pip" zip file. The zip file's content is identical to the currently-running pip. It will be used to install requirements into the build environment. Nzstandalone-pip)�kindz__env_pip__.zip)��F�strict_timestamps�w�*�pip)�pathlib�Path� pip_location�resolve�parent�is_dirr2rr'r�join�sys� version_info�zipfile�ZipFile�rglob�write� relative_to�as_posix)�source�tmp_dir�pip_zip�kwargs�zf�childs r,�_create_standalone_piprQ,s������\�,� '� '� /� /� 1� 1� 8�F� �=�=�?�?���&�k�k������ �,� -� -� -�+���'�,�,�w�|�->�?�?���� � �v� %� %�*/�F�&� '� �_�W�c� 4� 4�V� 4� 4� M�����c�*�*� M� M������� 1� 1�&�-� @� @� I� I� K� K�L�L�L�L� M� M� M� M� M� M� M� M� M� M� M� M���� M� M� M� M��g�l�l�7�E�*�*�*�*�*�+�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�+�+s8�*AE�:AD � E� D$ �$E�'D$ �(%E�E�!Ec �"�eZdZdZdd�Zdd�Zdeeedeedee ddfd �Z d e e de ee e e fee ffd �Zd d de e de de ddf d�Zede d d de e dede ddf d���ZdS)�BuildEnvironmentzACreates and manages an isolated environment to install build depsrNc���ttjd����t�fd�dD����|_g|_g|_tt|j� ������D]@}|j� |j ��|j� |j ���Ad�t��t��fD��}t j��jd��|_t j�|j��st!j|j��t-t j�|jd��d��5}|�t1jd ���||j� ����ddd��dS#1swxYwYdS) NT)r5�globally_managedc3��K�|]8}|ttj��j|����fV��9dS�N)rr'rrB)�.0r(�temp_dirs �r,� z,BuildEnvironment.__init__..LsV�����% �% ���7�2�7�<�<�� �t�<�<�=�=� >�% �% �% �% �% �% r.)�normal�overlayc�L�h|]!}tj�|����"Sr3)r'r�normcase)rX�sites r,� z,BuildEnvironment.__init__..Zs5�� � � �'+�B�G� � �T� "� "� � � r.r_zsitecustomize.pyr9a� import os, site, sys # First, drop system-sites related paths. original_sys_path = sys.path[:] known_paths = set() for path in {system_sites!r}: site.addsitedir(path, known_paths=known_paths) system_paths = set( os.path.normcase(path) for path in sys.path[len(original_sys_path):] ) original_sys_path = [ path for path in original_sys_path if os.path.normcase(path) not in system_paths ] sys.path = original_sys_path # Second, add lib directories. # ensuring .pth file are processed. for path in {lib_dirs!r}: assert not path in sys.path site.addsitedir(path) )� system_sitesr*)rr� BUILD_ENVr� _prefixes� _bin_dirs� _lib_dirs�reversed�list�values�appendr)�extendr*rrr'rrB� _site_dir�exists�mkdir�openrH�textwrap�dedent�format)r+�prefixra�fprYs @r,r-zBuildEnvironment.__init__Is���� �m�&=�PT�U�U�U��$�% �% �% �% �-�% �% �% � � ��� %'���$&����t�D�N�$9�$9�$;�$;�<�<�=�=� 3� 3�F� �N� !� !�&�.� 1� 1� 1� �N� !� !�&�/� 2� 2� 2� 2�  � �0;� � �{�}�}�/M� � � � �����h�m�V�<�<����w�~�~�d�n�-�-� %� �H�T�^� $� $� $� �"�'�,�,�t�~�/A�B�B�C� H� H� �B� �H�H������2�&�l�T�^�&�L�L�5 � � � � � � � � � � � � � � ���� � � � � � s�?AG�G�Gc��d�dD��|_|jdd�}|jd}|r2|�|�tj����|jg}tj�tj� |��dtj� |��d���dS)Nc�P�i|]#}|tj�|d����$SrW)r'�environ�get)rXr(s r,� z.BuildEnvironment.__enter__..s:�� � � �� �"�*�.�.��t�,�,� � � r.)�PATH�PYTHONNOUSERSITE� PYTHONPATHry�1) � _save_envrdrj�splitr'�pathseprkrv�updaterB)r+r�old_path� pythonpaths r,� __enter__zBuildEnvironment.__enter__~s��� � �B� � � ��� �~�a�a�a� ���>�&�)�� � 4� �K�K����r�z�2�2� 3� 3� 3��n�%� � � ���� ����-�-�$'� �j�o�o�j�9�9� � � � � � � r.�exc_type�exc_val�exc_tbc��|j���D]7\}}|�!tj�|d���(|tj|<�8dSrW)r}�itemsr'rv�pop)r+r�r�r��varname� old_values r,�__exit__zBuildEnvironment.__exit__�s^�� #'�.�"6�"6�"8�"8� 0� 0� �G�Y�� �� ���w��-�-�-�-�&/�� �7�#�#�  0� 0r.�reqsc��t��}t��}|r�t|j��}|D]�}t|��}|�|j��}|s|�|���Ct|jt��r|j�d|j��}n|j�d|j��}|j|j vr|�||f����||fS)z�Return 2 sets: - conflicting requirements: set of (installed, wanted) reqs tuples - missing requirements: set of reqs z==z===) �setrrer�get_distributionr(�add� isinstance�versionr� specifier) r+r��missing� conflicting�env�req_str�req�dist�installed_req_strs r,�check_requirementsz#BuildEnvironment.check_requirements�s����%�%���e�e� � � B�!�$�.�1�1�C�� B� B��!�'�*�*���+�+�C�H�5�5�����K�K��(�(�(���d�l�G�4�4�G�+.�8�(E�(E�t�|�(E�(E�%�%�+.�8�(F�(F�� �(F�(F�%��<�s�}�4�4��O�O�%6��$@�A�A�A���G�#�#r.�finderr� requirements�prefix_as_string�messagec�~�|j|}|jrJ�d|_|sdStj��5}tjdkr%t j�t��}n!|� t����}|� |||||��ddd��dS#1swxYwYdS)NT)r6�) rcr&� contextlib� ExitStackrCrDr'r�dirnamer>� enter_contextrQ�_install_requirements)r+r�r�r�r�rr�ctx� pip_runnables r,�install_requirementsz%BuildEnvironment.install_requirements�s ���� 0�1���<������ �� � �F� � !� #� #� �s� ��&�(�(�!�w���|�<�<� � �"�0�0�1G�1I�1I�J�J� � � &� &������  � � � � � � � � � � � � � � ���� � � � � � s�A0B2�2B6�9B6r�rrc �"�tj|dddd|jdg}t���t jkr|�d��dD]h}t|j |��}|� d|� d d ��zd � t|pd h����f���i|j}|rB|� d |dg��|dd�D]} |� d| g���n|�d��|jD]} |� d| g���|jD]} |� d| g���|jr|�d��|jr|�d��|�d��|� |��dt'��i} t)|��5} t+|| | ���ddd��dS#1swxYwYdS)N�installz--ignore-installedz --no-userz--prefixz--no-warn-script-locationz-v)� no_binary� only_binaryz--�_�-�,z:none:z-ir�z--extra-index-urlz --no-indexz --find-linksz--trusted-hostz--prez--prefer-binary�_PIP_STANDALONE_CERT)�spinner� extra_environ)rC� executabler�logger�getEffectiveLevel�logging�DEBUGri�getattr�format_controlrj�replacerB�sorted� index_urls� find_links� trusted_hosts�allow_all_prereleases� prefer_binaryrrr)r�r�r�rrr��argsr��formatsr�� extra_index�link�hostr�r�s r,r�z&BuildEnvironment._install_requirements�s��� �N� � � � � � �K� '�  �� � #� #� %� %��� 6� 6� �K�K�� � � �:� � �N��f�3�^�D�D�G� �K�K��>�1�1�#�s�;�;�;��H�H�V�G�$9��z�:�:�;�;�� � � � ��&� � � &� �K�K��z�!�}�-� .� .� .�)�!�"�"�~� @� @� �� � �0�+�>�?�?�?�?� @� �K�K� � %� %� %��%� 0� 0�D� �K�K���.� /� /� /� /��(� 2� 2�D� �K�K�)�4�0� 1� 1� 1� 1� � '� !� �K�K�� � � � � � +� �K�K�)� *� *� *� � � �D���� � � �L�!�!�!�/����9� � �'� "� "� P�g� �D�'�� O� O� O� O� P� P� P� P� P� P� P� P� P� P� P� P���� P� P� P� P� P� Ps�$H�H� H�rN)r/r0r1�__doc__r-r�r r � BaseExceptionrr�rr2r r r�r�� staticmethodrr�r3r.r,rSrSFs�������K�K�3�3�3�3�j � � � �* 0��4� �.�/� 0��-�(� 0���'� 0� � 0� 0� 0� 0�$��S�M�$� �s�5��c��?�#�S��X�-� .�$�$�$�$�4����s�m��� � � � � ����:�0P��0P��0P��s�m�0P�� 0P� � 0P� � 0P�0P�0P��\�0P�0P�0Pr.rSc ��eZdZdZdd�Zdd�Zdeeedeedee ddfd �Z dd �Z d d d e e de de ddf d�ZdS)�NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentrNc��dSrWr3�r+s r,r-zNoOpBuildEnvironment.__init__ ��� �r.c��dSrWr3r�s r,r�zNoOpBuildEnvironment.__enter__r�r.r�r�r�c��dSrWr3)r+r�r�r�s r,r�zNoOpBuildEnvironment.__exit__s �� �r.c��dSrWr3r�s r,�cleanupzNoOpBuildEnvironment.cleanupr�r.r�rr�r�r�c��t���rW)�NotImplementedError)r+r�r�r�r�s r,r�z)NoOpBuildEnvironment.install_requirementss��"�#�#�#r.r�)r/r0r1r�r-r�r r r�rr�r�rr2r�r3r.r,r�r� s�������:�:� � � � � � � � � ��4� �.�/� ��-�(� ���'�  � �  � � � � � � � �$��$��s�m�$�� $� � $� � $�$�$�$�$�$r.r�)8r�r�r�r'r<rCrorE� collectionsr� sysconfigr�typesr�typingrrrr r r r r �pip._vendor.certifir�"pip._vendor.packaging.requirementsr�pip._vendor.packaging.versionrr;rr>�pip._internal.cli.spinnersr�pip._internal.locationsrrr�pip._internal.metadatar�pip._internal.utils.subprocessr�pip._internal.utils.temp_dirrr�"pip._internal.index.package_finderr� getLoggerr/r�r�contextmanagerr2rQrSr�r3r.r,�r�sk������������ � � � ����� � � � ���������#�#�#�#�#�#�������������V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�%�%�%�%�%�%�:�:�:�:�:�:�1�1�1�1�1�1�(�(�(�(�(�(�3�3�3�3�3�3�O�O�O�O�O�O�O�O�O�O�2�2�2�2�2�2�:�:�:�:�:�:�E�E�E�E�E�E�E�E��A�@�@�@�@�@�@� �� �8� $� $��0�0�0�0�0�0�0�0� ��+��� �+�+�+���+�2AP�AP�AP�AP�AP�AP�AP�AP�H$�$�$�$�$�+�$�$�$�$�$r.