Description
sphinx-intl を題材に、Python 2.5 から Python 3.3 までの環境で動作するプログラムの書き方について紹介します。
sphinx-intl は Sphinx の国際化機能を楽に使えるようにするためのサポートツールです。Sphinx が Python 2.5 から 3.3 まで対応しているため、同じバージョン対応が必要でしたが、2to3 でコード変換する方法ではテストなど手間がかかるので、sphinx-intl では Python 2 でも 3 でも同じソースコードで変換なしに動作するように実装しました。そのために six を利用しましたが、six でもサポートしていない一部の非互換コードについては自分で互換性を保つように工夫しています。