2019-02-01から1ヶ月間の記事一覧

jinja2のエラーメッセージを親切にする機能を付けてみて気づいたtemplate継承の複雑さ

過去の記事でCLI用のjinja2 wrapperを書いていたという話をした。この中でエラーメッセージを親切にするということに取り組んだことにも触れた。 この親切なエラーメッセージのテストのために、jinja2のtemplate継承を試してみた所、意外と複雑な機能だなー…

jinja2用のCLIのファイルパスの解決方法を変更した

github.com jinja2用のCLIのファイルパスの解決方法を変更した。 なぜファイルパスの解決方法を変更する必要があるのか? なぜファイルパスの解決方法を変更する必要があるのか?と言うと、デフォルトの解決方法ではコマンドの実行位置に依存してしまうため…

jinja2のCLIラッパーのエラー表示を良い感じにした

github.com jinja2のCLIラッパーのエラー表示を良い感じにした。元々最近余暇に元気がなくて機能を追加したりする気が起きなかったのだけれど。それを機会に自分の作っていたrepositoryのexamplesを整理していた。そのようなことをしている最中に幾つか気に…

pythonのformatterのblackに標準入力でコードを渡す。

hmm $ pip install black $ cat 00hello.py | black No paths given. Nothing to do なるほど。ファイルの指定を"-"にして渡す。 https://github.com/ambv/black/blob/250ba7f04b300df284ba80cd4bb4122b45b41efb/black.py#L465-L467 def reformat_one( src:…

JSONの$refを見て1つのファイルにまとめるコマンドを部分的に使えるようにした。

github.com JSONの$refを見て1つのファイルにまとめるコマンドを部分的に使えるようにした。OpenAPI documentなどを書くときに使う。 いままでは全部をまとめた形でしか使えなかった。 # いままで $ jsonknife bundle --src main.yaml $ jsonknife bundle -…

複数のresourceにループで触る時にcontextlib.ExitStackが便利という話。

複数のresourceにループで触る時にcontextlib.ExitStackが便利という話のメモ。 例えば以下の様な条件で動作する処理を書きたいことがあるとする。 対象となるresource(ファイルなど)を複数取る そのうちN行までを取り出す(それ以降は読まない) 取り出した行…

ipythonのシェルのpromptをpythonのシェルの表示に変える方法のメモ

はじめに ipythonは便利なのですが、実行例などを貼り付けるときには通常のpythonのシェルでの表現に揃えたかったりします。一方でipythonのpromptには実行回数的なものが併記されるなど通常のpythonとは異なる表示になっています。 ipythonのprompt表示 In …