§ {<ˆjEãóú—dZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZd d lmZmZGd „d e¦«ZGd„dee¬¦«ZGd„de¦«ZGd„de¦«Zgd¢ZdS)uÜ A rough layout of the current storage goes as: virtualenv-app-data ├── py - │ └── *.json/lock ├── wheel │ ├── house │ │ └── *.whl │ └── -> 3.9 │ ├── img- │ │ └── image │ │ └── -> CopyPipInstall / SymlinkPipInstall │ │ └── -> pip-20.1.1-py2.py3-none-any │ └── embed │ └── 3 -> json format versioning │ └── *.json -> for every distribution contains data about newer embed versions and releases └─── unzip └── ├── py_info.py ├── debug.py └── _virtualenv.py éN)ÚABCMeta)Úcontextmanager)Úsha256)ÚReentrantFileLock)Ú safe_delete)Úextract)Ú __version__é)ÚAppDataÚ ContentStorecó¨—eZdZdZdZdZd„Zd„Zd„Zd„Z d„Z e d „¦«Z e d „¦«Z ed „¦«Zd „Zd „Zd„Zed„¦«Zd„ZdS)ÚAppDataDiskFolderzH Store the application data on the disk within a folder layout. FTcó.—t|¦«|_dS©N)rÚlock)ÚselfÚfolders úu/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/virtualenv/app_data/via_disk_folder.pyÚ__init__zAppDataDiskFolder.__init__/s€Ý% fÑ-Ô-ˆŒ ˆ ˆ ócóJ—t|¦«j›d|jj›d�S)Nú(ú))ÚtypeÚ__name__rÚpath©rs rÚ__repr__zAppDataDiskFolder.__repr__2s&€Ý�t‘*”*Ô%Ð9Ð9¨¬ ¬Ð9Ð9Ð9Ð9rcó4—t|jj¦«Sr)Ústrrrrs rÚ__str__zAppDataDiskFolder.__str__5s€Ý�4”9”>Ñ"Ô"Ð"rcóv—tjd|jj¦«t |jj¦«dS)Nzreset app data folder %s)ÚloggingÚdebugrrrrs rÚresetzAppDataDiskFolder.reset8s1€ÝŒ Ð0°$´)´.ÑAÔAÐAÝ�D”I”NÑ#Ô#Ð#Ð#Ð#rcó—dS)z do nothingN©rs rÚclosezAppDataDiskFolder.close<s€€€rc#ófK—|j|z }|5|jV—ddd¦«dS#1swxYwYdSr©rr)rrÚ path_locks rÚlockedzAppDataDiskFolder.locked?sŠèè€à”I Ñ$ˆ Ø ð !ð !Ø”.Ð Ð Ð ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s � &¦*­*c#ó6K—|�t|¦«¦«}n|jdz tz }| |j¦«5|j|jz }| ¦«st||¦«|V—ddd¦«dS#1swxYwYdS)NÚunzip)rrr Ú lock_for_keyÚnamerÚexistsr)rrÚ to_folderÚrootÚdests rrzAppDataDiskFolder.extractEsãèè€à Ð Ý$ Y Y¡[¤[Ñ1Ô1ˆDˆDà”9˜wÑ&­Ñ4ˆDØ × Ò ˜tœyÑ )Ô )ð ð Ø”9˜tœyÑ(ˆDØ—;’;‘=”=ð $ݘ˜dÑ#Ô#Ð#؈JˆJˆJð  ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sÁ 8BÂBÂBcó—|jdz dz S)NÚpy_infoÚ1)rrs rÚ py_info_atzAppDataDiskFolder.py_info_atQs€àŒy˜9Ñ$ sÑ*Ð*rcó,—t|j|¦«Sr)ÚPyInfoStoreDiskr8©rrs rr6zAppDataDiskFolder.py_infoUs€Ý˜tœ°Ñ5Ô5Ð5rcóN—|j}|5|j ¦«D]g}|jdkrZ| |j¦«5| ¦«r| ¦«ddd¦«n #1swxYwYŒh ddd¦«dS#1swxYwYdS)ú ú.jsonN)r8rÚiterdirÚsuffixr/Ústemr1Úunlink)rÚpy_info_folderÚfilenames rÚ py_info_clearzAppDataDiskFolder.py_info_clearXs1€àœˆØ ð .ð .Ø*Ô/×7Ò7Ñ9Ô9ð .ð .�Ø”? gÒ-Ð-Ø'×4Ò4°X´]ÑCÔCð.ð.Ø#Ÿ?š?Ñ,Ô,ð.Ø$ŸOšOÑ-Ô-Ð-ð.ð.ð.ñ.ô.ð.ð.ð.ð.ð.ð.øøøð.ð.ð.ð.øð .ð .ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s6ŠABÁ )BÁ4 BÂB ÂBÂB ÂBÂBÂ!BcóD—t|jdz |z dz dz |¦«S)NÚwheelÚembedÚ3)Ú EmbedDistributionUpdateStoreDiskr)rÚ distributionÚfor_py_versions rÚembed_update_logz"AppDataDiskFolder.embed_update_logbs+€Ý/°´ ¸GÑ0CÀnÑ0TÐW^Ñ0^ÐadÑ0dÐfrÑsÔsÐsrcóX—|jjdz dz }| dd¬¦«|S)NrGÚhouseT©ÚparentsÚexist_ok)rrÚmkdirr;s rrOzAppDataDiskFolder.housees0€àŒyŒ~ Ñ'¨'Ñ1ˆØ � Š ˜4¨$ˆ Ñ/Ô/Ð/؈ rcó8—|jjdz |z dz dz |z S)NrGÚimager7r*)rrLr0s rÚ wheel_imagezAppDataDiskFolder.wheel_imageks%€ØŒyŒ~ Ñ'¨.Ñ8¸7ÑBÀSÑHÈ4ÑOÐOrN)rÚ __module__Ú __qualname__Ú__doc__Ú transientÚ can_updaterrr!r%r(rr,rÚpropertyr8r6rErMrOrVr'rrrr's%€€€€€ððð€IØ€Jð.ð.ð.ð:ð:ð:ð#ð#ð#ð$ð$ð$ððððð!ð!ñ„^ð!ð ð ð ñ„^ð ðð+ð+ñ„Xð+ð6ð6ð6ð.ð.ð.ðtðtðtðððñ„Xðð PðPðPðPðPrrcóX—eZdZd„Zed„¦«Zd„Zd„Zd„Ze d„¦«Z d„Z dS) Ú JSONStoreDiskcóP—||_||_||_||jfz|_dSr)Ú in_folderÚkeyÚmsgÚfileÚmsg_args)rr`rarbrds rrzJSONStoreDisk.__init__ps+€Ø"ˆŒØˆŒØˆŒØ  D¤I <Ñ/ˆŒ ˆ ˆ rcó0—|jj|j›d�z S)Nr>)r`rrars rrczJSONStoreDisk.filevs€àŒ~Ô"¨¬Ð%7Ð%7Ð%7Ñ7Ð7rcó4—|j ¦«Sr)rcr1rs rr1zJSONStoreDisk.existszs€ØŒy×ÒÑ!Ô!Ð!rcó:—d\}} tj|j d¬¦«¦«}t jd|j›d�g|j¢RŽ|S#t$rd}Ynt$rYnwxYw|r& |  ¦«n#t$rYnwxYwdS)N)NFúutf-8©Úencodingzgot z from %sT) ÚjsonÚloadsrcÚ read_textr#r$rbrdÚ ValueErrorÚ ExceptionÚremoveÚOSError)rÚdataÚ bad_formats rÚreadzJSONStoreDisk.read}sÜ€Ø&шˆjð Ý”:˜dœi×1Ò1¸7Ð1ÑCÔCÑDÔDˆDÝ ŒMÐ3 ¤Ð3Ð3Ð3Ð D°d´mÐ DÐ DÐ DÐ D؈KøÝð ð ð ØˆJˆJˆJÝð ð ð Ø ˆDð øøøà ð ð Ø— ’ ‘ ” � � øÝð ð ð Ø�ð øøøàˆts*‡AAÁ A0Á$ A0Á/A0Á6B  BÂBcóx—|j ¦«tjd|j›d�g|j¢RŽdS)Nzremoved ú at %s)rcrBr#r$rbrdrs rrpzJSONStoreDisk.removeŽsD€Ø Œ ×ÒÑÔÐÝŒ Ð1 ¤Ð1Ð1Ð1ÐB°D´MÐBÐBÐBÐBÐBÐBrc#ó‚K—|j |j¦«5dV—ddd¦«dS#1swxYwYdSr)r`r/rars rr,zJSONStoreDisk.locked’s‹èè€à Œ^× (Ò (¨¬Ñ 2Ô 2ð ð Ø ˆEˆEˆEð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s ¢4´8»8cóî—|jj}| dd¬¦«|j t j|dd¬¦«d¬¦«t jd|j›d�g|j ¢RŽdS) NTrPé)Ú sort_keysÚindentrhrizwrote rv) rcÚparentrSÚ write_textrkÚdumpsr#r$rbrd)rÚcontentrs rÚwritezJSONStoreDisk.write—s}€Ø”Ô!ˆØ� Š ˜T¨Dˆ Ñ1Ô1Ð1Ø Œ ×Ò�TœZ¨¸4ÈÐJÑJÔJÐU\ÐÑ]Ô]Ð]ÝŒ Ð/˜tœxÐ/Ð/Ð/Ð@°$´-Ð@Ð@Ð@Ð@Ð@Ð@rN) rrWrXrr\rcr1rtrprr,r€r'rrr^r^os�€€€€€ð0ð0ð0ð ð8ð8ñ„Xð8ð"ð"ð"ðððð"CðCðCðððñ„^ððAðAðAðAðArr^)Ú metaclasscó‡—eZdZˆfd„ZˆxZS)r:cóÔ•—tt|¦« d¦«¦« ¦«}t ¦« ||d|f¦«dS)Nrhzpython info of %s)rr ÚencodeÚ hexdigestÚsuperr)rr`rraÚ __class__s €rrzPyInfoStoreDisk.__init__ŸsWø€Ý•S˜‘Y”Y×%Ò% gÑ.Ô.Ñ/Ô/×9Ò9Ñ;Ô;ˆÝ ‰Œ×Ò˜ CÐ)<¸t¸gÑFÔFÐFÐFÐFr©rrWrXrÚ __classcell__©r‡s@rr:r:žsAø€€€€€ðGðGðGðGðGðGðGðGðGrr:có‡—eZdZˆfd„ZˆxZS)rJcóR•—t¦« ||d|f¦«dS)Nzembed update of distribution %s)r†r)rr`rKr‡s €rrz)EmbedDistributionUpdateStoreDisk.__init__¥s7ø€Ý ‰Œ×ÒØ Ø Ø -Ø ˆOñ  ô ð ð ð rrˆrŠs@rrJrJ¤s8ø€€€€€ð ð ð ð ð ð ð ð ð rrJ)rr^r:)rYrkr#ÚabcrÚ contextlibrÚhashlibrÚvirtualenv.util.lockrÚvirtualenv.util.pathrÚvirtualenv.util.zipapprÚvirtualenv.versionr Úbaser r rr^r:rJÚ__all__r'rrúr–s ðððð0 € € € Ø€€€ØÐÐÐÐÐØ%Ð%Ð%Ð%Ð%Ð%ØÐÐÐÐÐà2Ð2Ð2Ð2Ð2Ð2Ø,Ð,Ð,Ð,Ð,Ð,Ø*Ð*Ð*Ð*Ð*Ð*Ø*Ð*Ð*Ð*Ð*Ð*à'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ðEPðEPðEPðEPðEP˜ñEPôEPðEPðP,Að,Að,Að,Að,A�L¨Gð,Añ,Aô,Að,Að^GðGðGðGðG�mñGôGðGð  ð ð ð ð  }ñ ô ð ð ð ð €€€r