inline_table
という名前のソースコードに ASCII テーブルを埋め込むための Python モジュールを作ってみました。
GitHub - fjkz/inline_table: Python module for embedding text tables into source-code
以下のように reStructuredText で書かれたテーブルをソースコードに埋め込むことが出来ます。
>>> import inline_table >>> t1 = inline_table.compile(''' ... === === ==== ... A B AB ... === === ==== ... 1 1 '1' ... 1 2 '2' ... 2 1 '2' ... 2 2 '4' ... === === ==== ... ''') >>> t1.select(A=1, B=2) Tuple(A=1, B=2, AB='2')
if 文を並べるよりコンパクトで読みやすいと思うのですが、どうでしょう?
テーブルに値を渡すこともできます。関数なども渡せるので便利かと思います。
>>> t2 = inline_table.compile(''' ... === ===== ... key value ... === ===== ... 1 a ... 2 b ... === ===== ... ''', ... a='A', b='B') >>> t2.select(key=1) Tuple(key=1, value='A')