§ ]<ˆj�(ãó†—dZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z ddl m Z mZmZddlmZddlmZddlmZdd lmZdd lmZdd lmZmZdd lmZeje ¦«Z!d Z"de e#e#fde#fd„Z$Gd„d¦«Z%Gd„de%¦«Z&Gd„de&¦«Z'Gd„d¦«Z(Gd„de%¦«Z)dS)zCache Management éN)ÚPath)ÚAnyÚDictÚListÚOptional)ÚTagÚinterpreter_nameÚinterpreter_version)Úcanonicalize_name)ÚInvalidWheelFilename)Ú DirectUrl)ÚLink)ÚWheel)Ú TempDirectoryÚ tempdir_kinds)Ú path_to_urlz origin.jsonÚdÚreturncó¤—tj|ddd¬¦«}tj| d¦«¦« ¦«S)z'Return a stable sha224 of a dictionary.T)ú,ú:)Ú sort_keysÚ separatorsÚ ensure_asciiÚascii)ÚjsonÚdumpsÚhashlibÚsha224ÚencodeÚ hexdigest)rÚss úe/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/pip/_internal/cache.pyÚ _hash_dictr$sB€å Œ �1 °È$ÐOÑOÔO€AÝ Œ>˜!Ÿ(š( 7Ñ+Ô+Ñ ,Ô ,× 6Ò 6Ñ 8Ô 8Ð8óc󨇗eZdZdZdeddfˆfd„ Zdedeefd„Zdededee fd „Z dedefd „Z ded e ed ee defd „ZˆxZS)ÚCachezuAn abstract class - provides cache directories for data from links :param cache_dir: The root of the cache. Ú cache_dirrNcó •—t¦« ¦«|r!tj |¦«sJ‚|pd|_dS©N)ÚsuperÚ__init__ÚosÚpathÚisabsr(©Úselfr(Ú __class__s €r#r,zCache.__init__&sHø€Ý ‰Œ×ÒÑÔÐØÐ8¥¤§ ¢ ¨iÑ 8Ô 8Ð8Ð8Ð8Ø"Ð* dˆŒˆˆr%Úlinkcó"—d|ji}|j�|j�|j||j<|jr |j|d<t ¦«|d<t ¦«|d<t |¦«}|dd…|dd…|dd…|dd…g}|S) zÐ %¨$¬)Ð*?Ø(,¬ ˆI�d”nÑ %Ø Ô %ð CØ(,Ô(BˆI�nÑ %õ)9Ñ(:Ô(:ˆ Ð$Ñ%Ý+>Ñ+@Ô+@ˆ Ð'Ñ(õ ˜IÑ&Ô&ˆð ˜˜˜”˜V A a Cœ[¨&°°1°¬+°v¸a¸b¸b´zÐBˆàˆ r%Úcanonical_package_namecóÔ‡—|j p| p| }|rgS| |¦«Štj ‰¦«r ˆfd„tj‰¦«D¦«SgS)Ncó•—g|]}|‰f‘ŒS©rE)Ú.0Ú candidater.s €r#ú z)Cache._get_candidates..Ssø€ÐHÐHÐH¨)�Y Ð%ÐHÐHÐHr%)r(Úget_path_for_linkr-r.ÚisdirÚlistdir)r1r3rBÚ can_not_cacher.s @r#Ú_get_candidateszCache._get_candidatesLs~ø€Ø œNÐ*ÐTÐ2HÐ.HÐTÐPTÈHˆ Ø ð ØˆIà×%Ò% dÑ+Ô+ˆÝ Œ7�=Š=˜Ñ Ô ð IØHÐHÐHÐHµr´zÀ$Ñ7GÔ7GÐHÑHÔHÐ H؈ r%có—t¦«‚)z5Return a directory to store cached items in for link.©ÚNotImplementedError©r1r3s r#rIzCache.get_path_for_linkVs€å!Ñ#Ô#Ð#r%Ú package_nameÚsupported_tagscó—t¦«‚)zaReturns a link to a cached item if it exists, otherwise returns the passed link. rO)r1r3rRrSs r#Úgetz Cache.getZs€õ"Ñ#Ô#Ð#r%)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ústrr,rrrArrMrIrrrUÚ __classcell__©r2s@r#r'r' s ø€€€€€ððð + #ð+¨$ð+ð+ð+ð+ð+ð+ð ¨$ð°4¸´9ðððððB DðÀ#ðÈ$ÈsÌ)ððððð$ dð$¨sð$ð$ð$ð$ð $àð $ð˜s”mð $ð˜Sœ ð $ð ð $ð $ð $ð $ð $ð $ð $ð $r%r'cól‡—eZdZdZdeddfˆfd„ Zdedefd„Zdedeed e e defd „Z ˆxZ S) ÚSimpleWheelCachez&A cache of wheels for future installs.r(rNcóJ•—t¦« |¦«dSr*)r+r,r0s €r#r,zSimpleWheelCache.__init__is!ø€Ý ‰Œ×Ò˜Ñ#Ô#Ð#Ð#Ð#r%r3cóx—| |¦«}|jsJ‚tjj|jdg|¢RŽS)a³Return a directory to store cached wheels for link Because there are M wheels for any one sdist, we provide a directory to cache them in, and then consult that directory when looking up cache hits. We only insert things into the cache if they have plausible version numbers, so that we don't contaminate the cache with things that were not unique. E.g. ./package might have dozens of installs done for it and build a version of 0.0...and if we built and cached a wheel, we'd end up using the same wheel even if the source has been edited. :param link: The link of the sdist for which this will cache wheels. Úwheels)rAr(r-r.Újoin)r1r3r@s r#rIz"SimpleWheelCache.get_path_for_linklsB€ð×*Ò*¨4Ñ0Ô0ˆØŒ~ÐЈ~åŒwŒ|˜DœN¨HÐ=°uÐ=Ð=Ð=Ð=r%rRrScó6—g}|s|St|¦«}| ||¦«D]�\}} t|¦«}n#t$rYŒ"wxYwt|j¦«|krt  d|||¦«Œ\| |¦«sŒr| |  |¦«||f¦«Œž|s|St|¦«\} }}tttj ||¦«¦«¦«S)NzWIgnoring cached wheel %s for %s as it does not match the expected distribution name %s.)r rMrr ÚnameÚloggerÚdebugÚ supportedÚappendÚsupport_index_minÚminrrr-r.rb) r1r3rRrSÚ candidatesrBÚ wheel_nameÚ wheel_dirÚwheelÚ_s r#rUzSimpleWheelCache.get€sT€ð ˆ àð ØˆKå!2°<Ñ!@Ô!@ÐØ%)×%9Ò%9¸$Ð@VÑ%WÔ%Wð ð Ñ !ˆJ˜ ð ݘjÑ)Ô)��øÝ'ð ð ð Ø�ð øøøå  ¤Ñ,Ô,Ð0FÒFÐFÝ— ’ ðHàØØ ñ ôððØ—?’? >Ñ2Ô2ð àØ × Ò à×+Ò+¨NÑ;Ô;ØØðñ ô ð ð ðð ØˆKå#& z¡?¤?Ñ ˆˆ:�yÝ•K¥¤§ ¢ ¨Y¸ Ñ CÔ CÑDÔDÑEÔEÐEs²AÁ AÁA) rVrWrXrYrZr,rrIrrrrUr[r\s@r#r^r^fsÁø€€€€€Ø0Ð0ð$ #ð$¨$ð$ð$ð$ð$ð$ð$ð> dð>¨sð>ð>ð>ð>ð()Fàð)Fð˜s”mð)Fð˜Sœ ð )Fð ð )Fð)Fð)Fð)Fð)Fð)Fð)Fð)Fr%r^có$‡—eZdZdZdˆfd„ ZˆxZS)ÚEphemWheelCachezBA SimpleWheelCache that creates it's own temporary cache directoryrNcóž•—ttjd¬¦«|_t ¦« |jj¦«dS)NT)ÚkindÚglobally_managed)rrÚEPHEM_WHEEL_CACHEÚ _temp_dirr+r,r.)r1r2s €r#r,zEphemWheelCache.__init__¯sGø€Ý&ÝÔ0Ø!ð ñ ô ˆŒõ ‰Œ×Ò˜œÔ,Ñ-Ô-Ð-Ð-Ð-r%)rN)rVrWrXrYr,r[r\s@r#rqrq¬sCø€€€€€ØLÐLð.ð.ð.ð.ð.ð.ð.ð.ð.ð.r%rqcó—eZdZdedefd„ZdS)Ú CacheEntryr3Ú persistentcóx—||_||_d|_t|jj¦«jt z }| ¦«rj tj |  d¬¦«¦«|_dS#t$r-}t  d||j|¦«Yd}~dSd}~wwxYwdS)Núutf-8©Úencodingz7Ignoring invalid cache entry origin file %s for %s (%s))r3ryÚoriginrÚ file_pathÚparentÚORIGIN_JSON_NAMEÚexistsr Ú from_jsonÚ read_textÚ ExceptionreÚwarningÚfilename)r1r3ryÚorigin_direct_url_pathÚes r#r,zCacheEntry.__init__¹sç€ð ˆŒ Ø$ˆŒØ+/ˆŒ Ý!% d¤iÔ&9Ñ!:Ô!:Ô!AÕDTÑ!TÐØ !× (Ò (Ñ *Ô *ð ð Ý'Ô1Ø*×4Ò4¸gÐ4ÑFÔFñô�” � � øõð ð ð Ý—’ØMØ*Ø”MØñ ôðððððððøøøøð øøøð ð sÁ-B B7 "B2Â2B7N)rVrWrXrÚboolr,rEr%r#rxrx¸s:€€€€€ðàððððððððr%rxc ó܇—eZdZdZdeddfˆfd„ Zdedefd„Zdedefd„Zded e ed e e defd „Z ded e ed e e de e fd „Zeded eddfd„¦«ZˆxZS)Ú WheelCachezØWraps EphemWheelCache and SimpleWheelCache into a single Cache This Cache allows for gracefully degradation, using the ephem wheel cache when a certain link is not found in the simple wheel cache first. r(rNc󘕗t¦« |¦«t|¦«|_t ¦«|_dSr*)r+r,r^Ú _wheel_cacherqÚ _ephem_cacher0s €r#r,zWheelCache.__init__×s?ø€Ý ‰Œ×Ò˜Ñ#Ô#Ð#Ý,¨YÑ7Ô7ˆÔÝ+Ñ-Ô-ˆÔÐÐr%r3có6—|j |¦«Sr*)rŽrIrQs r#rIzWheelCache.get_path_for_linkÜó€ØÔ ×2Ò2°4Ñ8Ô8Ð8r%có6—|j |¦«Sr*)r�rIrQs r#Úget_ephem_path_for_linkz"WheelCache.get_ephem_path_for_linkßr‘r%rRrScóF—| |||¦«}|€|S|jSr*)Úget_cache_entryr3)r1r3rRrSÚ cache_entrys r#rUzWheelCache.getâs/€ð ×*Ò*¨4°¸~ÑNÔNˆ Ø Ð ØˆKØÔÐr%cóΗ|j |||¬¦«}||urt|d¬¦«S|j |||¬¦«}||urt|d¬¦«SdS)z¶Returns a CacheEntry with a link to a cached item if it exists or None. The cache entry indicates if the item was found in the persistent or ephemeral cache. )r3rRrST)ryFN)rŽrUrxr�)r1r3rRrSÚretvals r#r•zWheelCache.get_cache_entryís•€ðÔ"×&Ò&ØØ%Ø)ð'ñ ô ˆð ˜Ð Рݘf°Ð6Ñ6Ô6Ð 6àÔ"×&Ò&ØØ%Ø)ð'ñ ô ˆð ˜Ð Рݘf°Ð7Ñ7Ô7Ð 7àˆtr%Ú download_infocóÖ—t|¦«tz }| ¦«r” tj| d¬¦«¦«}|j|jkr't d|j||j¦«n3#t$r&}t d||¦«Yd}~nd}~wwxYw|  |  ¦«d¬¦«dS)Nr{r|z›Origin URL %s in cache entry %s does not match download URL %s. This is likely a pip bug or a cache corruption issue. Will overwrite it with the new value.zPCould not read origin file %s in cache entry (%s). Will attempt to overwrite it.) rr�r‚r rƒr„r5rer†r…Ú write_textÚto_json)r(r™Ú origin_pathr~r‰s r#Úrecord_download_originz!WheelCache.record_download_origin s€å˜9‘o”oÕ(8Ñ8ˆ Ø × Ò Ñ Ô ð ð Ý"Ô,¨[×-BÒ-BÈGÐ-BÑ-TÔ-TÑUÔU�ð”: Ô!2Ò2Ð2Ý—N’Nð@ðœ Ø!Ø%Ô)ñ ôðøøõð ð ð Ý—’ð4àØñ ôððððððøøøøð øøøð& ×Ò˜}×4Ò4Ñ6Ô6ÀÐÑIÔIÐIÐIÐIs­(B  B=ÂB8Â8B=)rVrWrXrYrZr,rrIr“rrrrUrxr•Ú staticmethodr ržr[r\s@r#rŒrŒÐsbø€€€€€ððð . #ð.¨$ð.ð.ð.ð.ð.ð.ð 9 dð9¨sð9ð9ð9ð9ð9¨Dð9°Sð9ð9ð9ð9ð  àð  ð˜s”mð  ð˜Sœ ð  ð ð  ð  ð  ð  ðàðð˜s”mðð˜Sœ ð ð �*Ô ð ðððð8ðJ¨#ðJ¸iðJÈDðJðJðJñ„\ðJðJðJðJðJr%rŒ)*rYrrÚloggingr-ÚpathlibrÚtypingrrrrÚpip._vendor.packaging.tagsrr r Úpip._vendor.packaging.utilsr Úpip._internal.exceptionsr Úpip._internal.models.direct_urlr Úpip._internal.models.linkrÚpip._internal.models.wheelrÚpip._internal.utils.temp_dirrrÚpip._internal.utils.urlsrÚ getLoggerrVrer�rZr$r'r^rqrxrŒrEr%r#úr¬sVðððð€€€Ø € € € Ø€€€Ø € € € ØÐÐÐÐÐØ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,àQÐQÐQÐQÐQÐQÐQÐQÐQÐQØ9Ð9Ð9Ð9Ð9Ð9à9Ð9Ð9Ð9Ð9Ð9Ø5Ð5Ð5Ð5Ð5Ð5Ø*Ð*Ð*Ð*Ð*Ð*Ø,Ð,Ð,Ð,Ð,Ð,ØEÐEÐEÐEÐEÐEÐEÐEØ0Ð0Ð0Ð0Ð0Ð0à ˆÔ ˜8Ñ $Ô $€à Ðð9�$�s˜C�x”.ð9 Sð9ð9ð9ð9ð C$ðC$ðC$ðC$ðC$ñC$ôC$ðC$ðLCFðCFðCFðCFðCF�uñCFôCFðCFðL .ð .ð .ð .ð .Ð&ñ .ô .ð .ðððððñôðð0RJðRJðRJðRJðRJ�ñRJôRJðRJðRJðRJr%