The warnings filter controls whether warnings are ignored, displayed, or turned into errors (raising an exception).
Conceptually, the warnings filter maintains an ordered list of filter specifications; any specific warning is matched against each filter specification in the list in turn until a match is found; the match determines the disposition of the match. Each entry is a tuple of the form (action, message, category, module, lineno), where:
| Value | Disposition | 
|---|---|
| "error" | turn matching warnings into exceptions | 
| "ignore" | never print matching warnings | 
| "always" | always print matching warnings | 
| "default" | print the first occurrence of matching warnings for each location where the warning is issued | 
| "module" | print the first occurrence of matching warnings for each module where the warning is issued | 
| "once" | print only the first occurrence of matching warnings, regardless of location | 
0 to match all line
      numbers
Since the Warning class is derived from the built-in
Exception class, to turn a warning into an error we simply
raise category(message).
The warnings filter is initialized by -W options passed
to the Python interpreter command line.  The interpreter saves the
arguments for all -W options without interpretation in
sys.warnoptions; the warnings module parses these when
it is first imported (invalid options are ignored, after printing a
message to sys.stderr).
See About this document... for information on suggesting changes.