3 �Pf�� @sdZddlmZddlZddlZddlZddlZddlmZddl m Z m Z ddl m Z mZddlmZejd�Zd Zd Zd d �Zd d�Zdd�Ze�r�ejjejd�Zn6yejjej�d�ZWnek r�ejd�YnXejje�Zej �Z!ej"Z#ed�Z$e �rtejjejd�Z%ejje#d�Z&ejj'e%��sRejjejd�Z%ejje#d�Z&dZ(ejje$d�Z)ejje)e(�Z*njejjejd�Z%ejje#d�Z&dZ(ejje$d�Z)ejje)e(�Z*ej+dd�dk�r�ejdd�dk�r�dZ%dd�ej,d�D�Z-d#d!d"�Z.dS)$z7Locations where we look for configs, install stuff, etc�)�absolute_importN)� sysconfig)�install� SCHEME_KEYS)�WINDOWS� expanduser)�appdirsZpipz�This file is placed here by pip to indicate the source was put here by pip. Once this package is successfully installed this source code will be deleted (unless you remove this file). zpip-delete-this-directory.txtc Cs2tjj|t�}t|d��}|jt�WdQRXdS)z? Write the pip delete marker file into this directory. �wN)�os�path�join�PIP_DELETE_MARKER_FILENAME�open�write�DELETE_MARKER_MESSAGE)Z directory�filepathZ marker_fp�r�/usr/lib/python3.6/locations.py�write_delete_marker_files rcCs*ttd�rdStjttdtj�kr&dSdS)zM Return True if we're running inside a virtualenv, False otherwise. Z real_prefixT� base_prefixF)�hasattr�sys�prefix�getattrrrrr�running_under_virtualenv's  rcCs>tjjtjjtj��}tjj|d�}t�r:tjj|�r:dSdS)z? Return True if in a venv and no system site packages. zno-global-site-packages.txtTN) r r �dirname�abspath�site�__file__r r�isfile)Z site_mod_dirZno_global_filerrr�virtualenv_no_global4sr �srcz=The folder you are executing pip from can no longer be found.�~ZScripts�binzpip.inizpip.confz.pip��darwin�z/System/Library/z/usr/local/bincCsg|]}tjj|t��qSr)r r r �config_basename)�.0r rrr� wsr)FcCsNddlm}i}|r ddgi}ni}d|i} | j|�|| �} | j�| jddd�} |p\| j| _|rjd | _|pr| j| _|p~| j| _|p�| j| _| j �xt D]} t | d | �|| <q�Wd | j d�kr�|jt | j| jd ��t��rJtjjtjd ddtjdd�|�|d<|dk �rJtjjtjj|d��d} tjj|| dd��|d<|S)z+ Return a distutils install scheme r)� DistributionZ script_argsz --no-user-cfg�namerT)Zcreate�Zinstall_� install_lib)�purelib�platlib�includer�pythonN�Zheaders�)Zdistutils.distr*�updateZparse_config_filesZget_command_obj�userr�home�rootZfinalize_optionsrrZget_option_dict�dictr-rr r r r�version� splitdriver)Z dist_namer5r6r7�isolatedrr*�schemeZextra_dist_argsZ dist_args�d�i�keyZ path_no_driverrr�distutils_scheme|sF          r@)FNNFN)/�__doc__Z __future__rr Zos.pathrrZ distutilsrZdistutils.command.installrrZ pip.compatrrZ pip.utilsrZuser_cache_dirZUSER_CACHE_DIRrr rrr r r rZ src_prefix�getcwd�OSError�exitrZget_python_libZ site_packages� USER_SITE� user_siteZuser_dirZbin_pyZbin_user�existsr'Zlegacy_storage_dirZlegacy_config_file�platformZsite_config_dirsZsite_config_filesr@rrrr�sd         (