2011-06-01から1ヶ月間の記事一覧

状態を持ったmixinを作りたいときの検証用のmixin

状態を持ったmixinを作りたいときがある。(self.fooに依存しているけれど、self.fooが定義されているかわからない) 困ったので__init__後に、self.fooが定義されているか調べるデコレータを書いてみた。毎回検証処理が走っても無駄なだけなので、成功したら…

クラス名っぽい名前を変数名っぽい名前に変換する。

re.scannerを使った。 こんな変換 FooBar -> foo_bar XYBox -> xy_box import re class ClassNameToVarName(object): scanner = re.Scanner([ (r'^[A-Z]+?(?=[A-Z][^A-Z])', lambda sc, s: s.lower()), (r'^[A-Z]', lambda sc, s: s.lower()), (r'[A-Z]+', l…

qobjectの作成用のモジュール書いてみた。

暑くてまじめに書く気が起きない。ごめんなさい。memo,memo https://bitbucket.org/podhmo/po-django-qutil/src 普通のqobject Q(foo="bar") & (boo=True) という感じに作成して、比較したい値が決めた状態で作ってしまう。ついでに,djangoのキーをつなげる…

Qobjectの比較

djangoのQobjectの比較する関数を書いた。Qobjectは順序不同になるので、比較がめんどうだった。 (他に楽に比較する方法があるのかもしれないけれど) 別にnoseの関数を使う必要はないけれど。 from django.conf import settings settings.configure() from…

nullable chain

存在しないかするか分からないオブジェクトや属性を参照しようするとき、存在しないものを取得しようとしてエラーになるのが面倒。 例えば、以下のようにissueから始めてlogin_nameを取り出したい時とか。 print issue.author.login_name ただし、この時 iss…

__unicode__書くの面倒。

問題 djangoのモデルのデフォルトの表示がしょぼい オブジェクトの持つフィールドの値が分かんない。 __unicode__メソッドを自分で書く必要がある。 モデル毎に__unicode__を定義したくない。 面倒くさい デコレータとかでどうにかならない? でも、__unicod…

zope.interfaceを使うと、ちょっとだけ安全にクラスデコレータが使えるかも

まだこの使い方で合っているかわかんないけど。 昨日のコードにzope.interfaceを使ってみる。 したいこと(主機能と副機能の実装を分割したい) 本質的に必要な機能とそれ以外の機能の定義を分けたい。 例えば、ツリー構造のオブジェクトを定義するときに、そ…

依存関係のあるものを順に並べる。

やりたいこと A -B -> C -D -> Eというような依存関係がある時、依存関係の解決したものから順に利用したい。上の例だと例えばこんな感じ。 C , B , E , D , ADAG -> トポロジカルソート -> 反転と同じような感じ。たぶん、探せば絶対あるけど、とりあえず必…

デコレータについて(デコレータを引数にしてデコレータを返す関数の作成)

デコレータを引数に、デコレータを返す関数を作って無かったので作ってみる。 今回は、関数用のデコレータをメソッド用のデコレータに変換する関数を作ってみる。 デコレータ デコレータは以下のようなコードの構文糖衣。 @deco def f(n): return n def g(n)…

あとで情報の取得ができるような感じに

途中。何かできそうな感じだけど。綺麗じゃない。やりたいことは、デコレータで指定しておくと、指定したKeyが無かったときには自動でそれを取得するようなもの。 (呼び出す関数は必ず第一引数がdict like object) import getpass import urllib class Hidde…

type()

A = type("A", (object, ), dict(x="x")) print A().x print A.x A.x = "class" a = A() print a.x a.x = "instance" print a.x print A.x ## inheritance B = type("B", (A, ), dict(y="y")) print B.x, B.y # > x # > x # > class # > instance # > class …

こんなメール着た。1年後だしいいか。

この度の東日本大震災で被災された皆様に心よりお見舞い申し上げます。日ごろはauをご愛顧いただき誠にありがとうございます。 周波数の有効利用を目的とした携帯電話の周波数切り替えに伴い、2012年7月22日をもちましてお客様が現在お使いいただい…