From a4bf4d05230474ad14243d67ac7f8c938f670e58 Mon Sep 17 00:00:00 2001 From: Scott Date: Wed, 2 Feb 2022 09:14:12 -0800 Subject: More type annotations. --- bootstrap.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'bootstrap.py') 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: -- cgit v1.3