Published On: 1970-01-01|Last Updated: 1970-01-01|Categories: Uncategorized|
宣伝してないから誰も来ないだろうけど書いとく。

katagami は Python 2.X 用の XML (特に HTML) テンプレートエンジンです。

既存のテンプレートエンジンに較べ、次のような特徴があります。

  • テンプレートエンジン固有の文法はありません。
    • XML と Python の文法をそのまま使用します。
    • 幾つかのハンドルされた XML attribute で制御構造を実現します。 (if, elif, else, for_, while, with, except, …)
    • domain specific な文法を覚える必要はありません。
  • Python スクリプトに不自然な制限はありません。
    • python タグ内部を CDATA で記述すれば普通の Python スクリプトとほとんど同様に記述できます。
    • XML attribute 内の Python スクリプトも極力 Python の文法に沿うようになっています。実行順も定義順と一致します。
      • for は item in iterable の形式ですし、with は複数のコンテキスト (A() as a, B() as b) を扱えます。for_=”(index, item) in enumerate(iterable)” ももちろん使用できます。except=”SomeError as e” で例外も扱えます。
  • 高速に動作します。
    • expat と eval, compile に解析を丸投げするため、多分 mako よりも高速に動作します。ただしキャッシュ機能を持たないため、実際に使用された際にどれだけの差が出るかはわかりません。
  • 低機能です。
    • XML 内部に Python スクリプトを記述できるため、このテンプレートエンジンは include に相当する機能くらいしか持ちません
  • XML 以外のテキストフォーマットには対応できません。
  • Python 3 に対応していません。
    • 対応は難しくありませんが…
  • IronPython でも大体動作しましたが、現実的ではありませんでした。pyexpat にパッチをあてる必要があります。
  • 実績がありません。

要するにテンプレートエンジンの使い方覚える (というかすぐに忘れる) くらいなら自分で作ったほうが早かったので。

setup.py sdist register だけじゃダメで upload しないといけなかった/(^o^)\ PyPI のドキュメントメチャクチャなの直さんと…

直した。

関連