ž 7’Re¬c@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ƒZBd d!„ZCd"d#„ZDdS(%uKStuff that differs in different Python versions and platform distributions.iNu WindowsErrorucache_from_sourcecBs|EeZdZdZdS(uNeverUsedExceptionu%this exception should never be raisedN(u__name__u __module__u __qualname__u__doc__(u __locals__((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuNeverUsedException suNeverUsedExceptioni(uStringIOuBytesIO(ureduce(uURLErroru HTTPError(uQueueuEmpty(u url2pathnameu urlretrieveu pathname2url(umessagecCs||k||kS(N((uaub((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyucmp+sucmpcCs |jdƒS(Nuutf-8(uencode(us((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyub.subcCs |jdƒS(Nuutf-8(udecode(us((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuu1suuc Cs7y|jtƒSWntk r2|jdƒSYnXdS(Nuutf_8(udecodeuconsole_encodinguUnicodeDecodeError(us((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuconsole_to_str4s uconsole_to_strcCs|j||ƒS(N(u get_param(u http_messageuparamu default_value((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuget_http_message_param:suget_http_message_param(uStringIO(uMessagecCs|S(N((us((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyubMscCs|S(N((us((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuuPscCs|S(N((us((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuconsole_to_strSscCs|j|ƒ}|p|S(N(ugetparam(u http_messageuparamu default_valueuresult((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuget_http_message_paramVs(uget_python_libuget_python_versionu USER_SITEc/sxttt|ƒƒ|jddƒ}gg}x'|D]‰‡fdd†|Dƒ}q5Wx|D]}t|ƒVq_WdS(Nurepeatics*g|] }ˆD]}||g‘qqS(((u.0uxuy(upool(u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyu ns uproduct..(ulistumaputupleuget(uargsukwdsupoolsuresultuprod((upoolu4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyuproducths %   uproductcCsˆttdƒrMtj|tjtjBƒ}tj|ƒj}tj|ƒn7tjj |ƒsttj |ƒj}nt d|ƒ‚|S(u) 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. u O_NOFOLLOWu1%s is a symlink; Will not return uid for symlinks( uhasattruosuopenuO_RDONLYu O_NOFOLLOWufstatust_uiducloseupathuislinkustatuOSError(upathufdufile_uid((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyu get_path_uidss u get_path_uid(i(Eu__doc__uosuimpusysusiteu__all__uhasattru uses_pycacheu ExceptionuNeverUsedExceptionu WindowsErroru NameErroruPermissionErroru __stdout__uencodinguconsole_encodingu version_infouiouStringIOuBytesIOu functoolsureduceu urllib.erroruURLErroru HTTPErroruqueueuQueueuEmptyuurllib.requestu url2pathnameu urlretrieveu pathname2urluemailumessageu emailmessageu urllib.parseuparseuurlliburequestuurllib2u configparseru ConfigParseru xmlrpc.clientuclientu xmlrpclibuurlparseu http.clientuhttplibucmpubuuuconsole_to_struget_http_message_paramubytesustru string_typesuinputu raw_inputu cStringIOuMessageu basestringudistutils.sysconfiguget_python_libuget_python_versionugetattruNoneu user_siteuproductu get_path_uid(((u4/tmp/pip-zej_zi-build/pip/backwardcompat/__init__.pyus|