# Bug report ### Bug description: Setting [Warning](https://docs.python.org/3/library/exceptions.html#Warning) to `category` argument of [warnings.filterwarnings()](https://docs.python.org/3/library/warnings.html#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: ```python 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()](https://docs.python.org/3/library/warnings.html#warnings.simplefilter) doesn't get any error as shown below. *This isn't an understandable behavior: ```python 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 <!-- gh-linked-prs --> ### Linked PRs * gh-136303 * gh-136305 <!-- /gh-linked-prs -->