Python 3.15 で削除予定

  • インポートシステム:

    • モジュールの __spec__.cached を設定せずに __cached__ を設定することは非推奨です。 Python 3.15 では、インポートシステムや標準ライブラリは __cached__ を設定しなくなり、その値も参照しなくなります。 (gh-97879)

    • モジュールの __spec__.parent を設定せずに __package__ を設定することは非推奨です。 Python 3.15 では、インポートシステムや標準ライブラリは __package__ を設定しなくなり、その値も参照しなくなります。 (gh-97879)

  • ctypes:

    • ドキュメント化されていない ctypes.SetPointerType() 関数は Python 3.13 から非推奨です。

  • http.server:

    • 古く、ほとんど使われていない CGIHTTPRequestHandler は Python 3.13 から非推奨です。 直接の代替はありません。 Web サーバーとリクエストハンドラーを接続するには、CGI 以外なら どの方法でも よりよい選択です。

    • python -m http.server のコマンドラインインターフェースの --cgi フラグは Python 3.13 から非推奨です。

  • importlib:

    • load_module() メソッド:代わりに exec_module() を使ってください。

  • pathlib:

    • .PurePath.is_reserved() は Python 3.13 から非推奨です。 Windows で予約済みのパスを検出するには os.path.isreserved() を使ってください。

  • platform:

    • platform.java_ver() は Python 3.13 から非推奨です。 この関数が役立つのは Jython への対応だけで、API は分かりにくく、ほとんどテストされていません。

  • sysconfig:

  • threading:

    • RLock() は Python 3.15 から引数を受け取らなくなります。 Python 実装は引数を一切受け付けない一方、C 実装は任意の個数の位置引数やキーワード引数を受け付けてすべて無視するため、Python 3.14 から引数を渡すことは非推奨です。

  • types:

    • types.CodeType:codeobject.co_lnotab へのアクセスは、PEP 626 で 3.10 から非推奨となり、3.12 で削除予定でした。 しかし、実際に DeprecationWarning が出るようになったのは 3.12 です。 3.15 で削除される可能性があります。 (Nikita Sobolev が gh-101866 で貢献しました。)

  • typing:

    • NamedTuple クラスを作成する、ドキュメント化されていないキーワード引数による構文 (例えば Point = NamedTuple("Point", x=int, y=int)) は Python 3.13 から非推奨です。 代わりにクラスベースの構文か関数形式の構文を使ってください。

    • TypedDict の関数形式の構文で、fields パラメータを省略すること (TD = TypedDict("TD")) や None を渡すこと (TD = TypedDict("TD", None)) は Python 3.13 から非推奨です。 フィールドがない TypedDict を作成するには、class TD(TypedDict): pass または TD = TypedDict("TD", {}) を使ってください。

    • @typing.no_type_check_decorator デコレーター関数は Python 3.13 から非推奨です。 typing モジュールに追加されてから8年が経過しましたが、主要な型チェッカーではまだサポートされていません。

  • sre_compile、sre_constants、sre_parse モジュール。

  • wave:

    • Wave_read クラスと Wave_write クラスの getmark()、setmark()、getmarkers() メソッドは Python 3.13 から非推奨です。

  • zipimport:

    • zipimport.zipimporter.load_module() は Python 3.10 から非推奨です。 代わりに exec_module() を使ってください。 (gh-125746。)