o nh!@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl mZddlZddlmZddlmZmZdd lmZdd lmZed ejjZd Zejd dZ dddZ!ej"ddZ#GdddZ$dS)zWheels support.Nsys_tags)canonicalize_name)Version)_unpack_zipfile_obj) _egg_basenamewrite_requirements)_read_utf8_with_fallback) get_platformz^(?P.+?)-(?P\d.*?) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) )\.whl$z8__import__('pkg_resources').declare_namespace(__name__) cCsddtDS)NcSsh|] }|j|j|jfqS) interpreterabiplatform.0tr r S/opt/prometheus-monitoring-scripts/lib/python3.10/site-packages/setuptools/wheel.py 'sz&_get_supported_tags..rr r r r_get_supported_tags"srreturnc 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) src_dirdst_dirdirpathdirnames filenamessubdirfsrcdstndr r runpack*s$    r.c cs>ddlm}||j}z dVW||dS||w)z* Temporarily disable info traces. r)logN) distutilsr/ set_thresholdWARN)r/savedr r rdisable_info_traces@s   r4c@sleZdZdddZddZddZd d Zd d Zdd dZddZ e ddZ e ddZ e ddZ dS)WheelrNcCsRttj|}|durtd|||_|D] \}}t|||qdS)Nzinvalid wheel name: ) WHEEL_NAMErrbasename ValueErrorfilename groupdictitemssetattr)selfr9matchkvr r r__init__OszWheel.__init__cCs&t|jd|jd|jdS)z>List tags (py_version, abi, platform) supported by this wheel..) itertoolsproduct py_versionsplitrrr=r r rtagsWs    z Wheel.tagscCstdd|DdS)z2Is the wheel compatible with the current platform?css|] }|tvrdVqdS)TN)rrr r r asz&Wheel.is_compatible..F)nextrHrGr r r is_compatible_szWheel.is_compatiblecCs&t|j|j|jdkr dntddS)Nany)rz.egg)r project_nameversionrr rGr r regg_namecszWheel.egg_namecCsF|D]}t|}|drt|t|jr|Sqtd)Nz .dist-infoz.unsupported wheel format. .dist-info not found)namelist posixpathdirnameendswithr startswithrMr8)r=zfmemberrRr r r get_dist_infoms  zWheel.get_dist_infocCs>t|j}|||WddS1swYdS)z"Install wheel as an egg directory.N)zipfileZipFiler9_install_as_egg)r=destination_eggdirrUr r rinstall_as_eggws"zWheel.install_as_eggcCs`|jd|j}||}|d}tj|d}|||||||||||dS)N-z.dataEGG-INFO) rMrNrWrrr_convert_metadata_move_data_entries_fix_namespace_packages)r=r[rU dist_basename dist_info dist_dataegg_infor r rrZ|s   zWheel._install_as_eggc sJddl}fdd}|d}t|d}td|ko#tdkn}|s/td|t|tj||jj || |d d d t t  fd d jD} t|ttj|dtj|dtjt| dd} tt| ddtj|dWddS1swYdS)NrcsTt|}|d}tj|WdS1s#wYdS)Nutf-8) openrQrreaddecodeemailparserParserparsestr)namefpvalue)rcrUr r get_metadatas$z-Wheel._convert_metadata..get_metadataWHEELz Wheel-Versionz1.0z2.0dev0z"unsupported wheel format version: )metadatacSsd|_t|SN)markerstr)reqr r rraw_reqsz(Wheel._convert_metadata..raw_reqc s.i|]}|fddt|fDqS)csg|]}|vr|qSr r )rrw)install_requiresr r s z6Wheel._convert_metadata...)maprequires)rextra)distryrxr r s  z+Wheel._convert_metadata..METADATAzPKG-INFO)ryextras_require)attrsrez requires.txt) pkg_resources parse_versiongetr8rrrr Distribution from_location PathMetadatarr{r|extrasrename setuptoolsdictr4rget_command_obj) rUr[rcrerrqwheel_metadata wheel_versionwheel_v1r setup_distr )r~rcryrxrUrr_sJ        "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.scriptsr^z.pycc3s|] }tj|VqdSrt)rrr)rr-rdr rrIs  z+Wheel._move_data_entries..)dataheaderspurelibplatlibN) rrrr!mkdirlistdirrSunlinkrr"filterr.)r[rddist_data_scriptsegg_info_scriptsentryr(r rrr`s.         zWheel._move_data_entriesc Cstj|d}tj|rYt|}|D]E}tjj|g|dR}tj|d}tj|s6t|tj|sXt|ddd }|t Wdn1sSwYqdSdS)Nznamespace_packages.txtrBz __init__.pywrf)encoding) rrrr!r rFrrgwriteNAMESPACE_PACKAGE_INIT)rer[namespace_packagesmodmod_dirmod_initror r rras      zWheel._fix_namespace_packagesrN)__name__ __module__ __qualname__rArHrKrOrWr\rZ staticmethodr_r`rar r r rr5Ns   : r5r)%__doc__ contextlibrj functoolsrCrrQrerXpackaging.tagsrpackaging.utilsrpackaging.versionrrrsetuptools.archive_utilrsetuptools.command.egg_inforr unicode_utilsr distutils.utilr compileVERBOSEr>r6rcacherr.contextmanagerr4r5r r r rs<