2011-01-01から1年間の記事一覧

memo pythonでの部分適用

functools.partialの存在意義が分からなかった。 lambdaで包んで返せばそれで良いと思っていた。 勘違いしていた。 確かに、functools.partialは便利だ。 def f(x): def _f(): return x + 1 return _f xs = [f(x) for x in xrange(10)] print [x() for x in …

jquery-uiのautocomplete

ここだけ変更してくれたら、複数のパラメータを渡して通信できるのに。 $ diff -u original.js jquery.ui.autocomplete.js --- original.js 2011-07-05 16:10:42.578595998 +0900 +++ jquery.ui.autocomplete.js 2011-07-05 16:11:47.568595994 +0900 @@ -27…

そろそろ頭を整理したい。

クラス作る or not 継承、デコレータ mixin, 委譲

状態を持った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日をもちましてお客様が現在お使いいただい…

dumpdataでfixtureを出力する際にはIndentをつけられる。

python manage.py dumpdata --format=xml ぐちゃぐちゃ。 <django-objects version="1.0"><object pk="4" model="auth.permission"><field type="CharField" name="name">Can add group</field><field to="contenttypes.contenttype" name="content_type" rel="ManyToOneRel">2</field></object></django-objects>

inlne_template?

memo.ぐちゃぐちゃ。 python views.pyという感じで実行できる viewsとしても動く ぐちゃぐちゃ。

propertyについて

pythonのpropertyについて頭を整理しようと思ったのでまとめてみる。agenda propertyって何? 困ったこと(propertyって読み込み専用の属性を定義するための機能なの?) propertyの使い方 propertyの利用例 getterを定義する場合 setterを定義する場合 delete…

safeが必要ないオブジェクトを作る。

djangoのテンプレートの話。カスタムタグやフィルタ以外で、safeをつける必要がないオブジェクトを作りたい。 formのような。 {{form.as_p}}はできるけれど、自分で作った以下のようなオブジェクトはsafeをつける必要がある。 class A(str): def as_p(self):…

djangoでmodelの図を描いて見る。

django-extensionsにそんな機能が入っていた。 ubuntuで図を描いてみる例。 必要なもの graphviz django-extensions requirements.txt pygraphviz django-extensions install sudo aptitude install graphviz graphviz-dev pip install -r requirements.txt …

windowsを使うときに入れるソフト

poderosa http://ja.poderosa.org/?download winscp http://winscp.net/eng/download.php desktops http://technet.microsoft.com/en-us/sysinternals/cc817881 ctrl2cap http://technet.microsoft.com/en-us/sysinternals/bb897578 あと、何かのブラウザ

templateのデフォルト値を変える。

デフォルトは""なので分かりにくい。settings.pyに以下を追加すると、テンプレートで間違えた時の表示が変わる。 TEMPLATE_STRING_IF_INVALID = "THIS IS NOT EXIST"

views.pyにview関数をwrapするオブジェクトを作る

以下のようなurlを指定する必要があって面倒。 json/foo json/bar json/hoo .... 普通にurls.pyを書くと from django.conf.urls.defaults import patterns, include, url # Uncomment the next two lines to enable the admin: # from django.contrib import…

jquery.templateの使い方

jquery.pluginなので個別にいれる必要がある。 どんな表示になるかは何に貼ればよいのか分からなかったのでとりあえずjsdo.itに <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="http://code.jquery.com/jquery-latest.min.js"></script> </meta></head></html>

jquery.pluginの書き方(memo)

これが一番良い書き方かは分からない。 参考にしたライブラリを元にjqueryのpluginの書き方をメモ。 雛形 // jquery.foo.js (function($) { $.fn.foo = function(opts) { var options = $.extend({}, $.fn.foo.defaults, opts), action1 = function{ }, acti…

djangoをnginx+gunicornで動かす。テキトー。

install pip install gunicorn sudo aptitude install nginx cd /etc/nginx sudo mv nginx.conf nginx.conf.orig sudo vi nginx.conf nginx.confを以下のように ## worker=1, port=8000 user www-data; worker_processes 1; error_log /var/log/nginx/error.…

jsのsetTimeout的な非同期っぽい感じのsleepをpythonでどうするのか考えてみた。

こんな方向でいけるかもしれない。書いたコードは、setTimeoutとは似ても似つかないけれど。 イメージ見たいなものはつかめた。。。かもしれない。 実際にsleepをするわけではなく、現在時刻との差分を確認 「できるよ」、「おわった」、「まだ待って」みた…

python-ex-util.el機能追加

python-ex-util.elに機能を追加した。以前に追加したものも含めているけれど、追加した機能は以下のとおり (virtualenvの環境も考慮した)flymakeの設定を追加 defaultで機能は無効 moduleをinsertできる関数(anything-insert-module)を追加 testを書き始めた…

chibi-test機能追加

実際に使ってみると、機能が足りないことに気づく。 いくつか機能を追加して、いくつかバグを潰した。些細な変更は省くとして、以下追加した機能 test以外の比較を追加(test-not test-true test-false) 結果表示後、N秒(defaultでは3秒)後に結果表示するバッ…

test用のelisp書いた(chibi-test.el)

すごく単純なテスト用のelisp。特徴は 色がつく セクションがネストできる。(これがしたかった) インストール ここ。 https://github.com/podhmo/chibi-test.el 使い方 こんな感じでテストを書く (require 'chibi-test) (with-chibi-test* ;;section,test, m…