Tempita を導入する
Tempitaは、小さくて軽快なテンプレート言語。
今作っているツールを改良するときに、「あるテンプレート文中にあるキーワードをある一定の規則に基づいて置き換えてくれる」処理が必要になった。Python にはもともと String クラスに Template というのがあって、これが本当にステキなんだけど、unicode の扱いがダメっぽい。
こういう機能を持っているモジュールのことは「テンプレート」というんだけど、HTML や XML を生成するような立派なものがいろいろ出ている*1。でも、今俺がやろうとしていることのためには機能がリッチすぎて腰が引けてしまう。
なんかないかな…と思って探していたら:
Tempita は積極的に開発されていますが、野心的なプロジェクトではありません。だから、テンプレートの世界を支配しようなんてものじゃなくて、新しい特徴を追加するのが目的のものです。私が作りたいと思ったものは、 % と string.Template だけじゃ不十分なときに使えるような、小さなテンプレート言語です。
(中略)
Tempita は Unicode を"優雅に"扱います。 Template オブジェクトは default_encoding の属性を持っています。 unicode と str のオブジェクトが混ざっているときに、それを使います。
という、まさにそのものズバリちゃんがいたので、早速使わせてもらうことに。
*1:参考: http://labs.unoh.net/2007/05/python_1.html
*2:Perlで言うCPAN 相当。Python Package Index。別名を Python Cheese Shop(笑) http://pypi.python.org/pypi