� ��^i� ����ddlZddlZddlZddlZddlZddlmZmZeje ��Z ej d��Z de fd�Zde fd�Zde fd�Zdeeefd�Zde fd �Zde fd �Zde fd �ZdS) �N)�List�Optionalz8include-system-site-packages\s*=\s*(?Ptrue|false)�returnc�^�tjttdtj��kS)znChecks if sys.base_prefix and sys.prefix match. This handles PEP 405 compliant virtual environments. � base_prefix)�sys�prefix�getattr����/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/utils/virtualenv.py�_running_under_venvrs�� �:���m�S�Z�@�@� @�@r c�,�ttd��S)zmChecks if sys.real_prefix is set. This handles virtual environments created with pypa's virtualenv. � real_prefix)�hasattrrr r r �!_running_under_regular_virtualenvrs�� �3� � &� &�&r c�:�t��p t��S)zBReturn True if we're running inside a virtualenv, False otherwise.)rrr r r �running_under_virtualenvrs�� � � � G�$E�$G�$G�Gr c��tj�tjd��} t |d���5}|������cddd��S#1swxYwYdS#t$rYdSwxYw)z�Reads {sys.prefix}/pyvenv.cfg and returns its contents as list of lines Returns None, if it could not read/access the file. z pyvenv.cfgzutf-8)�encodingN) �os�path�joinrr �open�read� splitlines�OSError)�pyvenv_cfg_file�fs r �_get_pyvenv_cfg_linesr $s��� �g�l�l�3�:�|�<�<�O���/�G� 4� 4� 4� )���6�6�8�8�&�&�(�(� )� )� )� )� )� )� )� )� )� )� )� )���� )� )� )� )� )� )�� �����t�t����s4�A=�&A0�# A=�0A4�4A=�7A4�8A=�= B � B c���t��}|�t�d��dS|D]:}t�|��}|�|�d��dkrdS�;dS)aZCheck `{sys.prefix}/pyvenv.cfg` for system site-packages inclusion PEP 405 specifies that when system site-packages are not supposed to be visible from a virtual environment, `pyvenv.cfg` must contain the following line: include-system-site-packages = false Additionally, log a warning if accessing the file fails. Nz�Could not access 'pyvenv.cfg' despite a virtual environment being active. Assuming global site-packages is not accessible in this environment.T�value�falseF)r �logger�warning�#_INCLUDE_SYSTEM_SITE_PACKAGES_REGEX�match�group)� cfg_lines�liner's r �_no_global_under_venvr+3s���&�'�'�I��� ��� #� � � � �t�����3�9�9�$�?�?�� � ����W�!5�!5��!@�!@��4�4�� �5r c� �tj�tj�tj����}tj�|d��}tj�|��S)z�Check if "no-global-site-packages.txt" exists beside site.py This mirrors logic in pypa/virtualenv for determining whether system site-packages are visible in the virtual environment. zno-global-site-packages.txt)rr�dirname�abspath�site�__file__r�exists)� site_mod_dir�no_global_site_packages_files r �#_no_global_under_regular_virtualenvr4PsZ�� �7�?�?�2�7�?�?�4�=�#A�#A�B�B�L�#%�7�<�<��%�$�$� � �7�>�>�6� 7� 7�7r c�v�t��rt��St��rt��SdS)zHReturns a boolean, whether running in venv with no system site-packages.F)rr+rr4r r r �virtualenv_no_globalr6^s=�����'�$�&�&�&�(�*�*�5�2�4�4�4� �5r )�loggingr�rer/r�typingrr� getLogger�__name__r$�compiler&�boolrrr�strr r+r4r6r r r �r?sM������ � � � � � � � � � � � � � � � �!�!�!�!�!�!�!�!� �� �8� $� $��&0�b�j�?�'�'�#� A�T�A�A�A�A�'�4�'�'�'�'�H�$�H�H�H�H� �x��S� �2� � � � ��t�����: 8�T� 8� 8� 8� 8� �d� � � � � � r