aboutsummaryrefslogtreecommitdiffstats
path: root/env/lib/python3.10/site-packages/pip/__pip-runner__.py
diff options
context:
space:
mode:
Diffstat (limited to 'env/lib/python3.10/site-packages/pip/__pip-runner__.py')
-rw-r--r--env/lib/python3.10/site-packages/pip/__pip-runner__.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/env/lib/python3.10/site-packages/pip/__pip-runner__.py b/env/lib/python3.10/site-packages/pip/__pip-runner__.py
new file mode 100644
index 0000000..14026c0
--- /dev/null
+++ b/env/lib/python3.10/site-packages/pip/__pip-runner__.py
@@ -0,0 +1,36 @@
+"""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.
+"""
+
+import runpy
+import sys
+import types
+from importlib.machinery import ModuleSpec, PathFinder
+from os.path import dirname
+from typing import Optional, Sequence, Union
+
+PIP_SOURCES_ROOT = dirname(dirname(__file__))
+
+
+class PipImportRedirectingFinder:
+ @classmethod
+ def find_spec(
+ self,
+ fullname: str,
+ path: Optional[Sequence[Union[bytes, str]]] = None,
+ target: Optional[types.ModuleType] = None,
+ ) -> Optional[ModuleSpec]:
+ 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)