o $"bx@s^ddlmZmZddlmZddlmZddlmZGddde Z ddZ Gd d d Z d S) )absolute_importunicode_literals) attrgetter)ZipFile) ensure_textc@steZdZddZeddZeddZeddZed d Z e d d Z ed dZ ddZ ddZddZdS)WheelcCs||_|jd|_dS)N-)pathstemsplit_parts)selfr r=/usr/lib/python3/dist-packages/virtualenv/seed/wheels/util.py__init__ szWheel.__init__cCs2|dur|jdkrt|jddkr||SdS)Nz.whlr)suffixlenr r )clsr rrr from_paths&zWheel.from_pathcC |jdS)Nrr r rrr distribution zWheel.distributioncCr)Nrrrrrversionrz Wheel.versioncCs ||jSN)as_version_tuplerrrrr version_tuples zWheel.version_tuplec CsVg}|dddD]}z |t|Wq ty Ynw|s't|t|S)N.r)r appendint ValueErrortuple)rresultpartrrrr"s zWheel.as_version_tuplecCs|jjSr)r namerrrrr(.sz Wheel.namec s|dd|jjddd}ttt|jd}|| d}Wdn1s.wYdt fdd | Dd}|durId St d d |d Dd d |dDD]\}dfddfdfddfdfddfdfddfdfddfdfddffD]-\}}| |r|t|d} t dd | d Ddd} || sdSnqq_d S)Nz{}.dist-info/METADATArrrzutf-8zRequires-Python:c3s*|]}|r|tdVqdSr) startswithr.0i)markerrr 7s(z#Wheel.support_py..Tcss|]}t|VqdSrr#r,rrrr0:r css|]}|VqdSr)stripr,rrrr0;r2,z!=cs|kSrrvpy_version_intrr>z"Wheel.support_py..z==cs|kSrrr5r7rrr9?r:z<=cs|kSrrr5r7rrr9@r:z>=cs|kSrrr5r7rrr9Ar:cs|kSrrr5r7rrr9Cr:css$|] }|dkr t|ndVqdS)*Nr1r,rrrr0Gs"F)formatjoinr r r rrstrreaddecodenext splitlinesr%r+rr3) r py_versionr(zip_filemetadatarequiresrequireoperatorcheckver_strrr)r/r8r support_py2s4"  zWheel.support_pycCsd|jj|jS)Nz{}({}))r> __class____name__r rrrr__repr__MszWheel.__repr__cCs t|jSr)r@r rrrr__str__Ps z Wheel.__str__N)rO __module__ __qualname__r classmethodrpropertyrrr staticmethodrr(rMrPrQrrrrr s"       rcCsdg}|D]!}t|}|r'|j|kr'|dus|j|kr'||r'||qt|tddddS)NrrT)keyreverse) iterdirrrrrrMr"sortedr) from_folderrrfor_py_versionwheelsfilenamewheelrrrdiscover_wheelsTs    r`c@s@eZdZdZdZeefZeddZeddZeddZ d S) VersionbundleembedcCs|tjvrdS|Sr)ra non_version)valuerrr of_versionizVersion.of_versioncCsd|t|S)Nz{}{})r>raas_version_spec)rrrrr as_pip_reqmrgzVersion.as_pip_reqcCs t|}|dur dSd|S)Nz=={})rarfr>)rrfrrrrhqs zVersion.as_version_specN) rOrRrSrbrcrdrVrfrirhrrrrra_s  raN) __future__rrrJrzipfilervirtualenv.util.sixrobjectrr`rarrrrs   K