Commit 370839b4 authored by Paul Ganssle's avatar Paul Ganssle

Use import hook instead of sys.path manipulation

parent 642604f8
import sys
_HERE = os.path.dirname(__file__)
NEW_DISTUTILS_LOCATION = os.path.join(_HERE, 'distutils-shim-package')
class DistutilsMetaFinder:
def find_spec(self, fullname, path, target=None):
if path is not None or fullname != "distutils":
return None
return self.get_distutils_spec()
def get_distutils_spec(self):
import importlib
class DistutilsLoader(importlib.util.abc.Loader):
def create_module(self, spec):
return importlib.import_module('._distutils', 'setuptools')
def exec_module(self, module):
pass
return importlib.util.spec_from_loader('distutils', DistutilsLoader())
DISTUTILS_FINDER = DistutilsMetaFinder()
def add_shim():
if NEW_DISTUTILS_LOCATION not in sys.path:
sys.path.insert(0, NEW_DISTUTILS_LOCATION)
sys.meta_path.insert(0, DISTUTILS_FINDER)
def remove_shim():
try:
sys.path.remove(NEW_DISTUTILS_LOCATION)
sys.path.remove(DISTUTILS_FINDER)
except ValueError:
pass
......
import setuptools.distutils_patch
from distutils import *
......@@ -50,7 +50,6 @@ def _gen_console_scripts():
package_data = dict(
setuptools=['script (dev).tmpl', 'script.tmpl', 'site-patch.py'],
_distutils_importer=['distutils-shim-package/distutils/__init__.py'],
)
force_windows_specific_files = (
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment