Clarify instructions for repopulation.
[python_utils.git] / bootstrap.py
index 045411ae257116db18b2bb56b61cfe95cd14f762..738fceaf39003141f08f9e39a7843c09f1239b43 100644 (file)
@@ -1,7 +1,6 @@
 #!/usr/bin/env python3
 
 import functools
-import importlib
 import logging
 import os
 from inspect import stack
@@ -55,11 +54,13 @@ args.add_argument(
 
 original_hook = sys.excepthook
 
+
 def handle_uncaught_exception(exc_type, exc_value, exc_tb):
     """
     Top-level exception handler for exceptions that make it past any exception
     handlers in the python code being run.  Logs the error and stacktrace then
     maybe attaches a debugger.
+
     """
     global original_hook
     msg = f'Unhandled top level exception {exc_type}'
@@ -87,7 +88,7 @@ def handle_uncaught_exception(exc_type, exc_value, exc_tb):
                 original_hook(exc_type, exc_value, exc_tb)
 
 
-class ImportInterceptor(importlib.abc.MetaPathFinder):
+class ImportInterceptor(object):
     def __init__(self):
         import collect.trie
         self.module_by_filename_cache = {}
@@ -141,10 +142,16 @@ class ImportInterceptor(importlib.abc.MetaPathFinder):
         return []
 
 
-# TODO: test this with python 3.8+
-def audit_import_events(event, args):
-    print(event)
-    print(args)
+# # TODO: test this with python 3.8+
+# def audit_import_events(event, args):
+#     if event == 'import':
+#         module = args[0]
+#         filename = args[1]
+#         sys_path = args[2]
+#         sys_meta_path = args[3]
+#         sys_path_hooks = args[4]
+#         logger.debug(msg)
+#         print(msg)
 
 
 # Audit import events?  Note: this runs early in the lifetime of the
@@ -158,15 +165,14 @@ def audit_import_events(event, args):
 import_interceptor = None
 for arg in sys.argv:
     if arg == '--audit_import_events':
-        if not hasattr(sys, 'frozen'):
-            if (
-                    sys.version_info[0] == 3
-                    and sys.version_info[1] < 8
-            ):
-                import_interceptor = ImportInterceptor()
-                sys.meta_path = [import_interceptor] + sys.meta_path
-            else:
-                sys.addaudithook(audit_import_events)
+        import_interceptor = ImportInterceptor()
+        sys.meta_path = [import_interceptor] + sys.meta_path
+        # if not hasattr(sys, 'frozen'):
+        #     if (
+        #             sys.version_info[0] == 3
+        #             and sys.version_info[1] >= 8
+        #     ):
+        #         sys.addaudithook(audit_import_events)
 
 
 def dump_all_objects() -> None: