Python 3.16 で削除予定¶
インポートシステム:
モジュールの
__spec__.loaderを設定せずに__loader__を設定することは非推奨です。 Python 3.16 では、インポートシステムや標準ライブラリは__loader__を設定しなくなり、その値も参照しなくなります。
-
書式コード
'u'(wchar_t) は、Python 3.3 からドキュメントで非推奨とされ、Python 3.13 からは実行時にも非推奨とされています。 Unicode 文字には、代わりに書式コード'w'(Py_UCS4) を使ってください。
-
asyncio.iscoroutinefunction()は非推奨となり、Python 3.16 で削除されます。 代わりにinspect.iscoroutinefunction()を使ってください。 (Jiahao Li と Kumar Aditya が gh-122875 で貢献しました。)asyncioのポリシーシステムは非推奨となり、Python 3.16 で削除されます。 具体的には、以下のクラスと関数が非推奨です:使いたいイベントループの実装を指定するには、
asyncio.run()またはasyncio.Runnerのloop_factoryを使ってください。例えば、Windows で
asyncio.SelectorEventLoopを使うには、次のようにします。import asyncio async def main(): ... asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)
(Kumar Aditya が gh-127949 で貢献しました。)
-
真偽値に対するビット単位の反転
~Trueや~Falseは、直感に反する意外な結果 (-2と-1) になるため、Python 3.12 から非推奨です。 真偽値の論理否定には、代わりにnot xを使ってください。 元の整数値のビット単位の反転が必要になるまれな場合には、明示的にintに変換してください (~int(x))。
-
functools.reduce()の Python 実装を、functionやsequenceをキーワード引数として指定して呼び出すことは、Python 3.14 から非推奨です。
-
strm引数を持つカスタムログハンドラーへの対応は非推奨となり、Python 3.16 で削除予定です。 代わりにstream引数を持つハンドラーを定義してください。 (Mariusz Felisiak が gh-115032 で貢献しました。)
-
mimetypes.MimeTypes.add_type()で有効な拡張子は、'.' で始まるものか空のものです。 ドットのない拡張子は非推奨となり、Python 3.16 ではValueErrorが発生します。 (Hugo van Kemenade が gh-75223 で貢献しました。)
-
ExecError例外は Python 3.14 から非推奨です。 Python 3.4 以降はshutilのどの関数でも使われておらず、現在はRuntimeErrorの別名になっています。
-
Class.get_methodsメソッドは Python 3.14 から非推奨です。
sys:_enablelegacywindowsfsencoding()関数は Python 3.13 から非推奨です。 代わりに環境変数PYTHONLEGACYWINDOWSFSENCODINGを使ってください。
-
sysconfig.expand_makefile_vars()関数は Python 3.14 から非推奨です。 代わりにsysconfig.get_paths()のvars引数を使ってください。
-
ドキュメント化されておらず、使われてもいない
TarFile.tarfile属性は Python 3.13 から非推奨です。