Python 3.17 で削除予定

  • datetime:

    • 年を含まず %e (月内の日) を含む書式文字列で strptime() を呼び出すこと。 これは Python 3.15 から非推奨です。 (Stan Ulbrych が gh-70647 で貢献しました。)

  • collections.abc:

    • collections.abc.ByteString は Python 3.17 で削除予定です。

      実行時に obj が バッファプロトコル を実装しているか調べるには、isinstance(obj, collections.abc.Buffer) を使ってください。 型アノテーションには Buffer を使うか、コードが対応する型を明示したユニオン (例えば bytes | bytearray | memoryview) を使ってください。

      ByteString は当初、bytes と bytearray の両方の上位型となる抽象クラスとして意図されていました。 しかし、この ABC はメソッドを一つも持たないため、あるオブジェクトが ByteString のインスタンスだと分かっても、そのオブジェクトに関する有用な情報は何も得られませんでした。 memoryview など、他の一般的なバッファ型も、実行時にも静的型チェッカーによっても ByteString のサブタイプとして認識されることはありませんでした。

      詳しくは PEP 688 を参照してください。 (Shantanu Jain が gh-91896 で貢献しました。)

  • encodings:

  • profile:

    • profile モジュールは非推奨となり、Python 3.17 で削除されます。 代わりに、互換性のある API を提供する profiling.tracing を使ってください。 詳しくは PEP 799 を参照してください。 (Pablo Galindo と László Kiss Kollár が gh-138122 で貢献しました。)

  • webbrowser:

    • webbrowser.MacOSXOSAScript は非推奨となりました。 代わりに webbrowser.MacOS を使ってください。 (gh-137586)

  • typing:

    • Python 3.14 より前は、従来のユニオンは非公開クラス typing._UnionGenericAlias を使って実装されていました。 このクラスは実装上は不要になりましたが、後方互換性のために残されており、Python 3.17 で削除予定です。 非公開の実装の詳細に依存する代わりに、typing.get_origin() や typing.get_args() など、ドキュメント化されたイントロスペクション用の補助関数を使ってください。

    • Python 3.9 から非推奨となっている typing.ByteString は、Python 3.17 で削除予定です。

      実行時に obj が バッファプロトコル を実装しているか調べるには、isinstance(obj, collections.abc.Buffer) を使ってください。 型アノテーションには Buffer を使うか、コードが対応する型を明示したユニオン (例えば bytes | bytearray | memoryview) を使ってください。

      ByteString は当初、bytes と bytearray の両方の上位型となる抽象クラスとして意図されていました。 しかし、この ABC はメソッドを一つも持たないため、あるオブジェクトが ByteString のインスタンスだと分かっても、そのオブジェクトに関する有用な情報は何も得られませんでした。 memoryview など、他の一般的なバッファ型も、実行時にも静的型チェッカーによっても ByteString のサブタイプとして認識されることはありませんでした。

      詳しくは PEP 688 を参照してください。 (Shantanu Jain が gh-91896 で貢献しました。)

  • tkinter:

    • Python 3.14 から非推奨となっている tkinter.Variable のメソッド trace_variable()、trace() (trace_variable() の別名)、trace_vdelete()、trace_vinfo() は、Python 3.17 で削除予定です。 代わりに trace_add()、trace_remove()、trace_info() を使ってください。 (Serhiy Storchaka が gh-120220 で貢献しました。)