memo

メソッドを置き換えたmockをもう少しstrictにしてみたい

メソッドを置き換えたmockをもう少しstrictにしてみたい。mockのpatchなどでobjectを置き換える時に属性の存在まではspecやspec_setで対応できるのだけれど。メソッドのsignatureまで含めて置き換え前のものと同じかどうか確認したい。 例えば、存在しない属…

標準ライブラリの範囲でpythonでweb APIのmock serverが欲しくなった場合

mock serverが欲しい web apiのmock serverが欲しくなることがある。結構その場その場で欲しくなる機能というのが微妙に違ったりするので毎回そらで手書きする事が多い(本当は上手に抽象化できるのかもしれないけれどできていない)。今回の機能は以下の様な…

emacsでjqをJSONファイルのformatterとして使う

emacsでjqをJSONファイルのformatterとして使う。方法は2つ。 shell-command-on-regionを使う formatter専用の関数を作る shell-command-on-regionを使う M-|にshell-command-on-regionという関数がbindされている。これに引数を与えてあげると、現在選択さ…

marshmallow-polyfieldを使ってoneOf的な構造のdataを扱う

はじめに 例えば、以下のよう1つのfieldに複数の形状の値が入ることがある。そして、その形状を決めるためにtypeなどfieldを含まれているJSONがあるとする。 以下の様な感じ(下の例では、personとgroupという2つの形状がobに入る可能性がある)。 { "ob": { …

marshmallowで相互排他的なfieldを定義する方法

はじめに こういうJSONを許したい。 { "left": { "name": "foo", "value": 100, } } あるいはこう。 { "right": { "name": "foo", "value": 100.0, } } left,rightというfieldの内どちらか1つだけ値が入るデータをvalidとしたい。例えば以下はダメ。 {} これ…

jqの出力をパイプでつなげた時の挙動(slurpとunbuffered)について

about jq jqはjsonの整形に使われる。通常は以下のようなvalidなJSONを入力にする data.json { "name": "foo", "age": 20 } 整ったフォーマットで出力される。 $ cat data.json | jq . { "name": "foo", "age": 20 } diffなどを取る時には、-Sを使ってキーで…

グラフ描く簡単な環境作っときたいかも

グラフ描くの簡単な環境作っときたいかも。要求は以下の2つ。 手軽にグラフが描ける 手軽にグラフを共有できる 前者は例えばjupyter上でだけ表示みたいなのが嫌な感じ。 後者は例えばGUIで表示とかだけなのは嫌な感じ。 まだ結局一番良いと思える方法は見つ…

sqlalchemyのORMじゃない方の機能(expression language api)

使い方忘れることが多いのでメモ。 準備 テキトウにデータを作って準備する。 テキトウにテーブル作成。 CREATE TABLE groups ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT ); CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, group_id …

1つのquery objectに紐づく複数のqueryの管理について

(途中:wip) はじめに pymongoを直で使うのがつらいと感じる事がある。というよりmongodb一般でつらいと感じることがある。主にjoin。 joinを手軽に書けるwrapper的なものがほしいと感じる事がある joinが書けるということ joinが書けるということは1つのque…

最近pythonでmongodb使うなら

普通に使う場合 過去にそれなりに人気のあった(?)mongodb用のライブラリは軒並み廃れている感じがある。3.x系に追随できていない物が多い。pymongoを直接使ったほうがマシな印象。もし非同期を気にしたいならmotorなどは良いかもしれない。 あとまだ新しめで…

統計的学習の基礎という本を読み始めた

統計的学習の基礎という本を読み始めた。英語読みたくないという精神で日本語の物を買った。 書いてある内容自体は何となく理解した気にはなるものの納得した感はまだあんまりない感じかも。解析的にはという修飾がついているところなど、ろくに計算や確認な…

pythonでwarningsパッケージを使った警告の表示のメモ

警告を表示したいことがある。例えば、次のversionで廃止予定の関数を使った時の警告など。 こういうときには warningsパッケージを使う。 first step 00warn.py import warnings def foo(): warnings.warn("hmm") return "hai" if __name__ == "__main__": …

dictknife,jsonknifeの機能を整理

github.com はじめに json,yamlを扱う上で便利そうな機能を含んだ十得ナイフっぽい感じのライブラリを作っていた。それにコマンドをもたせた結果便利になってきたのでどういうときに何を使うかを整理しておく(完全に自分用のメモ)。 dictknife dictknifeとjs…

個人的なyapfの設定

備忘用のメモ。 yapfはgofmtのpython版的なもの。autopep8みたいな代替も存在している。 github.com 少しだけ違うフォーマットでつかいたかった。yayapfを作った。消したい。 github.com こういうformatに対応したかった こういうformatに対応したかった fro…

設定ファイルがだるい問題についてあれこれ考えたりしてみた

github.com 今回の話しはあまりまとまっていない。頭の中でぼんやりと考えたことのメモ。 似たような設定ファイルが複数ある場合 似たような設定が複数あるような設定ファイルがある。例えば、local,dev,productionという3つの環境での設定ファイルがある場…

こういうちょっとしたデータの受け渡しどうするんだという話

はじめに 今自分で作っている dictknife というリポジトリについにコマンドを追加してしまった。 色々あるのだけれど。今回は dictknife transform の話。 transform 何かしらの形状の変換をしたいことがある。 例えば、こういう入力を受け取って、 properti…

makefileわりと便利だよという話

はじめに makeはmacにもlinuxにもデフォルトであって便利*1。 とは言え、色々とわかりづらいところがある。 便利なところだけ見繕って使うと便利。 個人的なmakefileの使い方は2種類 個人的には以下のような2つの目的でmakefileを使っている。 複数の目的の…

使い捨てのコードのエラー処理について

tl;dr panic時ではなくerror時にもfullのstack traceが欲しい pkg/errors が便利 はじめに しばらくgoを書いていて、使い捨てのコードのエラー処理についてどうすれば良いのか考えたりしていた。ここで言う使い捨てのコードというのは1ファイル位で作れそう…

golangのfmt系のformatの機能のメモ

まじめに調べるなら以下を見たほうが良い。 https://golang.org/pkg/fmt/ reflection使った便利な出力 %T 値の方を表示 %v 値を良い感じに表示 %+v +フラグ付きで冗長出力表示。 %#v 値を型名やフィールド名も含めて出力 利用例 type Person struct { Name s…

golangのequalityの評価について

はじめに 他の言語のつもりで比較演算子を使うと想定外の挙動をするということもあったりする。最初テキトウにコードを書いて挙動を確認しようとしていたが後に言語仕様を読めば良いだけだということに気づいた。学び始めの最中に思ったことをメモしておくと…

外部のリソースを利用する機能の記述の仕方の話

外部のリソースを利用する機能の記述の仕方の話 (当初はテストの時の話をするつもりで書いていたが、特にテストに絞ったわけでもなくとりとめもなく書いてしまった) はじめに 外部のリソースを利用する機能を作成する際のコードの書き方について考えたりして…

macでunzipした時に文字化けするファイル

macportsのunzipは -0 がない。 $ sudo port install p7zip $ 7z x foo.zip

1ファイルでdjango restframeworkを試す

1ファイルでdjango restframeworkを試す 準備 pip install django djangorestframework 以下の様なコードを書く。test_onefile_restframework.py) 実行結果 $ python test_onefile_restframework.py Creating test database for alias 'default'... ..... --…

