Your IP : 3.145.72.55
3
�PfO� � @ s^ d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZyd dlZdZW n ek
r� dZY nX d dlmZ d dlmZ d dlZd dlmZmZ d dlmZ d d lmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d d
l(m)Z) d dl*m+Z+ d dl,m-Z- d d
l.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZCmDZD d dlEmFZF d dlGmHZH d dl9mIZI d dlJmKZK d dlLmMZM d dlNmOZO d dlPmQZQ dddd d!d"d#d$d%d&d'd(d)g
ZRejSeT�ZUd*d+� ZVG d,d-� d-e@�ZWG d.d/� d/e=�ZXG d0d1� d1eM�ZYG d2d3� d3e>�ZZG d4d5� d5e:j[�Z\dWd6d�Z]ej^d7ej_�Z`ej^d8ej_�Zad9d� Zbd:d� Zcd;d � Zdd<d!� Zed=d"� Zfd>d?� Zgd@d$� ZhdAd%� ZidBdC� ZjdDdE� ZkdFdG� ZldHdI� ZmdXdJd&�ZndYdKd#�ZodLdM� ZpG dNdO� dOeQjq�ZrdZdPd'�ZsdQd)� ZtdRd(� ZudSdT� ZvdUdV� ZwdS )[� )�absolute_importNTF)�parse)�request)�InstallationError�HashMismatch)�PyPI)
�splitext�rmtree�format_size�display_path�
backup_dir�ask_path_exists�unpack_file�ARCHIVE_EXTENSIONS�consume�call_subprocess)�auto_decode)�check_path_owner)�
indent_log)�SETUPTOOLS_SHIM)�libc_ver)�DownloadProgressBar�DownloadProgressSpinner)�write_delete_marker_file)�vcs)�requests�six)�BaseAdapter�HTTPAdapter)�AuthBase�
HTTPBasicAuth)�CONTENT_CHUNK_SIZE�Response)�get_netrc_auth)�CaseInsensitiveDict)�urllib3)�CacheControlAdapter)� FileCache)� LockError)�
xmlrpc_client�get_file_content�is_url�url_to_path�path_to_url�is_archive_file�unpack_vcs_link�unpack_file_url�
is_vcs_url�is_file_url�unpack_http_url�
unpack_url�parse_content_disposition�sanitize_content_filenamec C s dt jd�tj� dtj� id�} | d d dkrBtj� | d d<