î œ0{Y¬ã@s=dZddlZddlZddlZddlZdgZeedƒZGdd„deƒZ y e Z Wne k rˆe Z YnXy e Z Wne k r­e Z YnXej jZejd$kròddlmZmZdd lmZdd lmZmZdd lmZmZdd lmZmZmZdd l m!Z"ddl#j$Z%ddlj&Z'ddl(Z)ddl*j+Z,ddl#j$Z-ddl.j+Z/dd„Z0dd„Z1dd„Z2dd„Z3dd„Z4e5Z5e6fZ7e8Z9nddl:mZdd l'mZmZdd lmZmZdd l%mZmZmZddl m;Z"ddl%Z%ddl'Z'ddl-Z-ddl)Z)ddl,Z,ddl/Z/dd„Z1dd„Z2dd„Z3dd„Z4e6Z5e<fZ7eZe0Z0e9Z9eZddl=m>Z>m?Z?e@eddƒZAd d!„ZBd"d#„ZCdS)%zKStuff that differs in different Python versions and platform distributions.éNÚ WindowsErrorÚcache_from_sourcec@seZdZdZdS)ÚNeverUsedExceptionz%this exception should never be raisedN)Ú__name__Ú __module__Ú __qualname__Ú__doc__©r r ú6/tmp/pip-ok8sy_ze-build/pip/backwardcompat/__init__.pyr s ré)ÚStringIOÚBytesIO)Úreduce)ÚURLErrorÚ HTTPError)ÚQueueÚEmpty)Ú url2pathnameÚ urlretrieveÚ pathname2url)ÚmessagecCs||k||kS)Nr )ÚaÚbr r r Úcmp+srcCs |jdƒS)Nzutf-8)Úencode)Úsr r r r.srcCs |jdƒS)Nzutf-8)Údecode)rr r r Úu1src Cs7y|jtƒSWntk r2|jdƒSYnXdS)NÚutf_8)rÚconsole_encodingÚUnicodeDecodeError)rr r r Úconsole_to_str4s r!cCs|j||ƒS)N)Ú get_param)Ú http_messageÚparamÚ default_valuer r r Úget_http_message_param:sr&)r )ÚMessagecCs|S)Nr )rr r r rMscCs|S)Nr )rr r r rPscCs|S)Nr )rr r r r!SscCs|j|ƒ}|p|S)N)Zgetparam)r#r$r%Úresultr r r r&Vs)Úget_python_libÚget_python_versionÚ USER_SITEc/sxttt|ƒƒ|jddƒ}gg}x'|D]‰‡fdd†|Dƒ}q5Wx|D]}t|ƒVq_WdS)NÚrepeatécs*g|] }ˆD]}||g‘qqSr r )Ú.0ÚxÚy)Úpoolr r ú ns zproduct..)ÚlistÚmapÚtupleÚget)ÚargsÚkwdsÚpoolsr(Úprodr )r1r Úproducths %   r;cCsˆttdƒrMtj|tjtjBƒ}tj|ƒj}tj|ƒn7tjj |ƒsttj |ƒj}nt d|ƒ‚|S)a) Return path's uid. Does not follow symlinks: https://github.com/pypa/pip/pull/935#discussion_r5307003 Placed this function in backwardcompat due to differences on AIX and Jython, that should eventually go away. :raises OSError: When path is a symlink or can't be read. Ú O_NOFOLLOWz1%s is a symlink; Will not return uid for symlinks) ÚhasattrÚosÚopenÚO_RDONLYr<ÚfstatÚst_uidÚcloseÚpathÚislinkÚstatÚOSError)rDÚfdÚfile_uidr r r Ú get_path_uidss rJ)r )Drr>ÚimpÚsysÚsiteÚ__all__r=Ú uses_pycacheÚ ExceptionrrÚ NameErrorÚPermissionErrorÚ __stdout__ÚencodingrÚ version_infoÚior r Ú functoolsrÚ urllib.errorrrÚqueuerrÚurllib.requestrrrÚemailrÚ emailmessageÚ urllib.parseÚparseÚurllibÚrequestÚurllib2Ú configparserÚ ConfigParserÚ xmlrpc.clientÚclientÚ xmlrpclibÚurlparseÚ http.clientÚhttplibrrrr!r&ÚbytesÚstrÚ string_typesÚinputÚ raw_inputÚ cStringIOr'Ú basestringÚdistutils.sysconfigr)r*ÚgetattrÚ user_siter;rJr r r r Ús|