API: Decorators: LogWrap class and logwrap function.

class logwrap.LogWrap[source]

Log function calls and return values.

New in version 2.2.0.

__init__(*, log=None, log_level=logging.DEBUG, exc_level=logging.ERROR, max_indent=20, blacklisted_names=None, blacklisted_exceptions=None, log_call_args=True, log_call_args_on_exc=True, log_traceback=True, log_result_obj=True)[source]
Parameters:
  • log (logging.Logger | None) – logger object for decorator, by default trying to use logger from target module. Fallback: ‘logwrap’
  • log_level (int) – log level for successful calls
  • exc_level (int) – log level for exception cases
  • max_indent (int) – maximum indent before classic repr() call.
  • blacklisted_names (Iterable[str] | None) – Blacklisted argument names. Arguments with this names will be skipped in log.
  • blacklisted_exceptions (Iterable[type[Exception]] | None) – list of exception, which should be re-raised without producing traceback and text log record.
  • log_call_args (bool) – log call arguments before executing wrapped function.
  • log_call_args_on_exc (bool) – log call arguments if exception raised.
  • log_traceback (bool) – log traceback on exception in addition to failure info
  • log_result_obj (bool) – log result of function call.

Changed in version 3.3.0: Extract func from log and do not use Union.

Changed in version 3.3.0: Deprecation of *args

Changed in version 4.0.0: Drop of *args

Changed in version 5.1.0: log_traceback parameter

Changed in version 8.0.0: pick up logger from target module if possible

Changed in version 9.0.0: Only LogWrap instance act as decorator

pre_process_param(self, arg)[source]

Process parameter for the future logging.

Parameters:arg (BoundParameter) – bound parameter
Returns:value, value override for logging or None if argument should not be logged.
Return type:BoundParameter | tuple[BoundParameter, typing.Any] | None

Override this method if some modifications required for parameter value before logging

New in version 3.3.0.

post_process_param(self, arg, arg_repr)[source]

Process parameter for the future logging.

Parameters:
  • arg (BoundParameter) – bound parameter
  • arg_repr (str) – repr for value
Returns:

processed repr for value

Return type:

str

Override this method if some modifications required for result of repr() over parameter

New in version 3.3.0.

Note

Attributes/properties names the same as argument names and changes the same fields.

log_level
exc_level
max_indent
blacklisted_names

list[str], modified via mutability

blacklisted_exceptions

list[type[Exception]], modified via mutability

log_call_args
log_call_args_on_exc
log_traceback
log_result_obj
__call__(func)[source]

Decorator entry-point. Logic is stored separately and load depends on python version.

Returns:Decorated function. On python 3.3+ awaitable is supported.
Return type:Callable | Awaitable
logwrap.logwrap(func=None, *, log=None, log_level=logging.DEBUG, exc_level=logging.ERROR, max_indent=20, blacklisted_names=None, blacklisted_exceptions=None, log_call_args=True, log_call_args_on_exc=True, log_traceback=True, log_result_obj=True)[source]

Log function calls and return values.

Parameters:
  • func (None | Callable) – function to wrap
  • log (logging.Logger | None) – logger object for decorator, by default trying to use logger from target module. Fallback: ‘logwrap’
  • log_level (int) – log level for successful calls
  • exc_level (int) – log level for exception cases
  • max_indent (int) – maximum indent before classic repr() call.
  • blacklisted_names (Iterable[str] | None) – Blacklisted argument names. Arguments with this names will be skipped in log.
  • blacklisted_exceptions (Iterable[type[Exception]] | None) – list of exceptions, which should be re-raised without producing traceback and text log record.
  • log_call_args (bool) – log call arguments before executing wrapped function.
  • log_call_args_on_exc (bool) – log call arguments if exception raised.
  • log_traceback (bool) – log traceback on exception in addition to failure info
  • log_result_obj (bool) – log result of function call.
Returns:

built real decorator.

Return type:

LogWrap | Callable[.., Awaitable[typing.Any] | typing.Any]

Changed in version 3.3.0: Extract func from log and do not use Union.

Changed in version 3.3.0: Deprecation of *args

Changed in version 4.0.0: Drop of *args

Changed in version 5.1.0: log_traceback parameter

Changed in version 8.0.0: pick up logger from target module if possible

Changed in version 9.0.0: Only LogWrap instance act as decorator

class logwrap.BoundParameter(inspect.Parameter)[source]

Parameter-like object store BOUND with value parameter. .. versionchanged:: 5.3.1 subclass inspect.Parameter

New in version 3.3.0.

__init__(self, parameter, value=Parameter.empty)[source]

Parameter-like object store BOUND with value parameter.

Parameters:
  • parameter (inspect.Parameter) – parameter from signature
  • value (typing.Any) – parameter real value
Raises:

ValueError – No default value and no value

parameter

Parameter object.

Return type:BoundParameter
value

Parameter value.

Return type:typing.Any
__str__(self)[source]

String representation.

Return type:str
logwrap.bind_args_kwargs(sig, *args, **kwargs)[source]

Bind *args and **kwargs to signature and get Bound Parameters.

Parameters:sig (inspect.Signature) – source signature
Returns:Iterator for bound parameters with all information about it
Return type:list[BoundParameter]

New in version 3.3.0.

Changed in version 5.3.1: return list