Open
Description
Bug report
Bug description:
Setting Warning to category
argument of warnings.filterwarnings() works, then setting the str
type value "Hello World"
to category
argument of warnings.filterwarnings()
gets the error message as shown below. *This is an understandable behavior:
import warnings warnings.resetwarnings() warnings.filterwarnings(action="ignore", category=Warning) print(warnings.filters) # [('ignore', None, <class 'Warning'>, None, 0)] warnings.filterwarnings(action="ignore", category="Hello World") # Error print(warnings.filters)
AssertionError: category must be a class
But, setting many types of values to category
argument of warnings.simplefilter() doesn't get any error as shown below. *This isn't an understandable behavior:
import warnings warnings.simplefilter(action="default", category=Warning) # Understandable warnings.simplefilter(action="default", category="Hello World") # Not understandable warnings.simplefilter(action="default", category=100) # Not understandable warnings.simplefilter(action="default", category=3.14) # Not understandable warnings.simplefilter(action="default", category=3.14+0.j) # Not understandable warnings.simplefilter(action="default", category=True) # Not understandable print(warnings.filters) # [('default', None, True, None, 0), # ('default', None, (3.14+0j), None, 0), # ('default', None, 100, None, 0), # ('default', None, 'Hello World', None, 0), # ('default', None, <class 'Warning'>, None, 0)]
So, category
argument of warnings.simplefilter()
should also return the error message as shown below:
AssertionError: category must be a class
CPython versions tested on:
3.12
Operating systems tested on:
Windows