Appendix I: Keyword Parameters Reference¶
The log_calls decorator has several keyword parameters, all with hopefully sensible defaults.
Keyword parameters for “settings”¶
Keyword parameter | Default value | Description
|
---|---|---|
enabled |
1 (True ) |
An
int . If positive (or True ), then log_callswill output (or “log”) messages. If false (“disabled”:
0 , alias False ), log_calls won’t output messagesor record history but will continue to increment the
stats.num_calls_total call counter. If negative(“bypassed”), log_calls won’t do anything.
|
args_sep |
', ' |
str used to separate arguments. The default listsall args on the same line. If
args_sep is (or endsin)
'\n' , then additional spaces are appended tothe separator for a neater display. Other separators
in which
'\n' occurs are left unchanged, and areuntested – experiment/use at your own risk.
|
log_args |
True |
If true, arguments passed to the decorated callable,
and default values used, will be logged.
|
log_retval |
False |
If true, log what the decorated callable returns.
At most 77 chars are printed, with a trailing ellipsis
if the value is truncated.
|
log_exit |
True |
If true, the decorator will log an exiting message
after the decorated callable returns, and before
returning what the callable returned. The message
is of the form
f returning to ==> caller |
log_call_numbers |
False |
If true, display the (1-based) number of the call,
e.g.
f [3] called by <== <module> and
f [3] returning to ==> <module> for the 3rd logged call. These would correspond to
the 3rd record in the callable’s call history,
if
record_history is true. |
log_elapsed |
False |
If true, display how long the callable took to execute,
in seconds — both elapsed time and process time.
|
indent |
False |
When true, each new level of logged messages is
indented by 4 spaces, giving a visualization
of the call hierarchy.
|
prefix |
'' |
A
str with which to prefix the callable’s namein logged messages: on entry, in reporting return
values (if
log_retval is true) and on exit (iflog_exit is true). |
file |
sys.stdout |
If
logger is None , a stream (an instance of typeio.TextIOBase ) to which log_calls will print itsmessages. This value is supplied to the
file keyword parameter of the
print function. |
mute |
0 (False ) |
Three-valued
int that controls amount of output:log_calls.MUTE.NOTHING (0) — mute nothinglog_calls.MUTE.CALLS (1) —mutes log_calls own output, but allows
output of
log_calls.print and .print_exprs log_calls.MUTE.ALL (2) — mute all output |
logger |
None |
If not
None , either a logger (a logging.Logger instance), or the name of a logger (a
str that willbe passed to
logging.getLogger() ); that loggerwill be used to write messages, provided it has
handlers; otherwise,
print is used. |
loglevel |
logging.DEBUG |
Logging level, ignored unless a logger is specified.
This should be one of the logging levels defined by
the
logging module, or a custom level. |
record_history |
False |
If true, a list of records will be kept, one for each
logged call to the decorated callable. Each record
holds: call number (1-based), arguments, defaulted
keyword arguments, return value, time elapsed,
time of call, prefixed name, caller (call chain).
The value of this attribute is a
namedtuple . |
max_history |
0 |
An
int .If value > 0, store at most value-many records,
records, oldest records overwritten;
if value ≤ 0, store unboundedly many records.
Ignored unless
record_history is true.This setting can be changed only by calling
wrapper
.stats.clear_history(max_history=0) (q.v.) on the wrapper of a decorated callable.
|
Of these, only prefix
and max_history
cannot be indirect, and only max_history
is immutable.
Other keyword parameters (non-“settings”)¶
Keyword parameter | Default value | Description |
---|---|---|
settings |
None |
A dict mapping settings keywords and/or
NO_DECO to values — a settings dict — or a string giving
the pathname to a settings file containing settings
and values. If the pathname is a directory and not a file,
log_calls looks for a file
.log_calls in that directory;otherwise, it looks for the named file.
The format of a settings file is: zero or more lines of the
form setting = value; lines whose first non-whitespace
character is
'#' are comments. These settings area baseline; other settings passed to log_calls can
override their values.
|
name |
'' |
Specifies the display name of a decorated callable, if
nonempty, and then, it must be a
str , of the form:* the preferred name of the callable (a string literal), or
* an old-style format string with one occurrence of
%s ,which the
__name__ of the decorated callable replaces. |
omit |
tuple() |
A string or sequence of strings designating callables of
a class. Supplied to a class decorator, ignored in function
decorations. The designated callables will not be decorated.
Each of these “designators” can be a name of a method
or property, a name of a property with an appended
qualifier
.getter , .setter , or .deleter ; it canhave prefixed class names (
Outer.Inner.mymethod ).It can also contain “glob” wildcards
*? , character sets[aqrstUWz_] , character ranges [r-t] , combinationsof these
[a2-9f-hX] , and complements [!acr-t] .Allowed formats:
'f' , 'f g h' , 'f, g, h' , [f, g, h] ,
(f, g, h) |
only |
tuple() |
A string or sequence of strings designating callables of
a class. Supplied to a class decorator, ignored in function
decorations. Only the designated callables will be
decorated, excluding any specified by
omit . These“designators” are as described for
omit . Allowed formatsof sequences of designators are also as described for
omit . |
override |
False |
log_calls respects explicitly given settings of already-
decorated callables and classes. Classes are decorated
from the inside out, so explicitly given settings of any
inner decorators are unchanged by an outer class decorator.
To give the settings of the outer decorator priority,
supply it with
override=True .override can be used with the log_calls.decorate_* classmethods, in order to change existing settings
of decorated callables or classes.
|
NO_DECO |
False |
When true, prevents log_calls from decorating a callable
or class. Intended for use at program startup, it provides
a single “true bypass” switch when placed in a global
settings dict or settings file.
|