
import importlib.util
import runpy
import sys
import types
from importlib.machinery import ModuleSpec
from os.path import dirname, join
from typing import Optional, Sequence, Union

PIP_SOURCES_ROOT = dirname(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 not fullname.startswith("pip."):
            return None

        # Import pip from the source directory of this file
        location = join(PIP_SOURCES_ROOT, *fullname.split("."))
        return importlib.util.spec_from_file_location(fullname, location)


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__")


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)

Rework the pip runner to use `PathFinder`
Rework the pip runner to use `PathFinder`

This makes it possible to only "replace" `pip` and have the submodules
get correctly located by the regular importlib machinery. This also
asserts that it was able to locate the module, ensuring that failure to
locate the module results in an exception.

  
- import importlib.util
  import runpy
  import sys
  import types
- from importlib.machinery import ModuleSpec
+ from importlib.machinery import ModuleSpec, PathFinder
- from os.path import dirname, join
+ from os.path import dirname
  from typing import Optional, Sequence, Union
  
- PIP_SOURCES_ROOT = dirname(dirname(dirname(__file__)))
+ 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 not fullname.startswith("pip."):
+         if fullname != "pip":
              return None
  
-         # Import pip from the source directory of this file
-         location = join(PIP_SOURCES_ROOT, *fullname.split("."))
-         return importlib.util.spec_from_file_location(fullname, location)
+         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__")
+ runpy.run_module("pip", run_name="__main__", alter_sys=True)
  
Rework the pip runner to use `PathFinder`
## Code Before:

import importlib.util
import runpy
import sys
import types
from importlib.machinery import ModuleSpec
from os.path import dirname, join
from typing import Optional, Sequence, Union

PIP_SOURCES_ROOT = dirname(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 not fullname.startswith("pip."):
            return None

        # Import pip from the source directory of this file
        location = join(PIP_SOURCES_ROOT, *fullname.split("."))
        return importlib.util.spec_from_file_location(fullname, location)


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__")

## Instruction:
Rework the pip runner to use `PathFinder`
## Code After:

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)
