‘Python’ タグのついている投稿
モデルのdatetime型属性の取得結果の違い
sqlalchemyを用いて、あるモデルのdatetime型の属性の最大値を取得するには
>>> from sqlalchemy import func >>> model.FooModel.query.add_column(func.max(model.FooModel.foo_datetime)).first() (<FooModel object at 0x18353f50>, datetime.datetime(2008, 12, 16, 16, 11, 29))として、モデルオブジェクトとのタプルとして得ることができます。
以上はデータベースとしてmysqlを使用した場合ですが、このとき代わりにsqliteを用いてみると
>>> from sqlalchemy import func >>> model.FooModel.query.add_column(func.max(model.FooModel.foo_datetime)).first() (<FooModel object at 0x18353f50>, u'2010-06-29 17:58:45')となります。
前者がdatetimeオブジェクトなのに対して後者は文字列になっています。
ちなみに、int型ですと
>>> from sqlalchemy import func >>> model.FooModel.query.add_column(func.max(model.FooModel.foo_int)).first() (<FooModel object at 0x18353f50>, 1)ちゃんと数値として返ってきます。
Google App Engine SDK 1.3.5 がリリースされたようです
Posted by 金子望 (エンジニア)
TriAx では Google App Engine を使った案件もいくつか手がけているのですが、開発に利用している SDK の新バージョン 1.3.5 がリリースされていました。
Google App Engine Blog の記事 によると、このバージョンの主な変更点は以下の通り。
- 1. タスクキューのスループットが改善された (1アプリあたり50 reqs/sec から 1キューあたり 50 reqs/secに)
- 2. Python ファイルのプリコンパイル機能が追加された
- 3. blobstore のデータを file-like オブジェクトとして操作できるようになった
アプリ開発者としては Python ファイルのプリコンパイル機能は有効にするだけで 2〜3倍の性能改善が見込めるのですぐにでも試してみたいですね。もちろんプリコンパイルによって不具合が起こる可能性もあるので、検証は必要ですが。
その他の変更点はリリースノートに載っています (http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes)
TriAx 的にはリリースノート最後の項目にも注目です。実はこのバグは社内の開発で見つかったものを報告して無事修正が取り入れられたものだったりします。
自分の使っているツールを自分で直せるというのもオープンソース開発の面白いところですね。
Python’s strftime dislikes years before 1900
>>> birthday = datetime.datetime(year=1879, month=3, day=19)
>>> birthday.strftime("%y/%m/%d")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: year=979 is before 1900; the datetime strftime() methods require year >= 1900
困りました。ValueError を例外処理するしかないのかな・・・
関連情報:
PEP372 Adding an ordered dictionary to collections
PEP372 Adding an ordered dictionary to collections
2008年6月 Armin Ronacher 氏による投稿。
早く Python の標準パッケージに取り込んでほしい。
Pyxis ではサードパーティの _ordereddict を利用している。
Porting to Python 3: Do’s and Don’ts
http://lucumr.pocoo.org/cogitations/2008/12/07/porting-to-python-3-dos-and-donts/ の翻訳です。原文のライセンスに従い、この翻訳は Creative Commons ライセンス (http://creativecommons.org/licenses/by-nc-sa/2.0/at/deed.ja) に従います。翻訳の誤りや改善案があればコメント欄で指摘してください。
この投稿の続きを読む »
