2012-03-01から1ヶ月間の記事一覧

virtualenv上のpythonをquickrunで呼ぶ

quickrun 現在のバッファの内容をファイル名に結びついた言語のコマンドで実行してくれる(e.g. foo.pyならpython) https://github.com/syohex/emacs-quickrun motivate pythonを書くときには、virtualenvでプロジェクトごとに環境を分けている。 なので以下…

テーブルをjoinした結果をモデルにmappingできる。

__table__にsqlalchemy.orm.joinした結果を代入すると、複数のテーブルをjoinした結果をmappingしたモデルが作れる。 (idのconflictを避けるためにorm.column_propertyを使うことが多い) import sqlahelper import sqlalchemy as sa import sqlalchemy.orm a…

onupdateやeventなど

更新時刻を設定したい場合などデフォルトで提供されている、onupdateオプションを使う。 import sqlahelper import sqlalchemy as sa import sqlalchemy.orm as orm from datetime import datetime Base = sqlahelper.get_base() DBSession = sqlahelper.get…

pythonスクリプトをpipeで渡すとUnicodeEncodeErrorが出る。

こんなスクリプトを # -*- coding:utf-8 -*- print u"にほんご" shell 直接呼び出すと大丈夫 $ python pipe_sample.py にほんご pipeで他のコマンドに渡すとUnicodeEncodeError $ python pipe_sample.py | cat Traceback (most recent call last): File "pip…

radix sort

ひまつぶし def maxof(xs, fn): ma = fn(xs[0]) for x in xs: tmp = fn(x) if ma < tmp: ma = tmp return tmp def radix_sort(xs, M): bs = [[] for i in range(M)] N = maxof(xs, len) checks = [0 for _ in range(M)] for x in xs: bs[int(x[-1])].append(…

sqlalchemyでうれしいところ。(concrete table inheritanceで継承元のクラスで検索した場合に適切な子クラスにマッピングしたオブジェクトを返してくれるところ)

sqlalchemy は、concrete table inheritanceで定義したモデルがあるとする。 それらのモデルを継承元のクラスで検索した場合に、検索結果のqueryは適切な子クラスにマッピングしたオブジェクトのリストとなって返ってくるところ。これがうれしい。 e.g. 例は…

declarative_baseのBaseクラスを拡張してみる。

よくmixinで拡張したりなんかする。 e.g. django likeなmodel定義にするmixin import sqlalchemy as sa import sqlalchemy.orm as orm from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declarative_base Base…

decoratorの挙動をちょっと変更しつつ適用する

メモ。 motivatation 最近、fanstaticを使っている時にデコレータを利用したいと思った。 (fanstaticはWSGIアプリのResponseの中を覗いてhead要素の合間に定義しておいたresource(js,cssなど)を読み込むタグを追加してくれるライブラリ((他にも機能はある)))…

後で集めてひとつにする。

やっていることは、個々の要素から情報を集めて一つにまとめて出力すること。初めからこのような方針を思いつきたかった。 返す値の計算は、各要素に全部移譲する 複数の値を返したくなるので、辞書的なオブジェクトを設定として引き回して、各要素に更新し…