a „oe´!ã@sèdZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl Z ddl m ZddlmZddlmZddlmZmZddlmZe d ej¡jZd Zejdd �d d „ƒZdd„Zej dd„ƒZ!Gdd„dƒZ"dS)zWheels support.éN)Ú get_platform)ÚVersion©Úsys_tags)Úcanonicalize_name)Úwrite_requirementsÚ _egg_basename)Ú_unpack_zipfile_objz‚^(?P.+?)-(?P\d.*?) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) )\.whl$z8__import__('pkg_resources').declare_namespace(__name__) )ÚmaxsizecCsdd„tƒDƒS)NcSsh|]}|j|j|jf’qS©)Z interpreterÚabiÚplatform©Ú.0Útr r ú1C:\Program Files\Certbot\pkgs\setuptools\wheel.pyÚ %óz&_get_supported_tags..rr r r rÚ_get_supported_tags src CsÞt |¡D]¢\}}}tj ||¡}|D].}tj ||¡}tj |||¡}t ||¡q&ttt|ƒƒƒD]D\} } tj || ¡}tj ||| ¡}tj  |¡sft ||¡|| =qfq tj|dd�D]\}}}|rÎJ‚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ÚdirpathÚdirnamesÚ filenamesÚsubdirÚfÚsrcÚdstÚnÚdr r rÚunpack(s   r*c cs>ddlm}| |j¡}zdVW| |¡n | |¡0dS)z* Temporarily disable info traces. r)ÚlogN)Z distutilsr+Z set_thresholdZWARN)r+Zsavedr r rÚdisable_info_traces>s   r,c@sheZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z e dd„ƒZ e dd„ƒZ e dd„ƒZ dS)ÚWheelcCsPttj |¡ƒ}|dur$td|ƒ‚||_| ¡ ¡D]\}}t|||ƒq6dS)Nzinvalid wheel name: %r) Ú WHEEL_NAMErrÚbasenameÚ ValueErrorÚfilenameÚ groupdictÚitemsÚsetattr)Úselfr1ÚmatchÚkÚvr r rÚ__init__Ms  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Úsplitr r ©r5r r rÚtagsUs    ýz Wheel.tagscCstdd„| ¡DƒdƒS)z2Is the wheel compatible with the current platform?css|]}|tƒvrdVqdS)TN)rrr r rÚ _rz&Wheel.is_compatible..F)Únextr?r>r r rÚ is_compatible]szWheel.is_compatiblecCs&t|j|j|jdkrdntƒd�dS)NÚany)r z.egg)rÚ project_nameÚversionr rr>r r rÚegg_nameasýûÿ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Ú startswithrDr0)r5ÚzfÚmemberrHr r rÚ get_dist_infoks  ÿ zWheel.get_dist_infocCs<t |j¡�}| ||¡Wdƒn1s.0YdS)z"Install wheel as an egg directory.N)ÚzipfileÚZipFiler1Ú_install_as_egg)r5Údestination_eggdirrKr r rÚinstall_as_egguszWheel.install_as_eggcCs\d|j|jf}| |¡}d|}tj |d¡}| ||||¡| ||¡| ||¡dS)Nz%s-%sz%s.dataúEGG-INFO) rDrErMrrrÚ_convert_metadataÚ_move_data_entriesÚ_fix_namespace_packages)r5rQrKZ dist_basenameÚ dist_infoÚ dist_dataÚegg_infor r rrPzs  zWheel._install_as_eggc sHddl}‡‡fdd„}|dƒ}t| d¡ƒ}tdƒ|koFtdƒkn}|s\td|ƒ‚tˆ|ƒtj |ˆ¡‰|jj |ˆ|  |ˆ¡d �‰d d „‰t t ˆˆ  ¡ƒƒ‰‡‡‡fd d „ˆjDƒ} t ˆ|¡t tj |d¡tj |d¡¡tjtˆ| d�d�} tƒ�,t|  d¡dtj |d¡ƒWdƒn1�s:0YdS)NrcsTˆ t ˆ|¡¡�.}| ¡ d¡}tj ¡ |¡WdƒS1sF0YdS)Nzutf-8) ÚopenrGrÚreadÚdecodeÚemailÚparserZParserZparsestr)ÚnameÚfpÚvalue)rWrKr rÚ get_metadataˆsz-Wheel._convert_metadata..get_metadataZWHEELz Wheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)ÚmetadatacSsd|_t|ƒS©N)ZmarkerÚstr)Úreqr r rÚraw_req sz(Wheel._convert_metadata..raw_reqc s.i|]&}|‡fdd„tˆˆ |f¡ƒDƒ“qS)csg|]}|ˆvr|‘qSr r )rrf)Úinstall_requiresr rÚ ¦sþz6Wheel._convert_metadata...)ÚmapÚrequires)rZextra)Údistrhrgr rÚ ¥sû þz+Wheel._convert_metadata..ZMETADATAzPKG-INFO)rhÚextras_require)ÚattrsrYz requires.txt)Ú pkg_resourcesÚ parse_versionÚgetr0r rrrZ DistributionZ from_locationZ PathMetadatarrjrkÚextrasÚrenameÚ setuptoolsÚdictr,rZget_command_obj) rKrQrWrYrprbZwheel_metadataZ wheel_versionZwheel_v1rnZ setup_distr )rlrWrhrgrKrrT„sH    ý ú   þþÿ ý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.ZscriptsrSz.pycc3s|]}tj ˆ|¡VqdSrd)rrr)rr)©rXr rr@Ôsÿz+Wheel._move_data_entries..)ÚdataZheadersZpurelibZplatlibN) rrrrÚmkdirÚlistdirrIÚunlinkrtr Úfilterr*)rQrXZdist_data_scriptsZegg_info_scriptsÚentryr$r rwrrU¿s,     þ  þþ  zWheel._move_data_entriesc CsÚtj |d¡}tj |¡rÖt|ƒ�}| ¡ ¡}Wdƒn1sD0Y|D]‚}tjj|g| d¡¢RŽ}tj |d¡}tj |¡s”t |¡tj |¡sRt|dƒ�}| t ¡WdƒqR1sÊ0YqRdS)Nznamespace_packages.txtr:z __init__.pyÚw) rrrrrZr[r=ryÚwriteÚNAMESPACE_PACKAGE_INIT)rYrQZnamespace_packagesr`ÚmodZmod_dirZmod_initr r rrVÝs  *    zWheel._fix_namespace_packagesN)Ú__name__Ú __module__Ú __qualname__r9r?rBrFrMrRrPÚ staticmethodrTrUrVr r r rr-Ls    : r-)#Ú__doc__r]r;Ú functoolsrrGÚrerNÚ contextlibZdistutils.utilrruZ#setuptools.extern.packaging.versionrrqZ setuptools.extern.packaging.tagsrZ!setuptools.extern.packaging.utilsrZsetuptools.command.egg_inforrZsetuptools.archive_utilr ÚcompileÚVERBOSEr6r.r€Ú lru_cacherr*Úcontextmanagerr,r-r r r rÚs4     ü