pythonのcomponentsについて
registryのswappingどうすれば良いのかずっと考えていたけれど。一番安直なのはget_current_registryをmockすることだった。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
registryまじめに使うのにconfigurator欲しい所だし。というところでfreedomにimportしあうものと相性が悪い。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
ifdefと同じ感じでif settings[settings_value]で定義を分岐させる感じで十分なんでしょうという気持ちがある
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
singledispatchも直接使うと指定した型都の対応関係を変更できない。と思うけど。テストの時だけで良いなら、それこそmockすれば良いんだよなーということになり。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
もう普通に同じregistryに対してmock.patchとかすれば良いんじゃないのとも思った。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
settingsから実装を変えるのにregistryはあると便利だと思う。たとえそれが単なるdictでも。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
registry["heavyCalc"] = dummyCalc
callAPII = lambda v: registry["heavyCalc"](v)
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
registry["heavyCalc"] = import_symbol("fdummy.heavyCalc")
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
そして関数ではなくmoduleをdictに渡してあげれば良いんじゃないか?という発想になったんだった。
registry["calc_module"] = import_symbol("dummy.calc")
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
でもやっぱり。どんな関数があるか引数の数正しいかなどはvalidationしたいと思ったんだった。(それで十分なの?という気持ちはとてもある)
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
まぁ、そうじゃなくてもimport http://t.co/m0CMIknmcCを間接参照にしたというだけでも意味があるんじゃないかと思う。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
もうdictで良いと思った。形が気に入らないならgetattrでアクセスできるように変えればそれで良いんじゃないの的な感じで。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
まじめにcomponents を使うとkeyがclassにできるので。keyのclassの__mro__見るということは出来るようになるけれど。(例外に対する扱い束縛したりする時都合良いと思う)
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
は~
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17
interfaceというかobjectの属性やメソッドの規約もABCMetaとかで十分なんじゃないのとか。思ったりも。
— SyntaxError x = 'y', (@podhmo) 2014, 7月 17