qcBCCDs#5 AAAsourcec|jDchc]}|jddd}}|Dcgc]}|jds|}}|s tdt |dkDr)tdj dj ||d}t|}t|}|j|std|d ||Scc}wcc}w) zReturns the name of the contained .dist-info directory. Raises AssertionError or UnsupportedWheel if not found, >1 found, or it doesn't match the provided name. /r rz .dist-infoz.dist-info directory not foundz)multiple .dist-info directories found: {}z, z.dist-info directory z does not start with ) namelistsplitendswithrlenformatjoinr startswith) rr psubdirss info_dirsr info_dir_namecanonical_names rrr$s,2??+<=aqwwsAq!=G=#@qqzz,'?@I@ ?@@ 9~ 7 > >tyy?S T  |H%h/M&t,N  # #N 3#H@sCC Cpathc |j|S#tttf$r}t d|d|d}~wwxYw)Nzcould not read z file: )readrKeyError RuntimeErrorr)rr(rs rread_wheel_metadata_filer-CsJG{{4   , /GuEFFGs=8= dist_info_dirc|d}t||} |j}t j |S#t$r}td|d|d}~wwxYw)ziReturn the WHEEL metadata of an extracted wheel, if possible. Otherwise, raise UnsupportedWheel. z/WHEELzerror decoding z: N)r-decodeUnicodeDecodeErrorrrparsestr)rr.r(wheel_contents wheel_textrs rrrLsq_F #D-fd;NB#**,  8  Z (( B1%@AABs< AAA wheel_data.c|d}| td|j} ttt|j dS#t $rtd|wxYw)zbGiven WHEEL metadata, return the parsed Wheel-Version. Otherwise, raise UnsupportedWheel. z Wheel-VersionzWHEEL is missing Wheel-Version.zinvalid Wheel-Version: )rstriptuplemapintr ValueError)r5 version_textrs rrr_sso.L?@@  "GFSgmmC0122 F!8 DEEFs 'A A$rc  |dtdkDr8tdj|djt t ||tkDr4t jddjt t |yy)aRaises 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 rzB{}'s Wheel-Version ({}) is not compatible with this version of pipr7z*Installing from a newer Wheel-Version (%s)N)VERSION_COMPATIBLErrr r:strloggerwarning)rr s rrrosvqz&q)) VD#((3sG+<"=>   % % 8 HHSg& '  &)__doc__logging email.messager email.parserrzipfilerrpip._vendor.packaging.utilsrpip._internal.exceptionsrr? getLogger__name__rAr@r9rrbytesr-rr;rrrCrrOs5!'95   8 $7#%W 2E$ss>GWGCGEG)7)3)7)& Fg F%S/ F  sCx   rC