Warning control. Python’s warning machinery by default prints warning
messages to sys.stderr. A typical warning message has the following
form:
file:line: category: message
By default, each warning is printed once for each source line where it
occurs. This option controls how often warnings are printed.
Multiple -W options may be given; when a warning matches more than
one option, the action for the last matching option is performed. Invalid
-W options are ignored (though, a warning message is printed about
invalid options when the first warning is issued).
Starting from Python 2.7, DeprecationWarning and its descendants
are ignored by default. The -Wd option can be used to re-enable
them.
Warnings can also be controlled from within a Python program using the
warnings module.
The simplest form of argument is one of the following action strings (or a
unique abbreviation) by themselves:
ignore
- Ignore all warnings.
default
- Explicitly request the default behavior (printing each warning once per
source line).
all
- Print a warning each time it occurs (this may generate many messages if a
warning is triggered repeatedly for the same source line, such as inside a
loop).
module
- Print each warning only the first time it occurs in each module.
once
- Print each warning only the first time it occurs in the program.
error
- Raise an exception instead of printing a warning message.
The full form of argument is:
action:message:category:module:line
Here, action is as explained above but only applies to messages that match
the remaining fields. Empty fields match all values; trailing empty fields
may be omitted. The message field matches the start of the warning message
printed; this match is case-insensitive. The category field matches the
warning category. This must be a class name; the match tests whether the
actual warning category of the message is a subclass of the specified warning
category. The full class name must be given. The module field matches the
(fully-qualified) module name; this match is case-sensitive. The line
field matches the line number, where zero matches all line numbers and is
thus equivalent to an omitted line number.