PEP 702: 型システムを利用した非推奨の指定¶
従来のPythonでは、Deprecate(廃止予定)のAPIを警告するために、次のように DeprecationWarning
を使っていました。
import warnings
def func():
warnings.warn("deprecated", DeprecationWarning)
return 0
しかし、この方法では実行するまで警告が表示されないため、警告を見逃されることがありました。
そこで、PEP 702では、@warnings.deprecated デコレータを使って、型ヒントを使って廃止予定のAPIを警告する方法が追加されました。型ヒントによる警告であれば静的な検査で検出できるため、VS Code などのエディタなどでも警告が表示できるようになるでしょう。
from warnings import deprecated
@deprecated("deprecated_func() is deprecated")
def func() -> int:
return 0
func()
を呼び出すと、warnings.warn()
と同じように警告が表示されます。
近い将来には mypy
などの型チェッカーでも警告を検出できるようになる予定ですが、2025年1月現在ではまだリリースされていないようです。