a [dg` @sddlmZddlmZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl mZddlmZddlmZedejjZd Zd d ZGd d d ZdS)) 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]\}}}tj||}|D].}tj||}tj|||}t||q&ttt|D]D\} } tj|| }tj||| }tj |sft|||| =qfq tj|ddD]\}}}t |qdS)NT)topdown) oswalkpathrelpathjoinrenamesreversedlist enumerateexistsrmdir) Zsrc_dirZdst_dirdirpathdirnames filenamessubdirfsrcdstndr:/usr/local/lib/python3.9/site-packages/setuptools/wheel.pyunpacks   rc@sheZdZddZddZddZddZd d Zd d Zd dZ e ddZ e ddZ e ddZ dS)WheelcCsPttj|}|dur$td|||_|D]\}}t|||q6dS)Nzinvalid wheel name: %r) WHEEL_NAMEr r basename ValueErrorfilename groupdictitemssetattr)selfr$matchkvrrr__init__6s  zWheel.__init__cCs&t|jd|jd|jdS)N.) itertoolsproductZ py_versionsplitabiplatformr(rrrtags>s    z Wheel.tagscs0tddtDtfdd|DdS)Ncss|]}|j|j|jfVqdSN)Z interpreterr1r2.0trrr Hsz&Wheel.is_compatible..c3s|]}|vrdVqdS)TNrr6Zsupported_tagsrrr9JF)setrnextr4r3rr:r is_compatibleFszWheel.is_compatiblecCs,tj|j|j|jdkrdntddS)Nany) project_nameversionr2z.egg) pkg_resources Distributionr@rAr2regg_namer3rrrrDLs zWheel.egg_namecCsJ|D]4}t|}|drt|t|jr|SqtddS)Nz .dist-infoz.unsupported wheel format. .dist-info not found)Znamelist posixpathdirnameendswithr startswithr@r#)r(zfmemberrFrrr get_dist_infoRs    zWheel.get_dist_infocCs<t|j}|||Wdn1s.0YdSr5)zipfileZipFiler$_install_as_egg)r(destination_eggdirrIrrrinstall_as_egg\szWheel.install_as_eggcCs\d|j|jf}||}d|}tj|d}|||||||||||dS)Nz%s-%sz%s.dataEGG-INFO) r@rArKr r r _convert_metadata_move_data_entries_fix_namespace_packages)r(rOrIZ dist_basename dist_info dist_dataegg_inforrrrNas  zWheel._install_as_eggc sVfdd}|d}t|d}td|ko>tdkn}|sTtd|t||tj|tj j |t |dd d t t tfd d jD}t|ttj|d tj|dtj t|dd} tjj} ttjz*t| ddtj|dWt| n t| 0dS)NcsTt|.}|d}tj|WdS1sF0YdS)Nzutf-8) openrEr readdecodeemailparserZParserZparsestr)namefpvalue)rUrIrr get_metadatamsz-Wheel._convert_metadata..get_metadataZWHEELz Wheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)metadatacSsd|_t|Sr5)Zmarkerstr)reqrrrraw_reqsz(Wheel._convert_metadata..raw_reqc s2i|]*}|tfddt|fDqS)c3s|]}|vr|VqdSr5r)r7rc)install_requiresrrr9sz5Wheel._convert_metadata...)sortedmaprequires)r7extra)distrerdrr sz+Wheel._convert_metadata..ZMETADATAzPKG-INFO)reextras_require)attrsrWz requires.txt)rgetr#r mkdir extractallr r rBrCZ from_locationZ PathMetadatarrfrgrhextrasrename setuptoolsdictrZ _global_logZ thresholdZ set_thresholdWARNrZget_command_obj) rIrOrUrWr`Zwheel_metadataZ wheel_versionZwheel_v1rlZ setup_distZ log_thresholdr)rjrUrerdrIrrRksR        zWheel._convert_metadatacstj|tjd}tj|rtj|dd}t|t|D]D}|drpttj||qLttj||tj||qLt |t tjjfdddDD]}t ||qtjrt dS)NZscriptsrQz.pycc3s|]}tj|VqdSr5)r r r )r7rrVrrr9sz+Wheel._move_data_entries..)dataZheadersZpurelibZplatlib) r r r rrolistdirrGunlinkrrrfilterr)rOrVZdist_data_scriptsZegg_info_scriptsentryrrrvrrSs*         zWheel._move_data_entriesc Cstj|d}tj|rt|}|}Wdn1sD0Y|D]}tjj|g|dR}tj|d}tj|st|tj|sRt|d}|t WdqR1s0YqRdS)Nznamespace_packages.txtr-z __init__.pyw) r r r rrXrYr0rowriteNAMESPACE_PACKAGE_INIT)rWrOZnamespace_packagesr^modZmod_dirZmod_initrrrrTs  *    zWheel._fix_namespace_packagesN)__name__ __module__ __qualname__r,r4r>rDrKrPrN staticmethodrRrSrTrrrrr 4s   ? r )Zdistutils.utilrZ distutilsrr[r.r rErerLrBrsrZ setuptools.extern.packaging.tagsrZ!setuptools.extern.packaging.utilsrZsetuptools.command.egg_inforcompileVERBOSEr)r!r~rr rrrrs*