Python で利用出来るバックポートのまとめ

Python は現在 3.x 系の開発が進められていますが, 3.x で導入された新しい機能やモジュールを古い 3.x 系や 2.x 系で利用できるように, 公式やサードパーティーによってバックポート (backport) されているものがあります. この記事ではそのようなバックポートをまとめます.

新しいものについて優先的に掲載しています. リストは随時アップデートしていく予定です.

__future__

Python 2系で print 関数を用いたり, ユニコード文字列をデフォルトで利用したりすること出来ます. 詳細は公式ドキュメントを参照して下さい.

collections.abc.Awaitable, Coroutine, Generator

concurrent.futures

enum

ensurepip

PEP 477 により, Python 2 系にバックポートされました.

faulthandler

サードパーティーのライブラリが標準ライブラリになった模様.

functools.singledispatch

  • 正式に導入されたバージョン: 3.4
  • 公式ドキュメント: functools.singledispatch
  • バックポート: singledispatch
  • バックポートが利用できるバージョン: 2.6-3.3

ipaddress

PEP 3144 で導入されました. py2-ipaddress は全ての機能をサポートしているわけではないようです.

Google で利用されている実装がもとになっており, ipaddr.py として現在も ipaddress とは別に開発されているようです.

lzma

pathlib

サードパーティーのライブラリが標準ライブラリになりました. (PEP 428)

selectors

asyncio のバックポートに含まれています. asyncio.selectors または trollius.selectors.

statistics

PyPI には登録されていません.

tracemalloc

unittest.mock

サードパーティーのライブラリが標準ライブラリになりました.