From 5744de4a3be08874accc2bfdf4e06f138e53b346 Mon Sep 17 00:00:00 2001 From: Alexandru Michis Date: Sat, 1 May 2021 14:50:20 +0300 Subject: [PATCH] Backed out changeset cd81489560e4 (bug 1708547) for causing python failures. --- build/mach_bootstrap.py | 55 +---------------------------------------- 1 file changed, 1 insertion(+), 54 deletions(-) diff --git a/build/mach_bootstrap.py b/build/mach_bootstrap.py index 7b9f747e6cc3..4e68b974371e 100644 --- a/build/mach_bootstrap.py +++ b/build/mach_bootstrap.py @@ -13,14 +13,8 @@ import sys if sys.version_info[0] < 3: import __builtin__ as builtins - - class MetaPathFinder(object): - pass - - else: - from importlib.abc import MetaPathFinder - + import builtins from types import ModuleType @@ -514,53 +508,6 @@ class ImportHook(object): return module -# Hook import such that .pyc/.pyo files without a corresponding .py file in -# the source directory are essentially ignored. See further below for details -# and caveats. -# Objdirs outside the source directory are ignored because in most cases, if -# a .pyc/.pyo file exists there, a .py file will be next to it anyways. -class PathFinderHook(MetaPathFinder): - def __init__(self, klass): - # Assume the source directory is the parent directory of the one - # containing this file. - self._source_dir = ( - os.path.normcase( - os.path.abspath(os.path.dirname(os.path.dirname(__file__))) - ) - + os.sep - ) - self._finder_class = klass - - def find_spec(self, full_name, paths=None, target=None): - spec = self._finder_class.find_spec(full_name, paths, target) - - # Some modules don't have an origin. - if spec is None or spec.origin is None: - return spec - - # Normalize the origin path. - path = os.path.normcase(os.path.abspath(spec.origin)) - # Note: we could avoid normcase and abspath above for non pyc/pyo - # files, but those are actually rare, so it doesn't really matter. - if not path.endswith((".pyc", ".pyo")): - return spec - - # Ignore modules outside our source directory - if not path.startswith(self._source_dir): - return spec - - # If there is no .py corresponding to the .pyc/.pyo module we're - # resolving, remove the .pyc/.pyo file, and try again. - if not os.path.exists(spec.origin[:-1]): - if os.path.exists(spec.origin): - os.remove(spec.origin) - spec = self._finder_class.find_spec(full_name, paths, target) - - return spec - - # Install our hook. This can be deleted when the Python 3 migration is complete. if sys.version_info[0] < 3: builtins.__import__ = ImportHook(builtins.__import__) -else: - sys.meta_path = [PathFinderHook(c) for c in sys.meta_path]