タグ

ブックマーク / mopemope.hatenablog.com (6)

  • listにjoinを追加してみた - Doge log

    もちろん、ご期待どおりあらびきな方法です。 src 高度に訓練されたpythonistaは継承で拡張なんてしません。 setup.py from distutils.core import setup, Extension module1 = Extension('listjoin', sources = ['listjoin.c']) setup( name='PackageName', version='1.0', description='This is a demo package', ext_modules = [module1]) listjoin.c #include <Python.h> static PyMethodDef ListMethods[] = { {NULL, NULL, 0, NULL} /* Sentinel */ }; static PyObject *

    listにjoinを追加してみた - Doge log
  • virtualenv - Doge log

    最近、流行りのvirtualenvですが、仕組み的なものにあまり触れられてないように 思えたので書いてみます。 機能 とりあえずvirtualenvの機能は ライブラリがまっさらな状態な環境を作る 作られた環境に対してのみモジュールをインストールできる です。 これを実現する仕掛けはそれほど難しくありません。 (virtualenv自体も基的に1ファイルのモジュールです。) とりあえず簡単に見ていきます。 ライブラリパス まっさらなライブラリを持った状態のpython環境はどうやって作るのでしょう? pythonは自分自身のパスの上位のlib/pythonx.xをライブラリとして認識します。 (pythonをソースからprefix指定でビルドした事があればわかると思います。) . |-- bin | `-- python `-- lib `-- python2.5 `-- ここが標準ライ

    virtualenv - Doge log
  • モダンPython開発環境入門 - Doge log

    今日、KevinさんところにBespinの話が出ててそいつを見てて思った。 最近のpython開発環境はこんな感じだろうと。 エディター 軽量なものが好まれてるのはまあどこもみんな同じだろう。 vim emacs TextMate MacだとTextMateを使ってる人がやはり多いっぽい。 ターミナル 素。 screen必須。 必須な理由はvirtualenvでactivateするからかな。 utilityモジュール もうほぼ鉄板でpip, virtualenvを使ってるっぽい。 pip virtualenv paver Bespinの動画ではpaver軽油で色々やってる感じだった。 いろんなタスクがpythonスクリプトでざくざく書けるので流行るかも知れない。 VCS まあこれももう鉄板かも。 git mercurial その他 環境に関係ないけど傾向。 sqlalchemyは市民権を得

    モダンPython開発環境入門 - Doge log
  • pythonistaのためのphp用の開発サーバ - Doge log

    phpで開発する時の開発用サーバとかよくわからなかった。 未だにapacheとか云々するのもなんだかなあと思うんだけど。 まあpythonistaならwphp使うよねって話。 wphp http://pythonpaste.org/wphp/ こいつはwsgiのインターフェイスでphpをfastcgiで動かしてくれる。 from wphp import PHPApp from wsgiref.simple_server import make_server my_php_app = PHPApp('/path/to/php-files/', php_options={'magic_quote_gpc': 'Off'} ) httpd = make_server('', 8000, my_php_app) httpd.serve_forever() とまあこれでOK。 でもデフォルトでは基

    pythonistaのためのphp用の開発サーバ - Doge log
  • Python力を高めるためのライブラリコードリーディング - Doge log

    id:yuroyoropython力を高めるとか言ってたのを聞いて、自分の場合どうだったかなあと。 思い入れがあるものを簡単に。まあ参考になれば。 pure python系 まずはpure python系 django 結構python初心者のころからdjangoのソースは読んでた。 多分、今ほど大きくなかったからだと思う。 学べることはPEP8、__import__の使い方、デコレータによるトランザクション管理などなど多岐にわたる。 但し、いきなりモデル周りに手を出すときついのでWEB側の入り口である方 django.core.handlers.base.py ぐらいがいいかなと。 middlewareってどうやって呼び出し、実行してるか、urlの解決方法などから入ると割りととっつきやすいかと。 フルスタック故カバーしてる範囲が多いのでずっと参考になる。 標準ライブラリのソース あんま

    Python力を高めるためのライブラリコードリーディング - Doge log
  • Pluginシステムの実装 - Doge log

    ちょっとPlugin的なものを実装しようとしてたら行き着いた。 http://lucumr.pocoo.org/2006/7/3/python-plugin-system importする仕組みはよくあるのでわかるんだけど。 読み込んだモジュールからPluginクラスを抽出するスマートな方法が書いてあったので紹介しておく。 class Plugin(object): pass class MyPlugin1(Plugin): pass class MyPlugin2(Plugin): pass Plugin.__subclasses__() __subclasses__()で一発でとれる。 baseのtuple(スーパークラスのリスト)はよく使うんだけどsubclassも取れるのは忘れてた。 で自分でも書いてみた。 plugin.py import sys import os import

    Pluginシステムの実装 - Doge log
  • 1