Engineer in Tokyo

Google App Engine SDK 1.1.8がリリースされました

App Engineの新しいリリース1.1.8が来た。色な面白いところがあるけど、仲居さん(id:Voluntas)のブログポストからピックアップする。

  • ByteStringPropertyが実装
  • 気軽に使えるBlobProperty
  • UserPropertyauto_current_userauto_current_user_addが追加。
    • DateTimePropertyと同じ動作すると思われ。
  • PolyModelが追加されました。
    • Djangoの継承と一緒、使い方は簡単です。
from google.appengine.ext import db
from google.appengine.ext.db import polymodel

class Entity(polymodel.PolyModel):
  created = db.DateTimeProperty()

class Status(Entity):
  message = db.StringProperty()

class Clip(Entity):
  url = db.StringProperty()
  • Image API に width/height が実装されました
  • db.Model.order() にてkeyのソートが出来るようになりました。

僕が気になったところがもう一個あるんだけど、このリリースにて、antlr3というモジュールが必須となった。1.1.8をインストールして動かそうたしたら、以下のエラーが出た。

ImportError: No module named antlr3

理由はApp EngineのDjangoを使ってること。App EngineのDjangoはgoogle_appengine/lib/antlr3のモジュールをインポートしてなかったので、エラーが出てきた。App Engine DjangoのSVNの最新版を使えば、解決する。

何で、antlr3が必要になったというと、実際コード見ると、google_appengine/google/appengine/cronの中に、groc.py, GrocLexer.py, GrocParser.pyがある。grocというcronみたいなサービスがもうすぐ出るかもしれないね。GrocLexer.pyGrocParser.pyantlr3を使ってcronの時間設定文字列を解析するパーサーだという。面白い。