Decorators, with the ability to use call arguments
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).