typingpythonでlogging.Loggerとlogging.LoggerAdapterを許す型を定義する方法のメモ。subtypingの違いのメモ。memoそろそろDIについてもまじめに考える必要が出てきたので考えることにする(この記事では終わらない)。答えになっていないようなメモでも。昨日に引き続きgo-webtestの話。現在時刻のような実行の度に値が変わるようなresponseを含んだAPIのテストがしたいとする。いう場合はそもそも固定値を返せるように依存するコンポーネントを注入できるような構成にしておくのが良い。go-webtestというパッケージを作ってました。gofumpt)がかかっているかチェックしている環境があるとする。そこでformatされていないと怒られたファイルに対してformatterをかけたい。json昔以下の様な記事を書いていた。リンク先の記事ではpointerを使わないstruct定義に対してUnmarshalJSONを自前で定義することでどうにかやろうという感じのものだった。memoなんか忘れてしまったので個人用のまとめ。他の人に役に立つことは無い。major-modeを定義する方法については概ねemacswikiに説明がある。optionsを使う場合には、こういう感じで書かれていると嬉しいという話。golang今日は素朴な話。optionsの利用者がこういう感じでコードを書いてくれると嬉しいよという話。goでわりと有名なデザインパターン(?)。optionsを使う場合には、こういう感じで書かれていると嬉しいという話。探すのが面倒なのでここにメモしておく。後者はcontextの対応が含まれていないコードなので少し古いかもしれない。した作業をするのに欲しくなったから。loggingの部分が欲しい。loggingはzapを使えばおしまいで良さそうだった。できそうなことが多すぎそうだったので絞った。serverのようなコードがあるとする2。go用のテストライブラリを作りました(言いたいことは分かります)。使いかたはこんな感じです。reflectencoding/jsonパッケージの範囲を越えてJSONと戯れようとする。動的な何かが必要になる。reflectパッケージに触れることになる。触りたくないけれど触る必要がある汚泥のような存在。それがreflect。importlibあんまり丁寧に文章を書く気力が起きないので個人的なメモ。pythonのimport周りの話。前回の記事であげた気になっていた点のうち1つを直した。それはdocstringが長すぎるという問題。長いdocstringは引用したい部分自体の意図を弱めてしまう。完全に使い方の問題だけどdocstringとかが長いコードが嫌いになるかも。meta昨日のこれらの記事の暫定的な実装をpyinspectに追加した。前回の記事で、以下のようなことを言っていた。わかりやすさを考えると、「どのクラスのどのメソッドの中のどの箇所か?」という形で表現したい(今回の場合は「WebSocketEndpointのdecode()メソッドのjson.loads()部分」という形)。metaちょっとノルマ1が迫ってきているのでたまには自分の頭の中にあることをdumpする形でノルマを消化する。色々な人が色々なブログとの付き合い方をしていると想う。memo.gitattributesをいじって特定のファイルをgithubのPRのdiffの対象から外す方法のメモ。ioknifeというパッケージを作りはじめた。日常生活におけるちょっとしただるさを改善するようなコマンドを用意したいという思いで。methodを追加したい場合はテキトウにメソッドを書いてあげれば良い。Mixinのクラスを定義してあげれば大丈夫。methodを追加したときに、不要な行がスタックトレースに紛れ込まなくて良くなる方法について2019-06-16jqfpyが--input-format=rawをサポートすればsed,awk的な処理にも対応できるのでは?と思ったので実装してみた。以前にもちょっとしたjqfpyの活用方法の記事は書いていた。JSON間の集合演算で面倒くさくなったのでpythonに丸投げした。