Python

PyDev interactive console の working directory を自動設定する

PyDev の interactive console を起動したときのデフォルトの作業ディレクトリを変更する方法です。Mac用です。(startswith の条件を変えれば他環境でも対応できるかと)Preferences > PyDev > Interactive Console > Initial Commands import sys, os, itert…

__call__ で decorator を作ったときの謎

インスタンスメソッドのデコレータを作るとき、関数の代わりに __call__ を実装したクラスを使ってみると困ったことが起きる。関数によるデコレータでは、メソッドが呼び出されたオブジェクトが関数に渡ってくる。 しかし、__call__ によるデコレータでは、_…

metaclass で immutable

随分と久しぶりな投稿です。Python 2.x の自作クラスを immutable にする件。お手軽、かつ多くの記事を見かけるのが namedtuple を使う方法。 import collections Vector = collections.namedtuple('Vector', ('x', 'y')) Vector(0,0) 値を保持するだけのオ…

jQuery と Twitter Bootstrap を使う

Google App Engine で開発。第十二弾。GAE python 27 + django 1.3 です。GAE に含まれている Django を使っています。jQuery と Bootstrap を使います。まず、それぞれのサイトからダウンロードして、ファイルを展開します。 app_root static css bootstrap…

テストデータの管理を効率化する

Google App Engine で開発。第十一弾。GAE python27 + nose + Eclipse です。テスト用のデータをつくる(http://d.hatena.ne.jp/nosix/20120907/1347034821)で bulkloader を使ってテストデータのアップロード/ダウンロードを行えるようにしました。Eclipse …

コンテンツを比較する

Google App Engine で開発。第十弾。GAE python27 + nose です。テスト用のデータをつくる方法を用意したので、次はテスト結果を検証する方法を用意します。eq_content(exp_content, act_content) を作ってみます。 from difflib import SequenceMatcher fro…

テスト用のデータをつくる

Google App Engine で開発。第九弾。GAE python27 です。できる限り追加パッケージを導入しないでテスト用データをつくる方法を考えます。もっと良い方法があったら教えてください。dev_appserver.py を実行して開発サーバを動作させます。この際、下記をコ…

datastore のデータをダウンロード/アップロードする

Google App Engine で開発。第八弾。GAE python27 です。データの download(dump)/upload(restore) には bulkloader を使います。app.yaml にて remote_api の使用を宣言します。 builtins: - remote_api: on bulkloader.yaml ファイルを作成します。appcfg.…

views の実装

Google App Engine で開発。第七弾。GAE python27 + django 1.3 です。GAE に含まれている django を使っています。views.py を見直しました。 from django.template import RequestContext from django.shortcuts import render_to_response from google.ap…

PyDev で nose を使う

PyDev の PyUnit 設定で Nose test runner を選択するだけで動きました。

djangoforms を使う

Google App Engine で開発。第六弾。GAE python27 + django 1.3 です。GAE に含まれている django を使っています。(追記 2012.9.5:djangoforms は開発サーバにおいては動作しますが、本番サーバでは import error になります。djangoforms.py をアプリケー…

GAE 開発環境をさまよって Eclipse Indigo へ

Eclipse Juno を使ってみていたのですが、Aptana Studio 3 が使えない、Eclipse HTML Editor が使えないと、便利そうな Plug-in が次から次へと使えない。Eclipse Indigo にしたら使えるときたもんです。Indigo で Help > Install New Software から Plug-in…

GAE で Python 2.7 + Django 1.3 を使う

Google App Engine で開発。第五弾。Python 2.7 が使えるということなので使ってみます。ついでに、Django 1.3 も使ってみます。GAE Launcher をインストールすると下記に Django 1.3 が置かれています。/Applications/GoogleAppEngineLauncher.app/Contents…

memcache で Undefined variable from import

Google App Engine で開発。第四弾。memcache を使おうとすると set/get でエラーが出ます。実行はできるのですが。Puthon Interpreters の Forced Builtins に google.appengine.api.memcache を加えることで回避できるとの情報を見かけるのですが試しても…

アプリを動かす

Google App Engine で開発。第三弾。まずは簡単なアプリを動かしてみます。さて、コードを編集だ!と、キーバインドを Emacs 風にするのを忘れていました。Emacs+ プラグインを入れてみます。Emacs Plus - http://www.mulgasoft.com/emacsplus/update-siteイ…

新規プロジェクトをつくる

Google App Engine で開発。第二弾。PyDev で新規プロジェクトをつくります。File > New > Other とすると↑の画面が表示されます。Google App Engine Project を選択します。Google App Engine は Python 2.5 です。(追記 2012.8.9:今は2.7が推奨されている…

Google App Engine で開発

Google App Engine で開発。第一弾。MacOS X Lion + Eclipse Juno (4.2) + PyDev + Google App Engine SDK for Python 1.7.0 環境で開発しよう! Eclipse をインストール eclipse-java-juno-macosx-cocoa.tar.gz Eclipse に PyDev をインストール PyDev - ht…