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]\}}}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Ú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Únextr1r0rr4rÚ is_compatibleMszWheel.is_compatiblecCs,tj|j|j|jdkrdntƒd� ¡dS)NÚany)Ú project_nameÚversionr/z.egg)Ú pkg_resourcesÚ Distributionr9r:r/rÚegg_namer0rrrr=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Ú startswithr9r!)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_eggdirrBrrrÚinstall_as_eggbszWheel.install_as_eggcCs\d|j|jf}| |¡}d|}tj |d¡}| ||||¡| ||¡| ||¡dS)Nz%s-%sz%s.dataúEGG-INFO) r9r:rDr r r Ú_convert_metadataÚ_move_data_entriesÚ_fix_namespace_packages)r&rGrBZ dist_basenameÚ dist_infoÚ dist_dataÚegg_inforrrrFgs  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)rMrBrrÚ 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|VqdSrYr)r2r[)Úinstall_requiresrrr5“sþz5Wheel._convert_metadata...)ÚsortedÚmapÚrequires)r2Zextra)Údistr]r\rrÚ ’s û þz+Wheel._convert_metadata..ZMETADATAzPKG-INFO)r]Úextras_require)ZattrsrOz requires.txt)rÚgetr!r ÚmkdirZ extractallr r r;r<Z from_locationZ PathMetadatarr^r_r`ZextrasÚrenameÚ setuptoolsÚdictrZget_command_obj) rBrGrMrOrXZwheel_metadataZ wheel_versionZwheel_v1rcZ setup_distr)rarMr]r\rBrrJqsLÿÿ   þú   þþÿ ý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.ZscriptsrIz.pycc3s|]}tj ˆ|¡VqdSrY)r r r )r2r©rNrrr5¿sÿz+Wheel._move_data_entries..)ÚdataZheadersZpurelibZplatlibN) r r r rreÚlistdirr@ÚunlinkrfrÚfilterr)rGrNZdist_data_scriptsZegg_info_scriptsÚentryrrrirrK«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 rrPrQr.ÚwriteÚNAMESPACE_PACKAGE_INIT)rOrGZnamespace_packagesrVÚmodZmod_dirZmod_initrrrrLÇsÿ   zWheel._fix_namespace_packagesN)Ú__name__Ú __module__Ú __qualname__r*r1r7r=rDrHrFÚ staticmethodrJrKrLrrrrr;s   9 r)Ú__doc__Zdistutils.utilrrSr,r r>ÚrerEr;rgrZ!setuptools.extern.packaging.utilsrZsetuptools.extern.sixrrZsetuptools.command.egg_inforÚtypeZ __metaclass__ÚcompileÚVERBOSEr'rrqrrrrrrÚs,      ü