ž 7’Re4Xc @sMddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl mZmZmZddlmZmZddlmZmZmZmZmZmZmZmZmZddlmZddl m!Z!ddl"m#Z#m$Z$ddl%m&Z&dd l'm(Z(m)Z)dd l*m+Z+dd l,m-Z-m.Z.dd l/m0Z0dd l1m2Z2ddddddddddg Z3dd„Z4Gdd„de(ƒZ5Gdd„de6ƒZ7Gdd„de&ƒZ8Gd d!„d!e#j9ƒZ:ddd"d„Z<ej=d#ej>ƒZ?ej=d$ej>ƒZ@d%d„ZAd&d„ZBej=d'ej>ƒZCej=d(ej>ƒZDd)d„ZEd*d„ZFd:d+d„ZHd,d-„ZId.d„ZJd/d„ZKd0d1„ZLd2d3„ZMd4d5„ZNd6d7„ZOddd8d„ZPdd9d„ZQdS(;iN(uurllibuurlparseu raw_input(uInstallationErroru HashMismatch( usplitexturmtreeu format_sizeu display_pathu backup_diruask_path_existsu unpack_fileucreate_download_cache_folderucache_download(uvcs(ulogger(urequestsusix(u BaseAdapter(uAuthBaseu HTTPBasicAuth(uIncompleteRead(u InvalidURLuChunkedEncodingError(uResponse(uCaseInsensitiveDictuget_file_contentuis_urlu url_to_pathu path_to_urluis_archive_fileuunpack_vcs_linkuunpack_file_urlu is_vcs_urlu is_file_urluunpack_http_urlcCs5tjƒ}|dkr'tjƒ}n |dkr‹dtjjtjjtjjf}tjjdkrÇdj |tjjgƒ}qÇn<|dkr¦tjƒ}n!|dkrÁtjƒ}nd}ytj ƒ}tj ƒ}Wnt k rd}d}YnXd j d t jd ||fd ||fgƒS( u,Return a string representing the user agent.uCPythonuPyPyu%s.%s.%sufinaluuJythonu IronPythonuUnknownu upip/%su%s/%s(uplatformupython_implementationupython_versionusysupypy_version_infoumajoruminorumicrou releaselevelujoinusystemureleaseuIOErrorupipu __version__(u_implementationu_implementation_versionup_systemu p_release((u%/tmp/pip-zej_zi-build/pip/download.pyu user_agent$s2           u user_agentcBsG|EeZdZd dd„Zdd„Zdd„Zdd„Zd S( uMultiDomainBasicAuthcCs||_i|_dS(N(u promptingu passwords(uselfu prompting((u%/tmp/pip-zej_zi-build/pip/download.pyu__init__Hs uMultiDomainBasicAuth.__init__cCsøtj|jƒ}|jjddƒd}tj|dd…|f|dd…ƒ|_|jj|dƒ\}}|dkrž|j|jƒ\}}n|sª|rá||f|j||jddƒS|dfSdS(Nu@iiu:(NN(ursplitusplituNone(uselfunetlocuuserinfo((u%/tmp/pip-zej_zi-build/pip/download.pyuparse_credentialsŠs    u&MultiDomainBasicAuth.parse_credentialsNT(u__name__u __module__u __qualname__uTrueu__init__u__call__u handle_401uparse_credentials(u __locals__((u%/tmp/pip-zej_zi-build/pip/download.pyuMultiDomainBasicAuthFs  "uMultiDomainBasicAuthcBsS|EeZdZdd„Zdd„Zd d d dd„Zedd„ƒZ d S( uLocalFSResponsecCs ||_dS(N(ufileobj(uselfufileobj((u%/tmp/pip-zej_zi-build/pip/download.pyu__init__•suLocalFSResponse.__init__cCst|j|ƒS(N(ugetattrufileobj(uselfuname((u%/tmp/pip-zej_zi-build/pip/download.pyu __getattr__˜suLocalFSResponse.__getattr__cCs|jj|ƒS(N(ufileobjuread(uselfuamtudecode_contentu cache_content((u%/tmp/pip-zej_zi-build/pip/download.pyuread›suLocalFSResponse.readcs9Gdd„dtƒ‰G‡fdd†dtƒ}|ƒS(NcBs,|EeZdZdd„Zdd„ZdS(u7LocalFSResponse._original_response..FakeMessagecSsgS(N((uselfuheader((u%/tmp/pip-zej_zi-build/pip/download.pyu getheaders¢suBLocalFSResponse._original_response..FakeMessage.getheaderscSsgS(N((uselfuheaderudefault((u%/tmp/pip-zej_zi-build/pip/download.pyuget_all¥su?LocalFSResponse._original_response..FakeMessage.get_allN(u__name__u __module__u __qualname__u getheadersuget_all(u __locals__((u%/tmp/pip-zej_zi-build/pip/download.pyu FakeMessage¡s u FakeMessagecs,|EeZdZe‡fdd†ƒZdS(u8LocalFSResponse._original_response..FakeResponsecsˆƒS(N((uself(u FakeMessage(u%/tmp/pip-zej_zi-build/pip/download.pyumsg©su<LocalFSResponse._original_response..FakeResponse.msgN(u__name__u __module__u __qualname__upropertyumsg(u __locals__(u FakeMessage(u%/tmp/pip-zej_zi-build/pip/download.pyu FakeResponse¨su FakeResponse(uobject(uselfu FakeResponse((u FakeMessageu%/tmp/pip-zej_zi-build/pip/download.pyu_original_responseŸsu"LocalFSResponse._original_responseNF( u__name__u __module__u __qualname__u__init__u __getattr__uNoneuFalseureadupropertyu_original_response(u __locals__((u%/tmp/pip-zej_zi-build/pip/download.pyuLocalFSResponse“s  uLocalFSResponsecBs;|EeZdZddddddd„Zdd„ZdS(uLocalFSAdapterc Cstj|jƒ}|jjƒdkr=td|jƒ‚ntj|dd…d|dd…ƒ}t|ƒ} tƒ} d| _|| _t j | ƒ} t j j | jddƒ} titj| ƒdpÕd d 6| jd 6| d 6ƒ| _tt| d ƒƒ| _| jj| _| S(Nu localhostu)Invalid URL %r: Only localhost is allowediuiiÈuusegmtiu text/plainu Content-TypeuContent-Lengthu Last-Modifiedurb(uT(uurlparseuurlunetloculoweru InvalidURLu urlunparseu url_to_pathuResponseu status_codeuosustatuemailuutilsu formatdateust_mtimeuTrueuCaseInsensitiveDictu mimetypesu guess_typeust_sizeuheadersuLocalFSResponseuopenurawuclose( uselfurequestustreamutimeoutuverifyucertuproxiesu parsed_urlureal_urlupathnameurespustatsumodified((u%/tmp/pip-zej_zi-build/pip/download.pyusend²s$+     uLocalFSAdapter.sendcCsdS(N((uself((u%/tmp/pip-zej_zi-build/pip/download.pyucloseÏsuLocalFSAdapter.closeN(u__name__u __module__u __qualname__uNoneusenduclose(u __locals__((u%/tmp/pip-zej_zi-build/pip/download.pyuLocalFSAdapter°s uLocalFSAdaptercs>|EeZdZdZ‡fdd†Z‡fdd†Z‡S(u PipSessioncsLtt|ƒj||Žtƒ|jdCs upath_to_url..ufile:///( uosupathunormpathuabspathu splitdriveusplitusepujoinulstrip(upathudriveufilepathuurl((u%/tmp/pip-zej_zi-build/pip/download.pyu path_to_url;scCs0d }t|ƒdjƒ}||kr,d Sd S( u9Return True if `name` is a considered as an archive file.u.zipu.tar.gzu.tar.bz2u.tgzu.taru .pybundleu.whli(u.zipu.tar.gzu.tar.bz2u.tgzu.taru .pybundleu.whlTF(usplitextuloweruTrueuFalse(unameuarchivesuext((u%/tmp/pip-zej_zi-build/pip/download.pyuis_archive_fileIs  cCs3t|ƒ}|r"|j|ƒn |j|ƒdS(N(u_get_used_vcs_backenduexportuunpack(ulinkulocationu only_downloadu vcs_backend((u%/tmp/pip-zej_zi-build/pip/download.pyuunpack_vcs_linkSs cCs=x6tjD]+}|j|jkr ||jƒ}|Sq WdS(N(uvcsubackendsuschemeuschemesuurl(ulinkubackendu vcs_backend((u%/tmp/pip-zej_zi-build/pip/download.pyu_get_used_vcs_backend[su_get_used_vcs_backendcCstt|ƒƒS(N(uboolu_get_used_vcs_backend(ulink((u%/tmp/pip-zej_zi-build/pip/download.pyu is_vcs_urlbscCs|jjƒjdƒS(Nufile:(uurluloweru startswith(ulink((u%/tmp/pip-zej_zi-build/pip/download.pyu is_file_urlfscCs©|jtj|jƒjkrQtjd|j||jfƒtd|ƒ‚n|jƒ|jkr¥tjd||jƒ|jfƒtd|j|fƒ‚ndS(NuPHash digest size of the package %d (%s) doesn't match the expected hash name %s!u!Hash name mismatch for package %su?Hash of the package %s (%s) doesn't match the expected hash %s!uBad %s hash for package %s( u digest_sizeuhashlibunewu hash_nameuloggerufatalu HashMismatchu hexdigestuhash(u download_hashulink((u%/tmp/pip-zej_zi-build/pip/download.pyu _check_hashjs  u _check_hashc Cs˜ytj|jƒ}Wn6ttfk rNtjd|j|fƒdSYnXt|dƒ}x)|j dƒ}|szPn|j |ƒqa|j ƒ|S(Nu'Unsupported hash name %s for package %surbi( uhashlibunewu hash_nameu ValueErroru TypeErroruloggeruwarnuNoneuopenureaduupdateuclose(u target_fileulinku download_hashufpuchunk((u%/tmp/pip-zej_zi-build/pip/download.pyu_get_hash_from_fileus  u_get_hash_from_filec st|dƒ}d}|jro|jroytj|jƒ}Wqotk rktjd|j|fƒYqoXnyt ˆj dƒ}Wn!tt t fk r©d}YnXd}|dkpÀ| }|j }z |r|rûtjd|t|ƒfƒq tjd|ƒntjd |ƒtjd |ƒ‡fd d †} x›| d ƒD]} |t| ƒ7}|r´|sŒtjdt|ƒƒq´tjdd||t|ƒfƒn|dk rÐ|j| ƒn|j| ƒqPW|jƒWd|rtjdt|ƒƒnX|S(Nuwbu'Unsupported hash name %s for package %sucontent-lengthii(ièuDownloading %s (%s): uDownloading %s (unknown size): uDownloading %suDownloading from URL %sc3s¤ydy,x%ˆjj|ddƒD] }|VqWWn1tk rb}zt|ƒ‚WYdd}~XnXWn9tk rŸx$ˆjj|ƒ}|s“Pn|VqwYnXdS(Nudecode_contentF(urawustreamuFalseuIncompleteReaduChunkedEncodingErroruAttributeErroruread(u chunk_sizeuchunkue(uresp(u%/tmp/pip-zej_zi-build/pip/download.pyu resp_read s  # u _download_url..resp_readiu%su %3i%% %sidu %s downloadedi@œ(uopenuNoneuhashu hash_nameuhashlibunewu ValueErroruloggeruwarnuintuheadersuKeyErroru TypeErrorushow_urlustart_progressu format_sizeunotifyuinfoulenu show_progressuupdateuwriteucloseu end_progress( urespulinku temp_locationufpu download_hashu total_lengthu downloadedu show_progressushow_urlu resp_readuchunk((urespu%/tmp/pip-zej_zi-build/pip/download.pyu _download_url†sF "   ( u _download_urlcCsd}tjj||jƒ}tjj|ƒrâtdt|ƒd ƒ}|dkr^d }qâ|dkr‘t j dt|ƒƒtj |ƒqâ|dkrât |ƒ}t j dt|ƒt|ƒfƒt j||ƒqân|rt j||ƒt jdt|ƒƒndS( Nu/The file %s exists. (i)gnore, (w)ipe, (b)ackup uiuwubu Deleting %suBacking up %s to %suSaved %sT(uiuwubF(uTrueuosupathujoinufilenameuexistsuask_path_existsu display_pathuFalseuloggeruwarnuremoveu backup_dirushutilumoveucopyunotify(ufilenameulocationu content_typeulinkucopyudownload_locationuresponseu dest_file((u%/tmp/pip-zej_zi-build/pip/download.pyu _copy_fileÂs&      u _copy_filec0Cs°|dkrtƒ}ntjddƒ}d}|jjddƒd}d}d} d} d} |rØtjj |t j |dƒƒ} | d} tjj | ƒo³tjj | ƒ}tjj |ƒsØt|ƒqØnd} |rtjj ||jƒ} tjj | ƒsd} qn| r¸| }tj| ƒd} tjd| ƒ|jr¸t||ƒ} yt| |ƒWqµtk r±tjd |ƒd}tj| ƒd} YqµXq¸n|r‡| r‡t| ƒ}|jƒjƒ} WdQX| }tjd | ƒ|jr‡|jr‡t| |ƒ} yt| |ƒWq„tk r€tjd |ƒd}tj| ƒtj| ƒd}Yq„Xq‡n|s-y#|j|d dƒ}|j ƒWnHt!j"k rú}z%tj#d |j$j%|fƒ‚WYdd}~XnX|j&jddƒ} |j}|j&jdƒ}|r^t'j(|ƒ\}}|jdƒpX|}nt)|ƒd}|s™tj*| ƒ}|r™||7}q™n| rá|j|jkrátjj)|jƒd}|rá||7}qántjj ||ƒ}t+|||ƒ} |jr-|jr-t| |ƒq-n|rP| rPt,||| |ƒnt-||| |ƒ| rƒ| rƒt.| || ƒn|pŒ| sŸtj|ƒntj/|ƒdS(Nu-unpackupip-u#iiuu .content-typeuFile was already downloaded %su;Previously-downloaded file %s has bad hash, re-downloading.uUsing download cache from %su,Cached file %s has bad hash, re-downloading.ustreamuHTTP error %s while getting %su content-typeucontent-dispositionufilenameFT(0uNoneu PipSessionutempfileumkdtempuurlusplituFalseuosupathujoinuurllibuquoteuexistsuisdirucreate_download_cache_folderufilenameu mimetypesu guess_typeuloggerunotifyuhashu_get_hash_from_fileu _check_hashu HashMismatchuwarnuunlinkuopenureadustripu hash_nameugetuTrueuraise_for_statusurequestsu HTTPErrorufataluresponseu status_codeuheadersucgiu parse_headerusplitextuguess_extensionu _download_urlu _copy_fileu unpack_fileucache_downloadurmdir(ulinkulocationudownload_cacheu download_dirusessionutemp_diru temp_locationu target_urlualready_cachedu cache_fileucache_content_type_fileu download_hashualready_downloadedu content_typeufpurespuexcufilenameucontent_dispositionutypeuparamsuext((u%/tmp/pip-zej_zi-build/pip/download.pyuunpack_http_urlØs²                 c Cs¯t|jƒ}d}tjj|ƒr`tjj|ƒrFt|ƒntj||ddƒdS|j rˆt ||ƒ}t ||ƒn|rMtjj ||jƒ}tjj|ƒrMtj|ƒd}tjd|ƒ|j rAt ||ƒ}yt ||ƒd}WqGtk r=tjd|ƒtj|ƒYqGXqJd}qMn|r\|} n|} tj| ƒd}t| |||ƒ|r«| r«t| |||ƒndS(NusymlinksiuFile was already downloaded %su;Previously-downloaded file %s has bad hash, re-downloading.FT(u url_to_pathuurl_without_fragmentuFalseuosupathuisdirurmtreeushutilucopytreeuTrueuhashu_get_hash_from_fileu _check_hashujoinufilenameuexistsu mimetypesu guess_typeuloggerunotifyu HashMismatchuwarnuunlinku unpack_fileu _copy_file( ulinkulocationu download_diru link_pathualready_downloadedulink_path_hashu download_pathu content_typeu download_hashu from_path((u%/tmp/pip-zej_zi-build/pip/download.pyuunpack_file_urlRsB         F(Rucgiu email.utilsuemailuhashlibugetpassu mimetypesuosuplatformureushutilusysutempfileupipupip.backwardcompatuurllibuurlparseu raw_inputupip.exceptionsuInstallationErroru HashMismatchupip.utilusplitexturmtreeu format_sizeu display_pathu backup_diruask_path_existsu unpack_fileucreate_download_cache_folderucache_downloadupip.vcsuvcsupip.loguloggeru pip._vendorurequestsusixupip._vendor.requests.adaptersu BaseAdapterupip._vendor.requests.authuAuthBaseu HTTPBasicAuthupip._vendor.requests.compatuIncompleteReadupip._vendor.requests.exceptionsu InvalidURLuChunkedEncodingErrorupip._vendor.requests.modelsuResponseupip._vendor.requests.structuresuCaseInsensitiveDictu__all__u user_agentuMultiDomainBasicAuthuobjectuLocalFSResponseuLocalFSAdapteruSessionu PipSessionuNoneuget_file_contentucompileuIu _scheme_reu_url_slash_drive_reuis_urlu url_to_pathu _drive_reu _url_drive_reu path_to_urluis_archive_fileuFalseuunpack_vcs_linku_get_used_vcs_backendu is_vcs_urlu is_file_urlu _check_hashu_get_hash_from_fileu _download_urlu _copy_fileuunpack_http_urluunpack_file_url(((u%/tmp/pip-zej_zi-build/pip/download.pyush            @  "M#,         < y