Python

さてmockを試そう

よし、datetime.datetime.now()をmockで上書きするぞ! TypeError: can't set attributes of built-in/extension type 'datetime.datetime' ですって・・・。どうもdatetime自体は上書きする事が出来ない。 なので、patchを使って解決して下さいとのこと。 d…

3.3でたよ

早速試したい。unittest.mockが特に。 venvはいらん。参考: http://docs.python.org/py3k/whatsnew/3.3.html

クッキーその二

Cookieに日本語入るのにブラウザ側で取り出すとおかしくなるなどうなってんねん!とはまった。 普通に考えれば、日本語というか2バイト文字入らないよね・・・。 ※そういえばUTF-8が標準になろうとしている現代においては 2バイト文字と言うのも死語になりつ…

GridFSのremoveってかDeleteってか

GridFS(バイナリ、というか絵とか映像とか)コレクションから削除したい、と言う時は 標準のメソッドとしてはremove({※検索文字列})を使うが、pymongo的にはdelete(file_id)なのだそうだ。 まあカラムは少ないし、うかつに消しすぎても困るのだろうという配慮…

カスタムタグ的ななにか

JavaプログラマなんでTaglibみたいなのが欲しい。 そういう質問をしたら、Webhelper使うか、Jinja2にはFilterが実装されているよ、との事。 ほほうFilterとな。初めて聞いた。 自分はmako党なんで、makoにもFilterなるものが無いか探してみた。参考: http:/…

PostgreSQLの接続

今日はデータ移行のお仕事が舞い込んできた。 暇そうにしてたのが裏目に出たね。 データ移行だが、どうもフェッチだなんだが必要そう。 手段は問わないとの事なので、ここはPythonでの実装を目指そうか。 (一応、ストアドで何とかなりそうだなとは睨んでい…

jsonの変換

jsonは便利だけどオブジェクトについては 文字列に変換しろやこらって怒られる。その対処。 import json from bson.objectid import ObjectId #<-pymongoに含まれる from bson import json_util #<-pymongoに含まれる from datetime import datetime class m…

セッションとクッキー

セッションはともかくCookieは悩んだ。まずはsession。 __init__pyにおまじない #session my_session_factory = UnencryptedCookieSessionFactoryConfig('secret') config = Configurator(settings=settings, session_factory=my_session_factory) 格納する.…

グローバル定数

グローバル定数を置く場所が欲しい。 というわけでプロジェクトの中にconst.pyを置く。 #定義 MAX_KB = 512 # 最大KB pyからだとこんな感じに参照 from myprj import const print(const.MAX_KB) makoテンプレートファイルからだとこんな感じ <%! from myprj …

Pydevの注意

Pydevでデバッグ実行すると止まる症状。[Eclipseホーム]\plugins\org.python.pydev_2.7.0.2012080220\pysrc\_pydev_execfile.py (バージョンはその時々で違うかも) stream = open(file, 'rb') try: encoding = None encoding = 'utf-8' #<--追加してあげる #…

Eclipseから実行させたいとき

Scaffoldsでガワだけつくった後 __init__.pyに__main__をつけてやればおk if __name__ == '__main__': #Localでの実行環境用 from wsgiref.simple_server import make_server #Server Start app = main({}) server = make_server('0.0.0.0', 8080, app) ser…

コードのテスト

いきなりだけど、PyramidでMongodb接続するときはこんな感じ。__init__.py def main(global_config, **settings): #MongoDB Connect conn = Connection('localhost', 27017) config.registry.settings['db_conn'] = conn def add_mongo_db(event): #接続情報…