Python は現在 3.x 系の開発が進められていますが, 3.x で導入された新しい機能やモジュールを古い 3.x 系や 2.x 系で利用できるように, 公式やサードパーティーによってバックポート (backport) されているものがあります. この記事ではそのようなバックポートをまとめます.
新しいものについて優先的に掲載しています. リストは随時アップデートしていく予定です.
__future__
- 公式ドキュメント: __future__ — future 文の定義
Python 2系で print 関数を用いたり, ユニコード文字列をデフォルトで利用したりすること出来ます. 詳細は公式ドキュメントを参照して下さい.
asyncio
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: asyncio – 非同期 I/O、イベントループ、コルーチンおよびタスク
- バックポート1: asyncio
- バックポート1が利用できるバージョン: 3.3-
- バックポート2: trollius
- バックポート2が利用できるバージョン: 2.6-
collections.abc.Awaitable, Coroutine, Generator
- 正式に導入されたバージョン: 3.5
- 公式ドキュメント: コレクションの抽象基底クラス
- バックポート: backports_abc
- バックポートが利用できるバージョン: 2.6-3.4
concurrent.futures
- 正式に導入されたバージョン: 3.2
- 公式ドキュメント: concurrent.futures – 並列タスク実行
- バックポート: futures
- バックポートが利用できるバージョン: 2.5-3.1
enum
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: enum — 列挙型のサポート
- バックポート: enum34
- バックポートが利用できるバージョン: 2.5-3.3
ensurepip
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: ensurepip — Bootstrapping the pip installer
- バックポート: ensurepip — Bootstrapping the pip installer
- バックポートが利用できるバージョン: 2.7.9-
PEP 477 により, Python 2 系にバックポートされました.
faulthandler
- 正式に導入されたバージョン: 3.3
- 公式ドキュメント: faulthandler — Python tracebackのダンプ
- バックポート: faulthandler
- バックポートが利用できるバージョン: 2.7-3.3?
サードパーティーのライブラリが標準ライブラリになった模様.
functools.singledispatch
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: functools.singledispatch
- バックポート: singledispatch
- バックポートが利用できるバージョン: 2.6-3.3
ipaddress
- 正式に導入されたバージョン: 3.3
- 公式ドキュメント: ipaddress — IPv4/IPv6 操作ライブラリ
- バックポート: py2-ipaddress
- バックポートが利用できるバージョン: 2.7
PEP 3144 で導入されました. py2-ipaddress は全ての機能をサポートしているわけではないようです.
Google で利用されている実装がもとになっており, ipaddr.py として現在も ipaddress とは別に開発されているようです.
lzma
- 正式に導入されたバージョン: 3.3
- 公式ドキュメント: lzma — LZMA アルゴリズムを使用した圧縮
- バックポート: backports.lzma
- バックポートが利用できるバージョン: 2.6-
pathlib
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: pathlib — オブジェクト指向のファイルシステムパス
- バックポート: pathlib
- バックポートが利用できるバージョン: 2.7, 3.2-
サードパーティーのライブラリが標準ライブラリになりました. (PEP 428)
selectors
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: selectors – 高レベルな I/O の多重化
- バックポート: asyncio のバックポートに含まれる
asyncio のバックポートに含まれています. asyncio.selectors
または trollius.selectors
.
statistics
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: statistics — 数理統計関数
- バックポート: backports.statistics
- バックポートが利用できるバージョン: 2.6-2.7, 3.2-3.3
PyPI には登録されていません.
tracemalloc
- 正式に導入されたバージョン: 3.4
- 公式ドキュメント: tracemalloc — Trace memory allocation
- バックポート: pytracemalloc
- バックポートが利用できるバージョン: 2.5-3.3
unittest.mock
- 正式に導入されたバージョン: 3.3
- 公式ドキュメント: unittest.mock — モックオブジェクトライブラリ
- バックポート: mock
- バックポートが利用できるバージョン: 2.5-
サードパーティーのライブラリが標準ライブラリになりました.