Tools for working with container types, command data operations, and concise exception handling
By using the inspectcall library, calldecorators decorators can make use of call arguments to functions at runtime, and preserves function signature metadata (which is clobbered by most decorators) so that this functionality works even when decorators are stacked.
The error_context decorator uses functionality from tdxutil.exceptions.try_with_lazy_context to wrap a function call in an error handler that can prepend contextual information to an error without affecting the stacktrace. This allows errors raised b low-level code, which may not have enough information to construct error messages indicating what was going on, to be made far more informative.
The debug decorator wraps functions in a debugger post-mortem. The debugger it uses is optionally configurable, you can optionally set a delay so that users can bypass via keyboard interrupt, and you can optionally toggle the behavior on and off (for example, using global configuration).