o )a` @sdZddlmZddlmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl m Z ddlmZddlmZddlmZe d e jjZd Zd d ZGd ddZdS)zWheels support.) get_platform)logN) parse_version)sys_tags)canonicalize_name)write_requirementsz^(?P.+?)-(?P\d.*?) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) )\.whl$z8__import__('pkg_resources').declare_namespace(__name__) c Cst|D]Q\}}}tj||}|D]}tj||}tj|||}t||qttt|D]"\} } tj|| }tj||| }tj |sUt|||| =q3qtj|ddD]\}}}|rgJt |q^dS)zDMove everything under `src_dir` to `dst_dir`, and delete the former.T)topdownN) oswalkpathrelpathjoinrenamesreversedlist enumerateexistsrmdir) Zsrc_dirZdst_dirdirpathZdirnames filenamessubdirfsrcZdstndrC/opt/alt/python310/lib/python3.10/site-packages/setuptools/wheel.pyunpacks$    rc@sheZdZddZddZddZddZd d Zd d Zd dZ e ddZ e ddZ e ddZ dS)WheelcCsPttj|}|durtd|||_|D] \}}t|||qdS)Nzinvalid wheel name: %r) WHEEL_NAMEr r basename ValueErrorfilename groupdictitemssetattr)selfr"matchkvrrr__init__6s zWheel.__init__cCs&t|jd|jd|jdS)z>List tags (py_version, abi, platform) supported by this wheel..) itertoolsproductZ py_versionsplitabiplatformr&rrrtags>s    z Wheel.tagscs0tddtDtfdd|DdS)z5Is the wheel is compatible with the current platform?css |] }|j|j|jfVqdSN)Z interpreterr/r0.0trrr Hs z&Wheel.is_compatible..c3s|] }|vrdVqdS)TNrr4Zsupported_tagsrrr7JsF)setrnextr2r1rr8r is_compatibleFszWheel.is_compatiblecCs,tj|j|j|jdkr dntddS)Nany) project_nameversionr0z.egg) pkg_resources Distributionr=r>r0regg_namer1rrrrALs zWheel.egg_namecCsF|D]}t|}|drt|t|jr|Sqtd)Nz .dist-infoz.unsupported wheel format. .dist-info not found)Znamelist posixpathdirnameendswithr startswithr=r!)r&zfmemberrCrrr get_dist_infoRs   zWheel.get_dist_infocCs>t|j}|||WddS1swYdS)z"Install wheel as an egg directory.N)zipfileZZipFiler"_install_as_egg)r&destination_eggdirrFrrrinstall_as_egg\s"zWheel.install_as_eggcCs\d|j|jf}||}d|}tj|d}|||||||||||dS)Nz%s-%sz%s.dataEGG-INFO) r=r>rHr r r _convert_metadata_move_data_entries_fix_namespace_packages)r&rKrFZ dist_basename dist_info dist_dataegg_inforrrrJas  zWheel._install_as_eggc sTfdd}|d}t|d}td|kotdkn}|s*td|t||tj|tj j |t |dd d t t tfd d jD}t|ttj|d tj|dtj t|dd} tjj} ttjzt| ddtj|dWt| dSt| w)NcsTt|}|d}tj|WdS1s#wYdS)Nzutf-8) openrBr readdecodeemailparserZParserZparsestr)namefpvalue)rQrFrr get_metadatams$z-Wheel._convert_metadata..get_metadataZWHEELz Wheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)ZmetadatacSsd|_t|Sr3)Zmarkerstr)reqrrrraw_reqsz(Wheel._convert_metadata..raw_reqc s2i|]}|tfddt|fDqS)c3s|] }|vr|VqdSr3r)r5r^)install_requiresrrr7s z5Wheel._convert_metadata...)sortedmaprequires)r5Zextra)distr`r_rr s z+Wheel._convert_metadata..ZMETADATAzPKG-INFO)r`extras_require)ZattrsrSz requires.txt)rgetr!r mkdirZ extractallr r r?r@Z from_locationZ PathMetadatarrarbrcZextrasrename setuptoolsdictrZ _global_logZ thresholdZ set_thresholdZWARNrZget_command_obj) rFrKrQrSr\Zwheel_metadataZ wheel_versionZwheel_v1rfZ setup_distZ log_thresholdr)rdrQr`r_rFrrNksR        zWheel._convert_metadatacstj|tjd}tj|rNtj|dd}t|t|D]"}|dr8ttj||q&ttj||tj||q&t |t tjjfdddDD]}t ||q\tjrqt dSdS)z,Move data entries to their correct location.ZscriptsrMz.pycc3s|] }tj|VqdSr3)r r r )r5rrRrrr7s  z+Wheel._move_data_entries..)dataZheadersZpurelibZplatlibN) r r r rrhlistdirrDunlinkrirfilterr)rKrRZdist_data_scriptsZegg_info_scriptsentryrrrlrrOs,        zWheel._move_data_entriesc Cstj|d}tj|rkt|}|}Wdn1s"wY|D]C}tjj|g|dR}tj|d}tj|sJt|tj|sjt|d }|t Wdn1sewYq)dSdS)Nznamespace_packages.txtr+z __init__.pyw) r r r rrTrUr.rhwriteNAMESPACE_PACKAGE_INIT)rSrKZnamespace_packagesrZmodZmod_dirZmod_initrrrrPs&       zWheel._fix_namespace_packagesN)__name__ __module__ __qualname__r*r2r;rArHrLrJ staticmethodrNrOrPrrrrr4s  ? r)__doc__Zdistutils.utilrZ distutilsrrWr,r rBrerIr?rjrZ setuptools.extern.packaging.tagsrZ!setuptools.extern.packaging.utilsrZsetuptools.command.egg_inforcompileVERBOSEr'rrtrrrrrrs2