Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
PK! $__pycache__/__init__.cpython-311.pycnu[ |oidS)Nrp/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/__init__.pyrsrPK!>&__pycache__/base_embed.cpython-311.pycnu[ |oi`ddlmZddlmZddlmZddlmZdZGddee Z dgZ d S) )ABCMeta)Path)Seeder)VersionTcVeZdZfdZedZdZedZdZxZ S) BaseEmbedct||jdu|j|_d|jD|_|j|_|j|_|j |_ |j |_ |j |_ |j |_ |j|_|j |_|s d|_dSdS)NF)enabledc^g|]*}||+S)existsresolve.0is r/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/base_embed.py z&BaseEmbed.__init__..s2 ] ] ]RSRZRZR\R\ ] ] ] ])super__init__no_seeddownloadextra_search_dirpip pip_version setuptoolssetuptools_versionwheel wheel_versionno_pip no_setuptoolsno_wheelapp_datano_periodic_updateperiodic_updatedistribution_to_versionsr )selfoptions __class__s rrzBaseEmbed.__init__ s '/U*BCCC( ] ]g6N ] ] ]";")"4$]n $2( ( #*#==,,.. ! DLLL ! !rcJtjtjtjdS)N)rrr)rbundle)clss r distributionszBaseEmbed.distributionss">!.^   rcDfdDS)Ncbi|]+}td|du|t|d,S)no_F_version)getattr)r distributionr(s r z6BaseEmbed.distribution_to_versions..'sV   t1<1122e;; '$<(A(A(ABB;;;r)r.)r(s`rr'z"BaseEmbed.distribution_to_versions&s:    $ 2 2 4 4    rc |}|dddddd|dd |d dd d d|dd |ddtddg|D]&\}}|d||dd|d|'|D]%}|d|d|d d|d &|ddd dt dS)Nz --no-downloadz--never-downloadr store_falsez'pass to disable download of the latest /z from PyPIT)destactionhelpdefaultz --download store_truez&pass to enable download of the latest Fz--extra-search-dird+zPa path containing wheels to extend the internal wheel list (can be set 1+ times))metavartypenargsr;r<z--versionz version of z3 to install as seed: embed, bundle or exact version)r9r@r;r<z--no-r1zdo not install z--no-periodic-updater%zGdisable the periodic (once every 14 days) update of the embedded wheels)add_mutually_exclusive_group add_argumentjoinr.ritemsPERIODIC_UPDATE_ON_BY_DEFAULT)r-parser interpreterr$groupr4r<s radd_parser_argumentszBaseEmbed.add_parser_arguments-s3355    d388CDUDUDWDW;X;Xddd      c#((3CTCTCVCV:W:Wccc      c    &)%6%6%8%8%>%>%@%@   !L'   #\##!!d<ddd      --//  L   & &&)<))#5|55       "%Z55      rc\|jj}|dz }|jr+|ddd|jDdz }|d|jdz }|D]:}t |d|rdt ||d dpd }|d ||dz };|dd d zS)N(zextra_search_dir=z, c34K|]}t|VdS)N)strrs r z%BaseEmbed.__repr__..cs(3Z3ZqCFF3Z3Z3Z3Z3Z3Zr,z download=r1=r2latest ))r*__name__rrFrr.r3)r(resultr4vers r__repr__zBaseEmbed.__repr___s(#    ^ ]$))3Z3ZDDY3Z3Z3Z*Z*Z]]] ]F.dm.... ..00 / /Lt1<1122 Rgd|$=$=$=tDDPRRC .,.... .FFcrc{S  r) rX __module__ __qualname__r classmethodr.r'rLr[ __classcell__)r*s@rr r s!!!!!&  [    / / [/ b ! ! ! ! ! ! !rr ) metaclassN) abcrpathlibrseederrwheelsrrHr __all__r rrrfs $`!`!`!`!`!'`!`!`!`!H rPK!ן99&__pycache__/pip_invoke.cpython-311.pycnu[ |oi/tddlZddlmZddlmZddlmZddlmZddl m Z m Z m Z Gdd eZ d gZdS) N)contextmanager)Popen)LogCmd) BaseEmbed)Version get_wheelpip_wheel_env_runcPeZdZfdZdZedZedZxZ S) PipInvokecJt|dSN)super__init__)selfoptions __class__s r/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/pip_invoke.pyrzPipInvoke.__init__ s! !!!!!c|jsdS|jj}||j|5}t |j|j|j}| ||ddddS#1swxYwYdSr) enabled interpreterversion_release_strget_pip_install_cmdexer extra_search_dirapp_dataenv_execute)rcreatorfor_py_versioncmdrs rrunz PipInvoke.runs|  F ,@  % %gk> B B $c#D$94=$(SSC MM#s # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s7A55A9<A9ctjdt||t||}||jdkrt d|j|S)Nzpip seed by running: %s)rrzfailed seed with code )loggingdebugrr communicate returncode RuntimeError)r"rprocesss rrzPipInvoke._executesp /S1A1ABBB%%%   " "L8JLLMM Mrc #Kt|dddddddg}|js|dt}|D]\}}t ||||jd |j|j |j }|td || t|j j|tj||jt%|D]&}|d t|g'|VdS) Nz-mpipz-qinstallz --only-binaryz:all:z--disable-pip-version-checkz --no-indexF) distributionversionr! search_dirsdownloadrdo_periodic_updaterz%could not get wheel for distribution z --find-links)strr1appendsetdistribution_to_versionsitemsr rrperiodic_updaterr)addpathparentr as_pip_reqr/sortedextend) rrr!r"foldersdistr/wheelfolders rrzPipInvoke.get_pip_install_cmd sN3xxudIQno} % JJ| $ $ $%%!::<<BBDD @ @MD'!- 1#'#7H   E}"#Q4#Q#QRRR KKEJ-.. / / / JJw)$ >> ? ? ? ?Woo 6 6F JJF 4 5 5 5 5 r) __name__ __module__ __qualname__rr# staticmethodrrr __classcell__)rs@rr r s}"""""$$$\^rr )r% contextlibr subprocessr#virtualenv.discovery.cached_py_infor virtualenv.seed.embed.base_embedrwheelsrr r r __all__rrrOs%%%%%%666666666666::::::::::,,,,, ,,,` rPK!E1via_app_data/__pycache__/__init__.cpython-311.pycnu[ |oidS)Nr}/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/via_app_data/__init__.pyrsrPK!jˆ%%5via_app_data/__pycache__/via_app_data.cpython-311.pycnu[ |oidZddlZddlZddlZddlmZddlmZddlm Z ddl m Z m Z ddl mZddlmZdd lmZd d lmZd d lmZGd deZdgZdS) BootstrapN)contextmanager)Path)CalledProcessError)LockThread)fs_supports_symlink) BaseEmbed) get_wheel)CopyPipInstall)SymlinkPipInstallcdeZdZfdZefdZdZedZdZ fdZ xZ S) FromAppDatacbt||j|_dS)N)super__init__symlink_app_datasymlinks)selfoptions __class__s /builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/via_app_data/via_app_data.pyrzFromAppData.__init__s) !!!0 ct||||jduo t}|rdnd}|dd|rdnd|dd dS) NFznot supported - z--symlink-app-datar store_true store_falsezO symlink the python packages from the app-data folder (requires seed pip>=19.3))destactionhelpdefault)radd_parser_arguments transientr add_argument)clsparser interpreterapp_data can_symlinksymrs rr#z FromAppData.add_parser_argumentss $$V[(CCC(E1K6I6K6K 7bb%7 ##.A<._install-sh 6M"CT5RaRjkkk7885:?JC $ 9 9':M:acf g gI / GY O OI!]/)2BBF::9>JJ44(22444%11333444444444444444%%g&9&FGGGGG 666'*|~~Jt$$$$6s6B"D%)C DCD!C""D D*)D*c<g|]\}}t||fS)targetargsr).0nwrHs r z#FromAppData.run..;s.\\\1vXQF;;;\\\rzfailed to build image , z because:r ) enabled_get_seed_wheels version_tuplerGitemsstartjoinkeysvaluesappend tracebackformat_exception RuntimeError)rrE name_to_whl pip_versionthreadsthreadmessagesvalueexc_type exc_value exc_tracebackrHrFrGs`` @@@rrunzFromAppData.run%s|  F  " "7 + + 8{>C{>R>R+e,::X\K"22;??OJ 6 6 6 6 6 6 6 6]\\\ HYHYH[H[\\\G!   !    8\TYYz?P?P5Q5Q\\\]'..00mmE9>6HiOOBGGI,FxQZ\i,j,j$k$kllll"499X#6#6777  81 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8sD.E  E$'E$c#KiticfdfdD}|D]}||D]}|r7t ddVdS)Nc r jj}d\}} jrdgnddgD]a}d} t||| j| j j j}|n.5#t$r }tj d|}Yd}~Zd}~wwxYw|rt|tr8d|}||d|z }|d|j z }|j|jz}|r |d z }||z }nt!|}tj| 5| |<ddddS#1swxYwYdS 5| |<ddddS#1swxYwYdS) N)NNTF) distributionversionfor_py_version search_dirsdownloadr)do_periodic_updateenvfailzfailed to download z version z, pip download exit code rS)r(r5rpr extra_search_dirr)periodic_updaterrr>r/ exception isinstancer returncodeoutputstderrreprerror)rlrmrnfailureresultrprvmsgryrErsr6r`rs r_getz*FromAppData._get_seed_wheels.._getKsO$0DN(OGV&*mFTFF% ( ((&%1 ''5$($9!)!%+/+? H   F)* (((%f---'GGGGGG( 7g'9:: (> >>C*47444Kw7IKKKC$^gn.ts?   % g $lG%< = = =   rz.seed failed due to failing to download wheels rR)rdistribution_to_versionsrWrXrYr_rZ)rrErbrcrrsr6r`s`` @@@@rrUzFromAppData._get_seed_wheelsGs"$dffb T4' 7' 7' 7' 7' 7' 7' 7' 7' 7R    )-)F)F)H)H)N)N)P)P     F LLNNNN  F KKMMMM  jhPTPYPYZ^ZcZcZeZePfPfhhii irc<|jr|r |dkrtStS)N))rrr )rpip_version_tuples rrGzFromAppData.installer_classs+ = ). ) G++((rcd|jrdndd|j}t}|dd||dS)Nz, via=symlinkcopyz, app_data_dir=)rr)r__repr__)rrbasers rrzFromAppData.__repr__s\]DM=yyv]]dm]]ww!!ss),S,$r(,,,r) r1 __module__ __qualname__r classmethodr#rirrUrGr __classcell__)rs@rrrs11111     [   8 8 8D66^6p---------rr)__doc__r/r?r] contextlibrpathlibr subprocessr threadingrrvirtualenv.infor virtualenv.seed.embed.base_embedr virtualenv.seed.wheelsr pip_install.copyr pip_install.symlinkrr__all__rrrs %%%%%%))))))""""""""//////666666,,,,,,,,,,,,222222w-w-w-w-w-)w-w-w-v rPK! H via_app_data/pip_install/copy.pynu[import os from pathlib import Path from virtualenv.util.path import copy from .base import PipInstall class CopyPipInstall(PipInstall): def _sync(self, src, dst): copy(src, dst) def _generate_new_files(self): # create the pyc files new_files = super()._generate_new_files() new_files.update(self._cache_files()) return new_files def _cache_files(self): version = self._creator.interpreter.version_info py_c_ext = f".{self._creator.interpreter.implementation.lower()}-{version.major}{version.minor}.pyc" for root, dirs, files in os.walk(str(self._image_dir), topdown=True): root_path = Path(root) for name in files: if name.endswith(".py"): yield root_path / f"{name[:-3]}{py_c_ext}" for name in dirs: yield root_path / name / "__pycache__" def _fix_records(self, new_files): extra_record_data_str = self._records_text(new_files) with (self._dist_info / "RECORD").open("ab") as file_handler: file_handler.write(extra_record_data_str.encode("utf-8")) __all__ = [ "CopyPipInstall", ] PK!Σ#via_app_data/pip_install/symlink.pynu[import os from stat import S_IREAD, S_IRGRP, S_IROTH from subprocess import PIPE, Popen from virtualenv.util.path import safe_delete, set_tree from .base import PipInstall class SymlinkPipInstall(PipInstall): def _sync(self, src, dst): os.symlink(str(src), str(dst)) def _generate_new_files(self): # create the pyc files, as the build image will be R/O cmd = [str(self._creator.exe), "-m", "compileall", str(self._image_dir)] process = Popen(cmd, stdout=PIPE, stderr=PIPE) process.communicate() # the root pyc is shared, so we'll not symlink that - but still add the pyc files to the RECORD for close root_py_cache = self._image_dir / "__pycache__" new_files = set() if root_py_cache.exists(): new_files.update(root_py_cache.iterdir()) new_files.add(root_py_cache) safe_delete(root_py_cache) core_new_files = super()._generate_new_files() # remove files that are within the image folder deeper than one level (as these will be not linked directly) for file in core_new_files: try: rel = file.relative_to(self._image_dir) if len(rel.parts) > 1: continue except ValueError: pass new_files.add(file) return new_files def _fix_records(self, new_files): new_files.update(i for i in self._image_dir.iterdir()) extra_record_data_str = self._records_text(sorted(new_files, key=str)) with open(str(self._dist_info / "RECORD"), "wb") as file_handler: file_handler.write(extra_record_data_str.encode("utf-8")) def build_image(self): super().build_image() # protect the image by making it read only set_tree(self._image_dir, S_IREAD | S_IRGRP | S_IROTH) def clear(self): if self._image_dir.exists(): safe_delete(self._image_dir) super().clear() __all__ = [ "SymlinkPipInstall", ] PK!,<via_app_data/pip_install/__pycache__/symlink.cpython-311.pycnu[ |oipddlZddlmZmZmZddlmZmZddlm Z m Z ddl m Z Gdde Z dgZdS) N)S_IREADS_IRGRPS_IROTH)PIPEPopen) safe_deleteset_tree) PipInstallc>eZdZdZfdZdZfdZfdZxZS)SymlinkPipInstallcdtjt|t|dSN)ossymlinkstr)selfsrcdsts /builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/via_app_data/pip_install/symlink.py_synczSymlinkPipInstall._sync s& 3s88SXX&&&&&ct|jjddt|jg}t |t t }||jdz }t}|rK| | | |t|t}|D]\} ||j}t!|jdkr6n#t$$rYnwxYw| |]|S)Nz-m compileall)stdoutstderr __pycache__r )r_creatorexe _image_dirrr communicatesetexistsupdateiterdiraddrsuper_generate_new_files relative_tolenparts ValueError) rcmdprocess root_py_cache new_filescore_new_filesfilerel __class__s rr(z%SymlinkPipInstall._generate_new_filessK4=$%%t\3t;O;OPD666-7 EE    ! ! '   ]2244 5 5 5 MM- ( ( (  & & &4466"  D &&t77sy>>A%%&     MM$    s=2D11 D>=D>c|d|jD|t |t }t t |jdz d5}|| dddddS#1swxYwYdS)Nc3K|]}|VdSr).0is r z1SymlinkPipInstall._fix_records..'s">>q>>>>>>r)keyRECORDwbzutf-8) r$r r% _records_textsortedropen _dist_infowriteencode)rr0extra_record_data_str file_handlers r _fix_recordszSymlinkPipInstall._fix_records&s >>DO$;$;$=$=>>>>>> $ 2 26)3M3M3M N N #do0114 8 8 FL   4;;GDD E E E F F F F F F F F F F F F F F F F F Fs)B;;B?B?ctt|jtt zt zdSr)r' build_imager r rrrrr4s rrHzSymlinkPipInstall.build_image,s; 'G"3g"=>>>>>rc|jrt|jtdSr)r r#rr'clearrIs rrKzSymlinkPipInstall.clear1s> ? ! ! # # )  ( ( (  r) __name__ __module__ __qualname__rr(rFrHrK __classcell__)r4s@rr r s'''0FFF ????? rr )rstatrrr subprocessrrvirtualenv.util.pathrr baser r __all__r7rrrUs **********""""""""66666666***** ***\ rPK!`Ȃ@@9via_app_data/pip_install/__pycache__/base.cpython-311.pycnu[ |oi ddlZddlZddlZddlZddlmZmZddlmZddl m Z ddl m Z ddl mZddlmZmZddlmZGd d e ZGd d eZd gZdS)N)ABCMetaabstractmethod) ConfigParser)chainPath)mkdtemp) ScriptMakerenquote_executable) safe_deleteceZdZdZedZdZdZdZdZ dZ e dZ ed Z e d Zd Zd Zed ZdZdZdS) PipInstallcZ||_||_||_d|_d|_d|_dS)NF)_wheel_creator _image_dir _extracted_PipInstall__dist_info_console_entry_points)selfwheelcreator image_folders /builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/via_app_data/pip_install/base.py__init__zPipInstall.__init__s4  &%)"""ctNNotImplementedError)rsrcdsts r_synczPipInstall._sync!!rc d|_||jD],}|jj|jz }|||-t}|jj }|j D]0\}}| | ||||1tjddd|DdS)NTzgenerated console scripts %s c3$K|] }|jV dSr)name.0is r z%PipInstall.install..)s$>X>X!qv>X>X>X>X>X>Xr)r_uninstall_previous_versionriterdirrpurelibr(r#set script_dir_console_scriptsitemsupdate_create_console_entry_pointloggingdebugjoin)r version_infofilenameintoconsolesr1r(modules rinstallzPipInstall.installs ((***//11 ' 'H=(8=8D JJx & & & &55]-  17799 f fLD& OOD<X>Xx>X>X>X6X6XYYYYYrctjd|jj|jt jt|j5}||| t|jd|_ dddn #1swxYwY| }| |dS)Nz build install image for %s to %sT) r6r7rr(rzipfileZipFilestr_shorten_path_if_needed extractallr_generate_new_files _fix_records)rzip_ref new_filess r build_imagezPipInstall.build_image+s 8$+:JDO\\\ _S-- . . #'  ( ( 1 1 1   s4?33 4 4 4"DO # # # # # # # # # # # # # # # ,,..  )$$$$$s ABB #B c\tjdkrt|j}t d|D}|t |z}|dkrD|jdddlm }||}t||_dSdSdS)Nntc34K|]}t|VdSr)lenr)s rr,z5PipInstall._shorten_path_if_needed..;s(AAc!ffAAAAAAriT)exist_okr)get_short_path_name) osr(rBrmaxnamelistrMmkdirvirtualenv.util.pathrOr)rrG to_folder zip_max_lenpath_lenrOs rrCz"PipInstall._shorten_path_if_needed7s 7d??DO,,IAAg.>.>.@.@AAAAAK"S^^3H#~~%%t%444DDDDDD// :: "&y// ? ~rcFdfd|DS)N c3K|]F}tjt|tjdVGdS)z,,N)rPpathrelpathrBr)r*recrs rr,z+PipInstall._records_text..FsMaaTWBGOOCHHc$/6J6JKKOOOaaaaaar)r8)rfiless` r _records_textzPipInstall._records_textEs+yyaaaa[`aaaaaarc   t}jdz }|dd||jjjdz }|dd||t } t|}tj tj j tj j j jj}jD]=\}}| fd||||D> t+|n#t+|wxYw|S)N INSTALLERzpip utf-8encodingz .virtualenvc 3K|]M}ttjt jz |jz VNdSr)rrPr[normpathrBrr()r*r+relrs rr,z1PipInstall._generate_new_files..Wse!!))#do.Caf.L*M*MNNOO!!!!!!r)r0 _dist_info write_textaddrstemr rrPr[r\rBrr1r/ interpreterr9r2r3r4r5r ) rrH installermarkerfolderrUr9r(r=rhs ` @rrEzPipInstall._generate_new_filesHsEE Ok1 Ww777 i   do&:#G#G#GG"w/// f V I'//#dm&>"?"?T]EZA[A[\\C=4AL $ 5 ; ; = =   f  !!!!!!==dFIWcdd!!!      K    s CE//Fc&|jdurdS|jyg}|jD]0}||j|jdkr ||_n.1td|jdd||jS)NF .dist-infozno .dist-info at z, has z, ) rrrr.appendr(suffix RuntimeErrorr8)rr^r:s rrizPipInstall._dist_info_s ?e # #4   #E O3355 b b X]+++?l22'/D$E3##`t#`#`diiX]N^N^#`#`aaarctrr)rextra_record_datas rrFzPipInstall._fix_recordsnr$rc|jdurdS|ji|_|jdz }|rt }|d5}||dddn #1swxYwYd|vrW|dD]A\}}tj d|}|r| dd}||j|<B|jS) NFzentry_points.txtrbrcconsole_scriptsz(.*?)-?\d\.?\d*r) rrriexistsropen read_filesectionsr3rematchgroups)r entry_pointsparser file_handlerr(valuers rr2zPipInstall._console_scriptsrsK ?e # #4  % -)+D &?-??L""$$ A%!&&&883L$$\222333333333333333$(9(999'-||4E'F'FAA e ");T B B 6#(<<??1#5D;@2488))sA>>BBcg}t|||jj|}|d|}||}|d|D|S)Nz = c34K|]}t|VdSrrr)s rr,z9PipInstall._create_console_entry_point..s(11!d1gg111111r)ScriptMakerCustomrexemakeextend) rr(rrUr9resultmaker specificationrHs rr5z&PipInstall._create_console_entry_pointsi!)\4=;LdSS++E++ JJ}--  11y111111 rc(|jjddtjd|jj|jjhD}fd|D}t|d}|| |dSdS)N-rc6g|]}|S)r.r)s r z:PipInstall._uninstall_previous_version..s )n)n)n!!))++)n)n)nrc3K|]I}|jddk&|jdk1|E|VJdS)rrrrN)rlsplitrtis_dir)r*p dist_names rr,z9PipInstall._uninstall_previous_version..saxxq!&,,s*;*;A*>)*K*KPQPX\hPhPhmnmumumwmwPhPhPhPhPhxxr) rirlrr from_iterablerr/platlibnext_uninstall_dist)r in_folderspaths existing_distrs @rr-z&PipInstall._uninstall_previous_versionsO(..s33A6 ()n)n @UW[WdWl?m)n)n)noo xxxxJxxxUD))  $   / / / / / % $rcPj}tjdj|dz }|r4fd|dDn t}|| dz c}|r2d|dDndD]<}||z }tfd |j Ds||=t|D]b}|rL| r$|st|N|cdS) Nz*uninstall existing distribution %s from %sz top_level.txtcHh|]}j|z Sr)parentstrip)r*r+dists r z-PipInstall._uninstall_dist..s( _ _ _T[17799 $ _ _ _rrbrcRECORDc3LK|]}|ddV dS),rN)rr)s rr,z-PipInstall._uninstall_dist..s0 V VQWWS\\!_ V V V V V Vrrc3 K|]}|vV dSrr)r*r base_dirss rr,z-PipInstall._uninstall_dist..s'<rIrCr_rEpropertyrirFr2r5r- staticmethodrrrrrrrrs<***""^" Z Z Z % % % 2 2 2bbb.   X  ""^"**X*$000""\"6)))XXXXXrr) metaclassc(eZdZfdZfdZxZS)rc tdt|d|_d|_t t||_|j|jf|_ hd|_ ||_ dS)NT>X.YreX) superrrBclobberset_moder executablemajorminorr9variants_name)r target_dirr9rr( __class__s rrzScriptMakerCustom.__init__sq s:///  ,S__==(. 0BB(((  rc||j|jdd|jdt|||||dS)Nr.rz)rkrr9r _write_script)rnamesshebang script_bytes filenamesextrs rrzScriptMakerCustom._write_scripts` TZN!21!5NN8I!8LNNOOO eWlIsKKKKKr)rrrrr __classcell__)rs@rrrsZLLLLLLLLLrr)r6rPrr@abcrr configparserr itertoolsrpathlibrtempfiler distlib.scriptsr r rTr rr__all__rrrrs7 ''''''''%%%%%%;;;;;;;;,,,,,,fXfXfXfXfX7fXfXfXfXR L L L L L L L L  rPK! =via_app_data/pip_install/__pycache__/__init__.cpython-311.pycnu[ |oidS)Nr/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/via_app_data/pip_install/__init__.pyrsrPK!KM 9via_app_data/pip_install/__pycache__/copy.cpython-311.pycnu[ |oiTddlZddlmZddlmZddlmZGddeZdgZdS)N)Pathcopy) PipInstallc0eZdZdZfdZdZdZxZS)CopyPipInstallc&t||dSNr)selfsrcdsts /builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/seed/embed/via_app_data/pip_install/copy.py_synczCopyPipInstall._sync s S#ct}|||Sr )super_generate_new_filesupdate _cache_files)r new_files __class__s rrz"CopyPipInstall._generate_new_files s>GG//11 **,,---rc#K|jjj}d|jjjd|j|jd}tjt|j dD]Q\}}}t|}|D]*}| dr||dd|z V+|D] }||z dz V RdS) N.-z.pycT)topdownz.py __pycache__) _creator interpreter version_infoimplementationlowermajorminoroswalkstr _image_dirrendswith)r versionpy_c_extrootdirsfiles root_pathnames rrzCopyPipInstall._cache_filess-+8lt}0?EEGGll'-lY`Yflll!#T_)=)=t!L!L!L 7 7 D$T I ? ?==''?#crc&>H&>&>>>>> 7 7$&66666 7  7 7rc||}|jdz d5}||dddddS#1swxYwYdS)NRECORDabzutf-8) _records_text _dist_infoopenwriteencode)r rextra_record_data_str file_handlers r _fix_recordszCopyPipInstall._fix_recordss $ 2 29 = =o( . .t 4 4 F   4;;GDD E E E F F F F F F F F F F F F F F F F F Fs)A))A-0A-)__name__ __module__ __qualname__rrrr< __classcell__)rs@rr r sl 7 7 7FFFFFFFrr ) r&pathlibrvirtualenv.util.pathrbaserr __all__rrrFs %%%%%%FFFFFZFFF8 rPK!T  via_app_data/pip_install/base.pynu[import logging import os import re import zipfile from abc import ABCMeta, abstractmethod from configparser import ConfigParser from itertools import chain from pathlib import Path from tempfile import mkdtemp from distlib.scripts import ScriptMaker, enquote_executable from virtualenv.util.path import safe_delete class PipInstall(metaclass=ABCMeta): def __init__(self, wheel, creator, image_folder): self._wheel = wheel self._creator = creator self._image_dir = image_folder self._extracted = False self.__dist_info = None self._console_entry_points = None @abstractmethod def _sync(self, src, dst): raise NotImplementedError def install(self, version_info): self._extracted = True self._uninstall_previous_version() # sync image for filename in self._image_dir.iterdir(): into = self._creator.purelib / filename.name self._sync(filename, into) # generate console executables consoles = set() script_dir = self._creator.script_dir for name, module in self._console_scripts.items(): consoles.update(self._create_console_entry_point(name, module, script_dir, version_info)) logging.debug("generated console scripts %s", " ".join(i.name for i in consoles)) def build_image(self): # 1. first extract the wheel logging.debug("build install image for %s to %s", self._wheel.name, self._image_dir) with zipfile.ZipFile(str(self._wheel)) as zip_ref: self._shorten_path_if_needed(zip_ref) zip_ref.extractall(str(self._image_dir)) self._extracted = True # 2. now add additional files not present in the distribution new_files = self._generate_new_files() # 3. finally fix the records file self._fix_records(new_files) def _shorten_path_if_needed(self, zip_ref): if os.name == "nt": to_folder = str(self._image_dir) # https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation zip_max_len = max(len(i) for i in zip_ref.namelist()) path_len = zip_max_len + len(to_folder) if path_len > 260: self._image_dir.mkdir(exist_ok=True) # to get a short path must exist from virtualenv.util.path import get_short_path_name to_folder = get_short_path_name(to_folder) self._image_dir = Path(to_folder) def _records_text(self, files): return "\n".join(f"{os.path.relpath(str(rec), str(self._image_dir))},," for rec in files) def _generate_new_files(self): new_files = set() installer = self._dist_info / "INSTALLER" installer.write_text("pip\n", encoding="utf-8") new_files.add(installer) # inject a no-op root element, as workaround for bug in https://github.com/pypa/pip/issues/7226 marker = self._image_dir / f"{self._dist_info.stem}.virtualenv" marker.write_text("", encoding="utf-8") new_files.add(marker) folder = mkdtemp() try: to_folder = Path(folder) rel = os.path.relpath(str(self._creator.script_dir), str(self._creator.purelib)) version_info = self._creator.interpreter.version_info for name, module in self._console_scripts.items(): new_files.update( Path(os.path.normpath(str(self._image_dir / rel / i.name))) for i in self._create_console_entry_point(name, module, to_folder, version_info) ) finally: safe_delete(folder) return new_files @property def _dist_info(self): if self._extracted is False: return None # pragma: no cover if self.__dist_info is None: files = [] for filename in self._image_dir.iterdir(): files.append(filename.name) if filename.suffix == ".dist-info": self.__dist_info = filename break else: raise RuntimeError(f"no .dist-info at {self._image_dir}, has {', '.join(files)}") # pragma: no cover return self.__dist_info @abstractmethod def _fix_records(self, extra_record_data): raise NotImplementedError @property def _console_scripts(self): if self._extracted is False: return None # pragma: no cover if self._console_entry_points is None: self._console_entry_points = {} entry_points = self._dist_info / "entry_points.txt" if entry_points.exists(): parser = ConfigParser() with entry_points.open(encoding="utf-8") as file_handler: parser.read_file(file_handler) if "console_scripts" in parser.sections(): for name, value in parser.items("console_scripts"): match = re.match(r"(.*?)-?\d\.?\d*", name) if match: name = match.groups(1)[0] self._console_entry_points[name] = value return self._console_entry_points def _create_console_entry_point(self, name, value, to_folder, version_info): result = [] maker = ScriptMakerCustom(to_folder, version_info, self._creator.exe, name) specification = f"{name} = {value}" new_files = maker.make(specification) result.extend(Path(i) for i in new_files) return result def _uninstall_previous_version(self): dist_name = self._dist_info.stem.split("-")[0] in_folders = chain.from_iterable([i.iterdir() for i in {self._creator.purelib, self._creator.platlib}]) paths = (p for p in in_folders if p.stem.split("-")[0] == dist_name and p.suffix == ".dist-info" and p.is_dir()) existing_dist = next(paths, None) if existing_dist is not None: self._uninstall_dist(existing_dist) @staticmethod def _uninstall_dist(dist): dist_base = dist.parent logging.debug("uninstall existing distribution %s from %s", dist.stem, dist_base) top_txt = dist / "top_level.txt" # add top level packages at folder level paths = ( {dist.parent / i.strip() for i in top_txt.read_text(encoding="utf-8").splitlines()} if top_txt.exists() else set() ) paths.add(dist) # add the dist-info folder itself base_dirs, record = paths.copy(), dist / "RECORD" # collect entries in record that we did not register yet for name in ( (i.split(",")[0] for i in record.read_text(encoding="utf-8").splitlines()) if record.exists() else () ): path = dist_base / name if not any(p in base_dirs for p in path.parents): # only add if not already added as a base dir paths.add(path) for path in sorted(paths): # actually remove stuff in a stable order if path.exists(): if path.is_dir() and not path.is_symlink(): safe_delete(path) else: path.unlink() def clear(self): if self._image_dir.exists(): safe_delete(self._image_dir) def has_image(self): return self._image_dir.exists() and next(self._image_dir.iterdir()) is not None class ScriptMakerCustom(ScriptMaker): def __init__(self, target_dir, version_info, executable, name): super().__init__(None, str(target_dir)) self.clobber = True # overwrite self.set_mode = True # ensure they are executable self.executable = enquote_executable(str(executable)) self.version_info = version_info.major, version_info.minor self.variants = {"", "X", "X.Y"} self._name = name def _write_script(self, names, shebang, script_bytes, filenames, ext): names.add(f"{self._name}{self.version_info[0]}.{self.version_info[1]}") super()._write_script(names, shebang, script_bytes, filenames, ext) __all__ = [ "PipInstall", ] PK!$via_app_data/pip_install/__init__.pynu[PK!FNئvia_app_data/via_app_data.pynu["""Bootstrap""" import logging import sys import traceback from contextlib import contextmanager from pathlib import Path from subprocess import CalledProcessError from threading import Lock, Thread from virtualenv.info import fs_supports_symlink from virtualenv.seed.embed.base_embed import BaseEmbed from virtualenv.seed.wheels import get_wheel from .pip_install.copy import CopyPipInstall from .pip_install.symlink import SymlinkPipInstall class FromAppData(BaseEmbed): def __init__(self, options): super().__init__(options) self.symlinks = options.symlink_app_data @classmethod def add_parser_arguments(cls, parser, interpreter, app_data): super().add_parser_arguments(parser, interpreter, app_data) can_symlink = app_data.transient is False and fs_supports_symlink() sym = "" if can_symlink else "not supported - " parser.add_argument( "--symlink-app-data", dest="symlink_app_data", action="store_true" if can_symlink else "store_false", help=f"{sym} symlink the python packages from the app-data folder (requires seed pip>=19.3)", default=False, ) def run(self, creator): if not self.enabled: return with self._get_seed_wheels(creator) as name_to_whl: pip_version = name_to_whl["pip"].version_tuple if "pip" in name_to_whl else None installer_class = self.installer_class(pip_version) exceptions = {} def _install(name, wheel): try: logging.debug("install %s from wheel %s via %s", name, wheel, installer_class.__name__) key = Path(installer_class.__name__) / wheel.path.stem wheel_img = self.app_data.wheel_image(creator.interpreter.version_release_str, key) installer = installer_class(wheel.path, creator, wheel_img) parent = self.app_data.lock / wheel_img.parent with parent.non_reentrant_lock_for_key(wheel_img.name): if not installer.has_image(): installer.build_image() installer.install(creator.interpreter.version_info) except Exception: exceptions[name] = sys.exc_info() threads = [Thread(target=_install, args=(n, w)) for n, w in name_to_whl.items()] for thread in threads: thread.start() for thread in threads: thread.join() if exceptions: messages = [f"failed to build image {', '.join(exceptions.keys())} because:"] for value in exceptions.values(): exc_type, exc_value, exc_traceback = value messages.append("".join(traceback.format_exception(exc_type, exc_value, exc_traceback))) raise RuntimeError("\n".join(messages)) @contextmanager def _get_seed_wheels(self, creator): name_to_whl, lock, fail = {}, Lock(), {} def _get(distribution, version): for_py_version = creator.interpreter.version_release_str failure, result = None, None # fallback to download in case the exact version is not available for download in [True] if self.download else [False, True]: failure = None try: result = get_wheel( distribution=distribution, version=version, for_py_version=for_py_version, search_dirs=self.extra_search_dir, download=download, app_data=self.app_data, do_periodic_update=self.periodic_update, env=self.env, ) if result is not None: break except Exception as exception: logging.exception("fail") failure = exception if failure: if isinstance(failure, CalledProcessError): msg = f"failed to download {distribution}" if version is not None: msg += f" version {version}" msg += f", pip download exit code {failure.returncode}" output = failure.output + failure.stderr if output: msg += "\n" msg += output else: msg = repr(failure) logging.error(msg) with lock: fail[distribution] = version else: with lock: name_to_whl[distribution] = result threads = [ Thread(target=_get, args=(distribution, version)) for distribution, version in self.distribution_to_versions().items() ] for thread in threads: thread.start() for thread in threads: thread.join() if fail: raise RuntimeError(f"seed failed due to failing to download wheels {', '.join(fail.keys())}") yield name_to_whl def installer_class(self, pip_version_tuple): if self.symlinks and pip_version_tuple: # symlink support requires pip 19.3+ if pip_version_tuple >= (19, 3): return SymlinkPipInstall return CopyPipInstall def __repr__(self): msg = f", via={'symlink' if self.symlinks else 'copy'}, app_data_dir={self.app_data}" base = super().__repr__() return f"{base[:-1]}{msg}{base[-1]}" __all__ = [ "FromAppData", ] PK!via_app_data/__init__.pynu[PK!F base_embed.pynu[from abc import ABCMeta from pathlib import Path from ..seeder import Seeder from ..wheels import Version PERIODIC_UPDATE_ON_BY_DEFAULT = True class BaseEmbed(Seeder, metaclass=ABCMeta): def __init__(self, options): super().__init__(options, enabled=options.no_seed is False) self.download = options.download self.extra_search_dir = [i.resolve() for i in options.extra_search_dir if i.exists()] self.pip_version = options.pip self.setuptools_version = options.setuptools self.wheel_version = options.wheel self.no_pip = options.no_pip self.no_setuptools = options.no_setuptools self.no_wheel = options.no_wheel self.app_data = options.app_data self.periodic_update = not options.no_periodic_update if not self.distribution_to_versions(): self.enabled = False @classmethod def distributions(cls): return { "pip": Version.bundle, "setuptools": Version.bundle, "wheel": Version.bundle, } def distribution_to_versions(self): return { distribution: getattr(self, f"{distribution}_version") for distribution in self.distributions() if getattr(self, f"no_{distribution}") is False } @classmethod def add_parser_arguments(cls, parser, interpreter, app_data): # noqa: U100 group = parser.add_mutually_exclusive_group() group.add_argument( "--no-download", "--never-download", dest="download", action="store_false", help=f"pass to disable download of the latest {'/'.join(cls.distributions())} from PyPI", default=True, ) group.add_argument( "--download", dest="download", action="store_true", help=f"pass to enable download of the latest {'/'.join(cls.distributions())} from PyPI", default=False, ) parser.add_argument( "--extra-search-dir", metavar="d", type=Path, nargs="+", help="a path containing wheels to extend the internal wheel list (can be set 1+ times)", default=[], ) for distribution, default in cls.distributions().items(): parser.add_argument( f"--{distribution}", dest=distribution, metavar="version", help=f"version of {distribution} to install as seed: embed, bundle or exact version", default=default, ) for distribution in cls.distributions(): parser.add_argument( f"--no-{distribution}", dest=f"no_{distribution}", action="store_true", help=f"do not install {distribution}", default=False, ) parser.add_argument( "--no-periodic-update", dest="no_periodic_update", action="store_true", help="disable the periodic (once every 14 days) update of the embedded wheels", default=not PERIODIC_UPDATE_ON_BY_DEFAULT, ) def __repr__(self): result = self.__class__.__name__ result += "(" if self.extra_search_dir: result += f"extra_search_dir={', '.join(str(i) for i in self.extra_search_dir)}," result += f"download={self.download}," for distribution in self.distributions(): if getattr(self, f"no_{distribution}"): continue ver = f"={getattr(self, f'{distribution}_version', None) or 'latest'}" result += f" {distribution}{ver}," return result[:-1] + ")" __all__ = [ "BaseEmbed", ] PK!d// pip_invoke.pynu[import logging from contextlib import contextmanager from subprocess import Popen from virtualenv.discovery.cached_py_info import LogCmd from virtualenv.seed.embed.base_embed import BaseEmbed from ..wheels import Version, get_wheel, pip_wheel_env_run class PipInvoke(BaseEmbed): def __init__(self, options): super().__init__(options) def run(self, creator): if not self.enabled: return for_py_version = creator.interpreter.version_release_str with self.get_pip_install_cmd(creator.exe, for_py_version) as cmd: env = pip_wheel_env_run(self.extra_search_dir, self.app_data, self.env) self._execute(cmd, env) @staticmethod def _execute(cmd, env): logging.debug("pip seed by running: %s", LogCmd(cmd, env)) process = Popen(cmd, env=env) process.communicate() if process.returncode != 0: raise RuntimeError(f"failed seed with code {process.returncode}") return process @contextmanager def get_pip_install_cmd(self, exe, for_py_version): cmd = [str(exe), "-m", "pip", "-q", "install", "--only-binary", ":all:", "--disable-pip-version-check"] if not self.download: cmd.append("--no-index") folders = set() for dist, version in self.distribution_to_versions().items(): wheel = get_wheel( distribution=dist, version=version, for_py_version=for_py_version, search_dirs=self.extra_search_dir, download=False, app_data=self.app_data, do_periodic_update=self.periodic_update, env=self.env, ) if wheel is None: raise RuntimeError(f"could not get wheel for distribution {dist}") folders.add(str(wheel.path.parent)) cmd.append(Version.as_pip_req(dist, wheel.version)) for folder in sorted(folders): cmd.extend(["--find-links", str(folder)]) yield cmd __all__ = [ "PipInvoke", ] PK! __init__.pynu[PK! $__pycache__/__init__.cpython-311.pycnu[PK!>&1__pycache__/base_embed.cpython-311.pycnu[PK!ן99&__pycache__/pip_invoke.cpython-311.pycnu[PK!E10*via_app_data/__pycache__/__init__.cpython-311.pycnu[PK!jˆ%%5{+via_app_data/__pycache__/via_app_data.cpython-311.pycnu[PK! H fQvia_app_data/pip_install/copy.pynu[PK!Σ#\Vvia_app_data/pip_install/symlink.pynu[PK!,<^via_app_data/pip_install/__pycache__/symlink.cpython-311.pycnu[PK!`Ȃ@@9qvia_app_data/pip_install/__pycache__/base.cpython-311.pycnu[PK! =via_app_data/pip_install/__pycache__/__init__.cpython-311.pycnu[PK!KM 9kvia_app_data/pip_install/__pycache__/copy.cpython-311.pycnu[PK!T  Կvia_app_data/pip_install/base.pynu[PK!$>via_app_data/pip_install/__init__.pynu[PK!FNئvia_app_data/via_app_data.pynu[PK!via_app_data/__init__.pynu[PK!F base_embed.pynu[PK!d// pip_invoke.pynu[PK! ]__init__.pynu[PK!