U âQabžã@s¾dZddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl m Z ddlmZddl mZddlmZeZe d ej¡jZd Zd d „ZGd d„dƒZdS)zWheels support.é)Ú get_platformN)Ú parse_version)Úcanonicalize_name)ÚPY3)Ú pep425tags)Úwrite_requirementsz‚^(?P.+?)-(?P\d.*?) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) )\.whl$zštry: __import__('pkg_resources').declare_namespace(__name__) except ImportError: __path__ = __import__('pkgutil').extend_path(__path__, __name__) c CsÞt |¡D]¢\}}}tj ||¡}|D].}tj ||¡}tj |||¡}t ||¡q&ttt|ƒƒƒD]D\} } tj || ¡}tj ||| ¡}tj  |¡sft ||¡|| =qfq tj|dd�D]\}}}|rÎt ‚t  |¡q¼dS)zDMove everything under `src_dir` to `dst_dir`, and delete the former.T)ÚtopdownN) ÚosÚwalkÚpathÚrelpathÚjoinÚrenamesÚreversedÚlistÚ enumerateÚexistsÚAssertionErrorÚrmdir) Zsrc_dirZdst_dirÚdirpathZdirnamesÚ filenamesÚsubdirÚfÚsrcZdstÚnÚd©rú4/usr/lib/python3.8/site-packages/setuptools/wheel.pyÚunpack%s   rc@sheZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z e dd„ƒZ e dd„ƒZ e dd„ƒZ dS)ÚWheelcCsPttj |¡ƒ}|dkr$td|ƒ‚||_| ¡ ¡D]\}}t|||ƒq6dS)Nzinvalid wheel name: %r) Ú WHEEL_NAMEr r ÚbasenameÚ ValueErrorÚfilenameÚ groupdictÚitemsÚsetattr)Úselfr#ÚmatchÚkÚvrrrÚ__init__=s  zWheel.__init__cCs&t |j d¡|j d¡|j d¡¡S)z>List tags (py_version, abi, platform) supported by this wheel.Ú.)Ú itertoolsÚproductZ py_versionÚsplitZabiÚplatform©r'rrrÚtagsEs    ýz Wheel.tagscs$t ¡‰t‡fdd„| ¡DƒdƒS)z5Is the wheel is compatible with the current platform?c3s|]}|ˆkrdVqdS)TNr)Ú.0Út©Zsupported_tagsrrÚ Psz&Wheel.is_compatible..F)rZ get_supportedÚnextr2r1rr5rÚ is_compatibleMszWheel.is_compatiblecCs,tj|j|j|jdkrdntƒd� ¡dS)NÚany)Ú project_nameÚversionr0z.egg)Ú pkg_resourcesÚ Distributionr:r;r0rÚegg_namer1rrrr>RsþýzWheel.egg_namecCsJ| ¡D]4}t |¡}| d¡rt|ƒ t|jƒ¡r|Sqtdƒ‚dS)Nz .dist-infoz.unsupported wheel format. .dist-info not found)ZnamelistÚ posixpathÚdirnameÚendswithrÚ startswithr:r")r'ÚzfÚmemberr@rrrÚ get_dist_infoXs   ÿÿ zWheel.get_dist_infoc Cs(t |j¡�}| ||¡W5QRXdS)z"Install wheel as an egg directory.N)ÚzipfileZZipFiler#Ú_install_as_egg)r'Údestination_eggdirrCrrrÚinstall_as_eggbszWheel.install_as_eggcCs\d|j|jf}| |¡}d|}tj |d¡}| ||||¡| ||¡| ||¡dS)Nz%s-%sz%s.dataúEGG-INFO) r:r;rEr r r Ú_convert_metadataÚ_move_data_entriesÚ_fix_namespace_packages)r'rHrCZ dist_basenameÚ dist_infoÚ dist_dataÚegg_inforrrrGgs  zWheel._install_as_eggc s&‡‡fdd„}|dƒ}t| d¡ƒ}tdƒ|ko>tdƒkn}|sTtd|ƒ‚t |¡ˆ |¡tj |ˆ¡‰tj j |ˆt  |ˆ¡d�‰d d „‰t t tˆˆ ¡ƒƒƒ‰‡‡‡fd d „ˆjDƒ}t ˆ|¡t tj |d ¡tj |d¡¡tj tˆ|d�d�} t|  d¡dtj |d¡ƒdS)Nc sTˆ t ˆ|¡¡�8}tr&| ¡ d¡n| ¡}tj ¡  |¡W5QR£SQRXdS)Nzutf-8) Úopenr?r rÚreadÚdecodeÚemailÚparserZParserZparsestr)ÚnameÚfpÚvalue)rNrCrrÚ get_metadatassz-Wheel._convert_metadata..get_metadataZWHEELz Wheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)ZmetadatacSsd|_t|ƒS©N)ZmarkerÚstr)ÚreqrrrÚraw_reqŽsz(Wheel._convert_metadata..raw_reqc s2i|]*}|t‡fdd„tˆˆ |f¡ƒDƒƒ“qS)c3s|]}|ˆkr|VqdSrZr)r3r\)Úinstall_requiresrrr6“sþz5Wheel._convert_metadata...)ÚsortedÚmapÚrequires)r3Zextra)Údistr^r]rrÚ ’s û þz+Wheel._convert_metadata..ZMETADATAzPKG-INFO)r^Úextras_require)ZattrsrPz requires.txt)rÚgetr"r ÚmkdirZ extractallr r r<r=Z from_locationZ PathMetadatarr_r`raZextrasÚrenameÚ setuptoolsÚdictrZget_command_obj) rCrHrNrPrYZwheel_metadataZ wheel_versionZwheel_v1rdZ setup_distr)rbrNr^r]rCrrKqsLÿÿ   þú   þþÿ ýzWheel._convert_metadatacsâtj |ˆ¡‰tj ˆd¡}tj |¡rœtj |dd¡}t |¡t |¡D]D}| d¡rpt tj ||¡¡qLt tj ||¡tj ||¡¡qLt  |¡t tjj‡fdd„dDƒƒD]}t ||ƒq¸tj ˆ¡rÞt  ˆ¡dS)z,Move data entries to their correct location.ZscriptsrJz.pycc3s|]}tj ˆ|¡VqdSrZ)r r r )r3r©rOrrr6¿sÿz+Wheel._move_data_entries..)ÚdataZheadersZpurelibZplatlibN) r r r rrfÚlistdirrAÚunlinkrgrÚfilterr)rHrOZdist_data_scriptsZegg_info_scriptsÚentryrrrjrrL«s. ÿ    þ þ   zWheel._move_data_entriesc Cs¦tj |d¡}tj |¡r¢t|ƒ�}| ¡ ¡}W5QRX|D]b}tjj|f| d¡žŽ}tj |d¡}tj |¡r>tj |¡s>t|dƒ�}| t¡W5QRXq>dS)Nznamespace_packages.txtr,z __init__.pyÚw) r r r rrQrRr/ÚwriteÚNAMESPACE_PACKAGE_INIT)rPrHZnamespace_packagesrWÚmodZmod_dirZmod_initrrrrMÇsÿ   zWheel._fix_namespace_packagesN)Ú__name__Ú __module__Ú __qualname__r+r2r8r>rErIrGÚ staticmethodrKrLrMrrrrr;s   9 r)Ú__doc__Zdistutils.utilrrTr-r r?ÚrerFr<rhrZ!setuptools.extern.packaging.utilsrZsetuptools.extern.sixrrZsetuptools.command.egg_inforÚtypeZ __metaclass__ÚcompileÚVERBOSEr(r rrrrrrrrÚs,      ü