ó ïRec@@s~dZddlmZddlZddlmZddlmZddlm Z ddl m Z ddl m Z mZdd lmZdd lmZdd lmZerçdd lmZdd lmZmZddl mZne rddlmZnddlmZdZejeƒZ defd„ƒYZ!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(dS(s0Support functions for working with wheel files. i(tabsolute_importN(tParser(tZipFile(tcanonicalize_name(tDistInfoDistribution(tPY2t ensure_str(tUnsupportedWheel(t DictMetadata(tMYPY_CHECK_RUNNING(tMessage(tDicttTuple(t Distribution(t BadZipfile(t BadZipFileit WheelMetadatacB@s eZdZd„Zd„ZRS(saMetadata provider that maps metadata decoding exceptions to our internal exception type. cC@s#tt|ƒj|ƒ||_dS(N(tsuperRt__init__t _wheel_name(tselftmetadatat wheel_name((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR(scC@sOytt|ƒj|ƒSWn.tk rJ}tdj|j|ƒƒ‚nXdS(Ns"Error decoding metadata for {}: {}(RRt get_metadatatUnicodeDecodeErrorRtformatR(Rtnamete((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR-s (t__name__t __module__t__doc__RR(((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR$s c C@sút||ƒ\}}g|jƒD]$}|jdj|ƒƒr"|^q"}i}x}|D]u}t|ƒ} | jddƒ\}} yt|| ƒ|| 1 found, or it doesn't match the provided name. cs@s%|]}|jddƒdVqdS(RiiN(R%(t.0R+((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pys |ss .dist-infos.dist-info directory not foundis)multiple .dist-info directories found: {}s, is2.dist-info directory {!r} does not start with {!r}( tsetR#tendswithRtlenRtjoinRR$R(tsourceRtsubdirstst info_dirsR)t info_dir_nametcanonical_name((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR2ts (   cC@sLy|j|ƒSWn4tttfk rG}tdj||ƒƒ‚nXdS(Nscould not read {!r} file: {!r}(treadRtKeyErrort RuntimeErrorRR(R<R.R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR&šs cC@sldj|ƒ}t||ƒ}yt|ƒ}Wn+tk r[}tdj||ƒƒ‚nXtƒj|ƒS(siReturn the WHEEL metadata of an extracted wheel, if possible. Otherwise, raise UnsupportedWheel. s{}/WHEELserror decoding {!r}: {!r}(RR&RRRRtparsestr(R<t dist_info_dirR.twheel_contentst wheel_textR((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR3¦scC@s~|d}|dkr%tdƒ‚n|jƒ}y ttt|jdƒƒƒSWn&tk rytdj|ƒƒ‚nXdS(sbGiven WHEEL metadata, return the parsed Wheel-Version. Otherwise, raise UnsupportedWheel. s Wheel-VersionsWHEEL is missing Wheel-Versiont.sinvalid Wheel-Version: {!r}N( tNoneRtstripttupletmaptintR%t ValueErrorR(t wheel_datat version_textR6((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR4ºs     cC@sv|dtdkrAtdj|djtt|ƒƒƒƒ‚n1|tkrrtjddjtt|ƒƒƒndS(såRaises errors or warns if called with an incompatible Wheel-Version. pip should refuse to install a Wheel-Version that's a major series ahead of what it's compatible with (e.g 2.0 > 1.1); and warn when installing a version only minor version ahead (e.g 1.2 > 1.1). version: a 2-tuple representing a Wheel-Version (Major, Minor) name: name of wheel or package to raise exception about :raises UnsupportedWheel: when an incompatible Wheel-Version is given isB{}'s Wheel-Version ({}) is not compatible with this version of pipRIs*Installing from a newer Wheel-Version (%s)N(tVERSION_COMPATIBLERRR;RMR'tloggertwarning(R6R((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyR5Ës $ (ii()Rt __future__Rtloggingt email.parserRtzipfileRtpip._vendor.packaging.utilsRtpip._vendor.pkg_resourcesRtpip._vendor.sixRRtpip._internal.exceptionsRt!pip._internal.utils.pkg_resourcesRtpip._internal.utils.typingR t email.messageR ttypingR R R RRRRt getLoggerRRSRR1R"R2R&R3R4R5(((sˆ/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/utils/wheel.pyts6  %  &