diff options
Diffstat (limited to 'bootstrap.py')
| -rw-r--r-- | bootstrap.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/bootstrap.py b/bootstrap.py index e50cb38..98da78c 100644 --- a/bootstrap.py +++ b/bootstrap.py @@ -3,7 +3,9 @@ import functools import logging import os +import importlib from inspect import stack +from typing import List import sys # This module is commonly used by others in here and should avoid @@ -99,7 +101,7 @@ def handle_uncaught_exception(exc_type, exc_value, exc_tb): original_hook(exc_type, exc_value, exc_tb) -class ImportInterceptor(object): +class ImportInterceptor(importlib.abc.MetaPathFinder): def __init__(self): import collect.trie @@ -120,6 +122,11 @@ class ImportInterceptor(object): def should_ignore_filename(self, filename: str) -> bool: return 'importlib' in filename or 'six.py' in filename + def find_module(self, fullname, path): + raise Exception( + "This method has been deprecated since Python 3.4, please upgrade." + ) + def find_spec(self, loaded_module, path=None, target=None): s = stack() for x in range(3, len(s)): @@ -147,6 +154,9 @@ class ImportInterceptor(object): logger.debug(msg) print(msg) + def invalidate_caches(self): + pass + def find_importer(self, module: str): if module in self.tree_node_by_module: node = self.tree_node_by_module[module] @@ -166,7 +176,7 @@ import_interceptor = None for arg in sys.argv: if arg == '--audit_import_events': import_interceptor = ImportInterceptor() - sys.meta_path = [import_interceptor] + sys.meta_path + sys.meta_path.insert(0, import_interceptor) def dump_all_objects() -> None: |
