zenmai
github.com --driver オプションでカスタマイズ出来るように直した。例えば前回の記事で @foo を {$get: foo} に変更するためのmonkey patchを試していたけれど。これをまともな形で行うようにするときには --driver 経由で設定するのが正しい。 driverにつ…
github.com 現状の$loadのscope 現状の$loadの実装はclosureと同様の形で外側のscopeの値に触ることが出来る。これが実質dynamic scopeのような形になっている。これが微妙かもしれない。 例えば、こういう分からない変数名fooの束縛を持つ環境でloadを実行…
github.com 複数の設定ファイルを一気に生成したかった。zenmaiにその機能を持たせても良かったのだけれど。そうするとdictに対するtransformer的な意味合いとは異なった何かになってしまう。 単純にyamlを受け取って、その値を特定のディレクトリ上に転写す…
github.com zenmai version0.2になった。主な変更点は以下。 config loaderとしてのshortcut関数を追加 $inheritの追加 (tomlのサポート) config loaderとして使えるようになったのがおおきな変化。実用的なミニ言語(toy言語)というスタンスで作っていたけれ…
github.com 設定ファイルのconcatについてのメモ。例えばconcatと言っても以下の3つくらいの段階がある。 単にファイル単位でconcatするだけ JSONの構造を意識しながらトップレベルの要素同士をconcat 自由な位置に所定の要素をconcat 例えば、以下のようなy…
github.com zenmaiをpypiにアップロードしました。以下でインストールできるようになります。 $ pip install zenmai こちらからは以上です(もう少しreadmeなどを充実させたい)。 詳しい内容は以下を参照してみてください。 pod.hatenablog.com
github.com $whenと$unlessというsyntaxを追加した。$whenは以下の様な形で書く。 $when $when: <predicate> body: <body> or $when: <predicate> <body> body部分が不要なら省略できる(省略できるのはbody部分にactionの呼び出しがない場合に限る)。 $whenはpredicate部分が真ならbody部分を評</body></predicate></body></predicate>…
github.com 今回の話しはあまりまとまっていない。頭の中でぼんやりと考えたことのメモ。 似たような設定ファイルが複数ある場合 似たような設定が複数あるような設定ファイルがある。例えば、local,dev,productionという3つの環境での設定ファイルがある場…
github.com 今日は$formatと–dataオプションの取り扱いに細かな調整を加えた。具体的には以下の様な感じ。 $formatの対象を文字列だけから拡張した --data でファイル名だけではなく json referenceを取れるようにした $formatの対象を文字列だけから拡張し…
github.com 細々としたaction(関数)を追加する作業。小さなissueを作ってはcloseを繰り返してた。 例えば以下のようなaction(関数)が追加された counter format get (with default value) 追加されたものたち counter $let: c0: {$counter: 3} c1: {$counter…
github.com 今までconfigファイルを受け取ってその値を利用してrenderingするということができなかった。別の言い方をすると静的な参照関係を記述することは出来たけれど、動的な参照関係を記述することができなかった(個別にrootとなるようなファイルを定義…
github.com はじめに 結局面倒くさくなってjinja2のtemplateをサポートした。なんだかんだでtemplateの機能はすごく便利。とは言えせっかくのdict(yaml)の構造が全て無視され文字列として扱われるというところが微妙といえば微妙。 どうしてtemplateが便利な…
github.com はじめに 1週間くらい触ってきた結果それなりに機能が揃ってきたような気がする。$loadで外部のリソースから値を取ってくる事ができるようになったし。その際にjson pointerで指定した範囲の一部分を取り出すことも出来る。$concatで複数の断片を…
github.com 昨日話題にだけだしていて未実装だった$letという記法を実装しました。夢物語的な皮算用ではなくなりました。 予想通り以下が必要になりました。 scope 関数呼び出しとは異なる評価順序の特殊構文 以下の様なコードが動くようになります。 data.y…
github.com 今日もyaml上の言語のことを考えていたのだけれど。関数(action)呼び出しの部分はflowスタイルと併用すると少し見やすくなるかもしれない。 yamlのblockスタイルとflowスタイルについて yamlにはblockスタイルとflowスタイルの2つのスタイルがあ…
github.com $loadと$concatが仲間に加わりました。これでようやくちょっとは便利な何かとして機能し始めてきたような気がします。これら2つが具体的にはどのような効果を持つのかを少し説明したいと思います。すごく雑にいうと以下の様な感じです。 $load –…
github.com yaml上の言語での戻り値について考える事がある。だいたい以下の2つについて考えていた。 Noneが戻り値の関数の扱い 戻り値の解釈の仕方 Noneが戻り値の関数の扱い 通常のpythonの関数でreturnを書かなかった場合にはNoneが返る。 def f(): pass …
github.com 今回はimport出来るようにしてみた。例えば以下の様にして使うことが出来る。そう言えば、前回の記事では使い方を説明していなかった。使い方は単純で zenmai.compile(d, module) という感じで呼び出すだけ。注意点として順序は保持してもらう必…
yaml上で動くtoy言語を作り始めた。 これ。 github.com 今回はコードを書く以外になるべく文章によるアウトプットを増やしてみようという試みも裏で行うことにした(そんなわけでこの記事を書いている)。 yaml上で動く言語 現在のところはlispのマクロのよう…