objectif
Produire un warning et le filtrer selon la catégorie et le module.
code minimal
import warnings
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")
warnings.warn("soon deprecated", DeprecationWarning)
print(len(w) == 1 and issubclass(w[0].category, DeprecationWarning)) # attendu: True
utilisation
import warnings
warnings.filterwarnings("ignore", category=UserWarning)
warnings.warn("hidden", UserWarning)
print(True)
variante(s) utile(s)
import warnings
warnings.filterwarnings("error", category=RuntimeWarning)
try:
warnings.warn("boom", RuntimeWarning)
except RuntimeWarning:
print(True)
notes
- catch_warnings isole les règles au sein d’un bloc.
- Utilisez DeprecationWarning pour signaler une API en fin de vie.