pythonのwsgiref でちょっとしたHTTPを話したい時に

pythonのwsgiref でちょっとしたHTTPを話したい時に pythonでちょっとした調査をしたい時に、何かパッケージを入れるのも面倒な場合に wsgiref だけですませたくなる場合がある。その時のためのmemo。 hello world from wsgiref.simple_server import make_s…

今年の目標というにはあやふやな何か

今年の目標というにはあやふやな何か 目標というほど明確になっていないのでとりあえずふわふわした状態のままにしておく 方針 pythonからある程度手をひいてtypescriptあたりに時間をかける わりと今年はフロントエンド関連の情報の取捨選択を自分でやる予…

複数のファイルを手軽にbuildして試す環境を作る(with tsconfig exclude)

tsconfig.jsonにtscに渡すオプションを指定できる。 tscに渡すファイルの指定は以下のオプションを利用して渡す模様 files exclude filesはファイルを明示的に指定する必要がありglobパターン的なものは使えない。 excludeを使ってごまかす事はできるかもし…

typescriptをまじめに勉強することにした

typescriptをまじめに勉強することにした 理由 型が欲しい。 いままでも定点観測の範囲で目にした記事を幾つか取りだし眺めるというようなことはしていた。 読むことはそれなりに難しくなく書かれている記事の内容はその場では理解できてはいたような気がす…

angular.jsでng-includeで再帰してツリー表示を作る

text/ng-templateなテンプレートタグを作成する ng-includeで再帰する 以下の様な形にすると面倒なdirective作成までいかずともツリー表示ができる。

angular.jsで定義したserviceを外部から使ったりする方法

以下のようなモジュールがある。 var app = angular.module("app", []); app.value("Foo", "foo"); ここで定義したFooはservice出会ったりする場合もあるかもしれない。 このようなモジュールをangularの外側の所で使いたい場合がある。(本当はあんまりその…

angular.jsのdata-bindingをajaxで取ってきたhtmlにも反映する方法

$compileを呼ぶcompilehtmlというdirectiveを作成する