Your IP : 18.119.255.183
3
9��f�T � @ s d Z ddlmZ ddlmZ ddlmZmZ ddlmZmZm Z m
Z
ddlmZm
Z
ddlmZmZ ddlmZ dd lmZ dd
lZdd
lZdd
lZdd
lZdd
lZdd
lZdd
lZdd
lZdd
lZdd
lZdd
lZdd
l Z dd
l!Z!dd
l"Z"dd
l#Z#dd
l$Z$dd
l%Z%ddl&m'Z' ddl(m)Z)m*Z* dd
l+m,Z, ddl-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z:m;Z; ddl4m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZO dd
lPZ@ejQde@jRd� ddddddgZSdd � ZTd!d� ZUe'jV�r2d"d#� ZWd$d%� ZXnd&d#� ZWd'd%� ZXd(d)� ZYG d*d� de,�ZZd+d,� Z[d-d.� Z\d/d0� Z]d1d� Z^d2d� Z_G d3d� deG�Z`G d4d5� d5e`�Zaejbjcd6d7�d8k�r�eaZ`d9d:� Zdd;d<� Zed=d>� Zfd?d@� ZgdpdAdB�ZhdCdD� ZidEdF� ZjdGejkk�rejZlndHdI� ZldqdKdL�ZmdMdN� ZndOdP� ZodQdR� ZpyddSlmqZr W n esk
�r^ dTdU� ZrY nX dVdW� ZqG dXdY� dYet�Zueujv� ZwG dZd[� d[eu�ZxG d\d]� d]ey�ZzG d^d_� d_ez�Z{G d`da� dae{�Z|ezj}Z}ezj~Z~dbdc� Zddde� Z�dfeefdgdh�Z�didj� Z�dkdl� Z�drdmd�Z�e"j�dndo� �Z�d
S )sa%
Easy Install
------------
A tool for doing automatic download/extract/build of distutils-based Python
packages. For detailed documentation, see the accompanying EasyInstall.txt
file, or visit the `EasyInstall home page`__.
__ https://setuptools.readthedocs.io/en/latest/easy_install.html
� )�glob)�get_platform)�convert_path�
subst_vars)�DistutilsArgError�DistutilsOptionError�DistutilsError�DistutilsPlatformError)�INSTALL_SCHEMES�SCHEME_KEYS)�log�dir_util)�
first_line_re)�find_executableN)�six)�configparser�map)�Command)� run_setup)�get_path�get_config_vars)�rmtree_safe)�setopt)�unpack_archive)�PackageIndex�parse_requirement_arg�
URL_SCHEME)� bdist_egg�egg_info)�Wheel)�yield_lines�normalize_path�resource_string�ensure_directory�get_distribution�find_distributions�Environment�Requirement�Distribution�PathMetadata�EggMetadata�
WorkingSet�DistributionNotFound�VersionConflict�DEVELOP_DIST�default)�category�samefile�easy_install�PthDistributions�extract_wininst_cfg�main�get_exe_prefixesc C s t jd�dkS )N�P� )�struct�calcsize� r; r; �"/usr/lib/python3.6/easy_install.py�is_64bitI s r= c C sj t jj| �ot jj|�}tt jd�o&|}|r:t jj| |�S t jjt jj| ��}t jjt jj|��}||kS )z�
Determine if two paths reference the same file.
Augments os.path.samefile to work on Windows and
suppresses errors if the path doesn't exist.
r1 )�os�path�exists�hasattrr1 �normpath�normcase)Zp1Zp2Z
both_existZuse_samefileZnorm_p1Znorm_p2r; r; r<