2008-01-01から1年間の記事一覧
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) に従います。翻訳の誤…
いろいろ使えて面白そう。あとでしっかり勉強しよう。 How-To Guide for Descriptors Python Descriptors, Part 1 of 1 Python Descriptors, Part 2 of 2 posted by id:junya_hayashi
「pubdate」「modified_at」「id」の3つのフィールドをキーにソートして、特定のレコードの前後を取得する。 def get_neighbors(entry): query = Session.query(DiaryModel) # get neighbors peers = query.filter_by(pubdate=entry.pubdate)\ .order_by(Dia…
2ヶ月間も更新していないですね、ごめんなさい。 開発が進んでいないわけではなくて、むしろかなり進みました。社内的に、Pyxis を用いたBasic, Lite などの製品を開発しています。8月は丸々VietNam出張でした。数は少ないですが、VietNam 支社でも Pythonis…
6月20日(金)〜6月29日(日)の日程で、Pyxisを用いた開発のトレーニングのために、Vietnam (支社)に出張してきました。Vietnam で印象的だったのは、バイク・バイク・バイク!道はバイクの洪水なうえ信号が少ないため、空気の読めない人は道を渡れません(笑)。…
mod_wsgi には embeded mode (Apache のプロセスと一心同体) とdaemon mode があるのですが、小さなWSGIスクリプト以外では daemon mode を使った方が応用が利きます。 そこで、mod_wsgi の daemon mode について調べてみました。まず、 mod_wsgi の daemon …
Mapping a Class against Arbitrary Selectsこんなこともできるんですね。統計情報(アクセスログとか)を扱いたい場合など、group_by の結果をモデルに結び付けて、Pyxis の管理画面で活用できそうです。posted by id:junya_hayashi
Here are two composite patterns. One for Widget, and the other for Validator and Schema.posted by id:junya_hayashi
site-packages の下で __main__ とか検索すると面白い。皆さん、パッケージのデバッグ用コードをたくさん書いています。posted by id:junya_hayashi
Toscawidgets のサンプルが少なくて、ちょっと凝ったWidget を作るのに苦労したので共有しときます。 TwoStepSelectField 1番目のSingleSelectField で絞り込み、2番目のSingleSelectField でデータを選択するフィールドセットを実装しました。 twostep.py #…
社内向けに書いたドキュメントですが、汎用的で役に立ちそうなので、少し手を入れて公開することにしました。 ログ出力 ファイルの先頭でログ出力用オブジェクトをを初期化し、以下のようにログを書き出してください。 import logging log = logging.getLogg…
Armin Ronacher が blog に Jinja2 のことを書いていました。http://lucumr.pocoo.org/cogitations/2008/04/13/jinja2-making-things-awesome/それによると、Jinja 2.x では、テンプレートの dynamic inheritance や ネームスペース付きのインクルード({% i…
久しぶりに Python の基本的な構文でハマりました。 class ContactForm(BaseForm): class fields(WidgetsList): name = TextField( label_text=u"お名前",) name_kana = TextField( label_text=u"フリガナ",) email = TextField( label_text=u"メールアドレ…
Mako では、下記のように動的に継承元のテンプレートを切り替えられます。 <%inherit file="${context.get('parentTemplate')}"/> 参考 Dynamic Inheritanceposted by id:junya_hayashi
Pyxis のデフォルトテンプレートを mako から Jinja に浮気しようと画策中。Jinja は Django のテンプレ―トから派生したものなのですが、「Sandboxed」を謳っています。 The whole engine is completely sandboxed. A template designer won't be able to mo…
Pyxis のドキュメント生成では、EpyDoc と Sphinx を使っています。Pylons 0.9.6.1 のデフォルトでは Pudge を用いた仕組みが提供されているのですが、Pudge のメンテナンスが遅れている(古いバージョンのKidなどに依存している)ため、うまく動きません。S…
Python 合宿で WSGI を多人数で気軽に動かす方法を聞かれたのですが、 mod_wsgi を使えばできると思って、やってみました。 mod_wsgi のインストール 手元のVM は Ubuntu なので、checkinstall でソースからインストールします。 $ sudo aptitude install ap…
今、Controller でやっていることの一部を MapperExtension SessionExtension でやるとすっきりしそう。MapperExtension, SessionExtension では、insert や commit といった操作の前後にフックをかけられる。Posted by id:junya_hayashi
いつものメンバーで Python Developers Camp 2008 Winter に参加してきました。で、その勢いで Pylons-ja コミュニティを作成しました。Pylons や WSGI にご興味のある方、ぜひご参加ください。Posted by id:junya_hayashi
先日、WSGIはネットワーク図に似ているよね、という話題で盛り上がりました。 そのときに描いた図がこれです。Cascadeミドルウェアがハブ、Routesがルーター、AuthKitがファイアウォールといった感じで対応しています。それからつい最近、Ian Bickingの過去…
いまだにPaste のことをちゃんと理解していなかった。 paste.app_factory paste.composite_factory paste.filter_app_factory このあたりは、ちゃんと押さえておかなくてはならない。 [filter:main] use = egg:Pyxis#pyxiscomposite /blog = blog /wiki = wi…
任意の文字列に \' をマッチさせようとして、混乱したので書きます。 例題 pattern: \' string: backslash \' single quote 以下、raw 文字列を使った場合と使わない場合で、それぞれ書き方の答え pattern も string も raw 文字列 >>> re.findall(r'\\\'', …
結局、次のように実装しました。 # -*- coding: utf-8 -*- import inspect import pylons from pylons.templating import render from mako.template import Template from mako.lookup import TemplateLookup class MakoStringProcessor(object): """ rende…
When your are using some kind of middleware (ex. "Paste#urlmap") in development.ini, maybe you would like to run a command like this... $ paster setup-app --name=wiki development.ini In default, this command would not behave as expected. (…
Pylons において、DBに格納したMakoテンプレートをレンダリングするために調べたことを公開します。 Buffet Pylons は、pylons.templating:Buffet を介してテンプレートをレンダリングしています。こんな感じ。 render() render() Pylons --------> Buffet -…
業務の合間をぬって、Pyxis テックランチをしました。 話題はRoutes の Application 間共有の問題。Pyxis ではフロントと管理画面を別WSGIApplication として実装することを検討しているのですが、これがなかなか難しいです。 Routes の仕組み Routes の主な…
簡単ですが「Pixis」の位置づけをイラストにしました。
今家に帰ってきました。今朝は、せっかく技術的なブログを書いたのですが、誤って消してしまった。orz。今日は、城ヶ崎海岸の門脇吊橋から海沿いを歩き、城ヶ崎海岸駅近くのお店でパスタを食べて、高原の湯で露天風呂につかり、昼寝して、新幹線で帰ってきま…
合宿3日目が始まりました。夜中に雪が降って、一面雪景色です。
煙草を吸う人が一人もいないと言ったら宿の人が驚いていたけれども、みんな酒もあまり飲まない。内2名は、乾杯ビール10mlのみ。これを聞いたらもっと驚くだろうなぁ。宿の人の好意で、会議スペースも使わせてもらうことになったので、今日はホワイトボードな…