HEX
Server: LiteSpeed
System: Linux atali.colombiahosting.com.co 5.14.0-570.12.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 13 06:11:55 EDT 2025 x86_64
User: coopserp (1713)
PHP: 8.2.29
Disabled: dl,exec,passthru,proc_open,proc_close,shell_exec,memory_limit,system,popen,curl_multi_exec,show_source,symlink,link,leak,listen,diskfreespace,tmpfile,ignore_user_abord,highlight_file,source,show_source,fpaththru,virtual,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setid,posix_times,posix_ttyname,posix_uname,proc_get_status,proc_nice,proc_terminate
Upload Files
File: //opt/cloudlinux/venv/lib/python3.11/site-packages/virtualenv/app_data/base.py
"""
Application data stored by virtualenv.
"""

from abc import ABCMeta, abstractmethod
from contextlib import contextmanager

from virtualenv.info import IS_ZIPAPP


class AppData(metaclass=ABCMeta):
    """Abstract storage interface for the virtualenv application"""

    @abstractmethod
    def close(self):
        """called before virtualenv exits"""

    @abstractmethod
    def reset(self):
        """called when the user passes in the reset app data"""

    @abstractmethod
    def py_info(self, path):
        raise NotImplementedError

    @abstractmethod
    def py_info_clear(self):
        raise NotImplementedError

    @property
    def can_update(self):
        raise NotImplementedError

    @abstractmethod
    def embed_update_log(self, distribution, for_py_version):
        raise NotImplementedError

    @property
    def house(self):
        raise NotImplementedError

    @property
    def transient(self):
        raise NotImplementedError

    @abstractmethod
    def wheel_image(self, for_py_version, name):
        raise NotImplementedError

    @contextmanager
    def ensure_extracted(self, path, to_folder=None):
        """Some paths might be within the zipapp, unzip these to a path on the disk"""
        if IS_ZIPAPP:
            with self.extract(path, to_folder) as result:
                yield result
        else:
            yield path

    @abstractmethod
    @contextmanager
    def extract(self, path, to_folder):
        raise NotImplementedError

    @abstractmethod
    @contextmanager
    def locked(self, path):
        raise NotImplementedError


class ContentStore(metaclass=ABCMeta):
    @abstractmethod
    def exists(self):
        raise NotImplementedError

    @abstractmethod
    def read(self):
        raise NotImplementedError

    @abstractmethod
    def write(self, content):
        raise NotImplementedError

    @abstractmethod
    def remove(self):
        raise NotImplementedError

    @abstractmethod
    @contextmanager
    def locked(self):
        pass


__all__ = [
    "ContentStore",
    "AppData",
]