Add core Python agent with configuration management, environment setup, and deployment documentation. Includes user/agent profiles, startup scripts, and dependency management for the psagentia system.
51 lines
1.4 KiB
Python
Executable File
51 lines
1.4 KiB
Python
Executable File
"""Execute exactly this copy of pip, within a different environment.
|
|
|
|
This file is named as it is, to ensure that this module can't be imported via
|
|
an import statement.
|
|
"""
|
|
|
|
# /!\ This version compatibility check section must be Python 2 compatible. /!\
|
|
|
|
import sys
|
|
|
|
# Copied from pyproject.toml
|
|
PYTHON_REQUIRES = (3, 10)
|
|
|
|
|
|
def version_str(version): # type: ignore
|
|
return ".".join(str(v) for v in version)
|
|
|
|
|
|
if sys.version_info[:2] < PYTHON_REQUIRES:
|
|
raise SystemExit(
|
|
"This version of pip does not support python {} (requires >={}).".format(
|
|
version_str(sys.version_info[:2]), version_str(PYTHON_REQUIRES)
|
|
)
|
|
)
|
|
|
|
# From here on, we can use Python 3 features, but the syntax must remain
|
|
# Python 2 compatible.
|
|
|
|
import runpy # noqa: E402
|
|
from importlib.machinery import PathFinder # noqa: E402
|
|
from os.path import dirname # noqa: E402
|
|
|
|
PIP_SOURCES_ROOT = dirname(dirname(__file__))
|
|
|
|
|
|
class PipImportRedirectingFinder:
|
|
@classmethod
|
|
def find_spec(self, fullname, path=None, target=None): # type: ignore
|
|
if fullname != "pip":
|
|
return None
|
|
|
|
spec = PathFinder.find_spec(fullname, [PIP_SOURCES_ROOT], target)
|
|
assert spec, (PIP_SOURCES_ROOT, fullname)
|
|
return spec
|
|
|
|
|
|
sys.meta_path.insert(0, PipImportRedirectingFinder())
|
|
|
|
assert __name__ == "__main__", "Cannot run __pip-runner__.py as a non-main module"
|
|
runpy.run_module("pip", run_name="__main__", alter_sys=True)
|