X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=bootstrap.py;h=738fceaf39003141f08f9e39a7843c09f1239b43;hb=444d1e5f3e9a39759079736302e3404018141b02;hp=03bb505c6d3a1aed2a6177aba4fc3565d538fd17;hpb=a5c4feeac240a446a38147130b51ad96a046f6e1;p=python_utils.git diff --git a/bootstrap.py b/bootstrap.py index 03bb505..738fcea 100644 --- a/bootstrap.py +++ b/bootstrap.py @@ -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}' @@ -141,10 +142,16 @@ class ImportInterceptor(object): 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: