Server IP : 192.64.118.117 / Your IP : 18.117.10.159 Web Server : LiteSpeed System : Linux premium56.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64 User : thecgapy ( 1160) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/hc_python/lib64/python3.12/site-packages/virtualenv/run/ |
Upload File : |
from __future__ import annotations import json import logging LOGGER = logging.getLogger(__name__) class Session: """Represents a virtual environment creation session.""" def __init__(self, verbosity, app_data, interpreter, creator, seeder, activators) -> None: # noqa: PLR0913 self._verbosity = verbosity self._app_data = app_data self._interpreter = interpreter self._creator = creator self._seeder = seeder self._activators = activators @property def verbosity(self): """The verbosity of the run.""" return self._verbosity @property def interpreter(self): """Create a virtual environment based on this reference interpreter.""" return self._interpreter @property def creator(self): """The creator used to build the virtual environment (must be compatible with the interpreter).""" return self._creator @property def seeder(self): """The mechanism used to provide the seed packages (pip, setuptools, wheel).""" return self._seeder @property def activators(self): """Activators used to generate activations scripts.""" return self._activators def run(self): self._create() self._seed() self._activate() self.creator.pyenv_cfg.write() def _create(self): LOGGER.info("create virtual environment via %s", self.creator) self.creator.run() LOGGER.debug(_DEBUG_MARKER) LOGGER.debug("%s", _Debug(self.creator)) def _seed(self): if self.seeder is not None and self.seeder.enabled: LOGGER.info("add seed packages via %s", self.seeder) self.seeder.run(self.creator) def _activate(self): if self.activators: active = ", ".join(type(i).__name__.replace("Activator", "") for i in self.activators) LOGGER.info("add activators for %s", active) for activator in self.activators: activator.generate(self.creator) def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): self._app_data.close() _DEBUG_MARKER = "=" * 30 + " target debug " + "=" * 30 class _Debug: """lazily populate debug.""" def __init__(self, creator) -> None: self.creator = creator def __repr__(self) -> str: return json.dumps(self.creator.debug, indent=2) __all__ = [ "Session", ]