← retour aux snippets

warnings: émettre et filtrer des avertissements

Produire un warning et le filtrer selon la catégorie et le module.

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.