Python 2.5が動作する環境下で動くpythonスクリプト中でsixを使う際の注意点。
sixとは
sixが何かは公式ドキュメントを参照。
Six: Python 2 and 3 Compatibility Library — six 1.10.0 documentation
Six provides simple utilities for wrapping over differences between Python 2 and Python 3. It is intended to support codebases that work on both Python 2 and 3 without modification. six consists of only one Python file, so it is painless to copy into a project.
公式リポジトリ(gutworth / six — Bitbucket)
現時点(2015/12)で最新版は1.10.0
公式ページの日本語訳は現時点で1.9.0まで。
Six: Python 2 と 3 の互換性ライブラリ — six 1.9.0 ドキュメント
結論
Python 2.5環境でも動かす可能性がある場合は six 1.8.0 を使用する。
詳しく
1.10.0ではPython 2.5はサポート対象外となっている。
six 1.10.0 : Python Package Index
Six supports every Python version since 2.6. It is contained in only one Python file, so it can be easily copied into your project. (The copyright and license notice must be retained.)
1.9.0ではPython 2.5はサポート対象となっている。
six 1.9.0 : Python Package Index
Six supports every Python version since 2.5. It is contained in only one Python file, so it can be easily copied into your project. (The copyright and license notice must be retained.)
ところが、Python 2.5で動かない operator.methodcaller を使っている。
ソース差分を見ると、1.8.0 -> 1.9.0 でoperator.methodcallerを使うように修正されている。
というわけで、Python 2.5もサポートする場合はsix 1.8.0を使用しましょうというお話。