python

Python Developers Fest 2011.10 で発表しました

Pyfes201110 View more presentations from Moriyoshi Koizumi 最近ネタの切れが悪いと言われます…。Package documentation より: This package is a port of a great Perl module called Acme::AKB48 which was created by Hideo Kimura. Although I don’t …

Python Hack-a-thon で発表してきました!!

今回は資料の作成が後手に回ってしまい、運営の方々や発表者の皆様には大変迷惑をおかけしました。さて、今回は ctypes 拡張モジュールに関する内容を発表させていただきました。ctypes拡張モジュールView more presentations from Moriyoshi Koizumi. php-i…

「Boost.Python で C++ から Python の関数オブジェクトをコールする」より簡便な方法

http://d.hatena.ne.jp/ousttrue/20100204/1265291359たまたま目にしたので。 生の PyObject* を触らなくとも、 #include <boost/python.hpp> void call_python_func(boost::python::object func) { func(123); } BOOST_PYTHON_MODULE(calling_python_func) { boost::python::d</boost/python.hpp>…

PythonにC++のconstみたいな、Javaのfinalみたいな修飾子を追加する…

パッチを書きました。 Python 2.6.5 (r265:79063, 魔改造, May 2 2010, 17:41:13) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> def a(): ... readonly a = b = 3 ... a = 3…

Visual C++ 2008 Express Edition + distutils で x64 ターゲットを扱うには

Windows SDK をインストールし、x64 コンパイラ、ヘッダ、ライブラリをインストールしただけではだめで、次の操作が必要だった。C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin にある以下のファイルを以下の場所に移動 (+リネーム) する。 vcv…

Boost.CoroutineとBoost.OptionalとBoost.Pythonを使って、C++クラスの内部イテレータをPythonの外部イテレータとして見せる

追記: うっかり戻り値ポリシーのところで boost::python::return_internal_reference<> を使ってしまい、メモリリークを引き起こしていたので修正しました。Stackless Python であれば continuation が使えるので、Python 側で C++ をまたぐ外部イテレータと…

Boost.Python の機能をざっと紹介してみる

Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介して…

アメーバなうクライアントを Python で書いてみる

タイムライン取得とかつくらんとなー。つけた。http://gist.github.com/253169 # encoding: utf-8 import urllib2 import cookielib import re import xml.dom as dom import xml.dom.minidom as minidom from BeautifulSoup import BeautifulSoup, Tag, Com…

Boost.Python で static property を定義したクラスを含むモジュールをロードしようとするとエラーが出る件

この問題は Python 2.6.3 以降で発生する。たとえば、次のようなモジュールを作成し、 #include <boost/python.hpp> #include <string> class MyClass { public: static std::string get_foo() { return "test"; } }; BOOST_PYTHON_MODULE(_test) { using namespace boost::python; cla</string></boost/python.hpp>…

Ada, Go, Erlang, Scala, Stackless Python, Java (java.util.concurrent), シェルスクリプトの適当すぎる比較

同じようなコードをそれぞれの言語で書いてみた。Ada: with Ada.Text_IO; with Ada.Strings.Unbounded; procedure MyTest is use Ada.Strings.Unbounded; use Ada.Text_IO; task MyTask is entry Hello(Message: String); end; task body MyTask is Received…

Python の文法だけを Ruby っぽくしてみたらどうなるか実験した

こんにちわ、あらびきプログラマー moriyoshi です。Python が生理的に嫌いな人からよく聞く話として「インデントでブロック構造を表す」ってのがありますね。じゃあ中身はそのままで文法だけ Ruby っぽくしたらどうなるんでしょうかね。Python はトークナイ…

Phython がようやくまともに動くようになってきたので告知

Phython は、PHP だけで実装された Python の処理系です。になる予定です。名前から思いついて最近こつこつ作ってきましたが、今のところ、組み込み関数とかはまったく実装されておらず、またスクリプト中でクラス定義もできないなど、ほんとに基本的なもの…

Issue 2517: Error when printing an exception containing a Unicode string

この先が気になって調べてみた。Issue 2517: Error when printing an exception containing a Unicode stringこの問題は デフォルトのエンコーディングが ascii となっている件→デフォルトのエンコーディングが「何のための」エンコーディングのデフォルトな…

llvm-py を使ってみた。

llvm-pyはドキュメントがめちゃくちゃよく書けているのはいいんだけど、バインディングとしての完成度は…普通かな。0 から 9 までの値をそれぞれ 2 倍したものを表示するサンプルを書いてみた。実は with を初めて使った。basic block (BB) のセマンティクス…

メタクラスと__getattribute__()

演算子オーバーロードがどう動いているのかを確かめるため、いろいろ意地悪なサンプルを書いてみる。 class MyType(type): def __init__(self, name, bases, dict): type.__init__(self, name, bases, dict) self.__add__ = lambda self, rhs: 1 def __getat…

Python 2.6.1 + f2py (numpy-1.2.1) で生成されたラッパーが動作しない件

http://projects.scipy.org/numpy/ticket/964 more argument specifiers than keyword list entriesなどとぬかしやがります。ってか下位互換性をキープしてない Python も悪いし、変なフォーマット文字列を PyArg_ParseTupleAndKeywords() に渡している f2py…

RPy の spec ファイルを書いた

R の Python バインディングである RPy の spec ファイルを書いた。

Issue #4753: Faster opcode dispatch on gcc

追記: typo修正。テストコードに余計な「r」が含まれてたのと、「PICコード」とか間抜けなこと書いてたのを。Issue #4753職場でも話題になったので。このパッチのコメントによると、threaded codeにしたほうが分岐予測が効果的に働き、15%-20%ほど速くなると…

参照カウントを Ubigraph + Python で可視化する

Ubigraph を使って、オブジェクトの参照カウントを可視化するスクリプトを書いてみた。といっても見れば分かるようにかなり場当たり的なナイーブな実装で、制約だらけなことに注意。 追記: Google Video の不具合で動画をアップロードしても表示されなかった…

Pyrex / Cython で C++ の参照を扱う方法

またまた頭が悪いせいで予想以上に時間をかけてしまった。例えば次のようなクラスを Pyrex (Cython) でラップすることを考える。 template<typename T_> struct position: public boost::array<T_, 3> { position() { (*this)[0] = 0; (*this)[1] = 0; (*this)[2] = 0; } positio</t_,></typename>…

Vellumを試してみた

Zedがなんだか頑張っているようなのでVellumを試してみた。Pythonで書かれた「超」単純なビルドシステムであったはずが…Python文法のサブセットを解釈するパーザ (Zappで書かれている) を追加したりとか、よく分からないことになっている。リンク先には詳し…

とりあえず、な generic view の object_list の拡張

前回の続き。相変わらず情報収集をサボっていてあんまりよく知らないので自分で作るところからスタート。いいフレームワークっていうのは、調べるより自分で作った方が早いと思わせてくれるなあ。かといってそこで作っちゃ負けだけど。誰も使わないとは思う…

で、こういうことをやってくれるのが欲しい

from django.utils.html import escape # XXX: 忘れがち from django.utils.functional import curry # XXX: 残さず食べたくなる from django.utils.translation import gettext # XXX: ngettext() も from django.template import Library, Node, TemplateS…

PythonのPDF生成ライブラリスイート「reportlab」

reportlab を使って日本語を含む PDF を作る試み。ドキュメントがほとんどないので予想以上に苦労してしまったが、一応日本語なんかが使えるようだ。初めに Java で iText とか作って作ろうかと一瞬思ったが、やめといてよかった〜。でも、作者がきちんとエ…

python.com

Win32 extensions for Python (win32com) のことを考えながら Python の Windows 用バイナリをダウンロードしようと思ってまた python.com にアクセスしてしまった。気をつけねば。

python_fold.vim

http://vim.sourceforge.net/scripts/script.php?script_id=515これはすさまじく便利。なんかこういうプラグインに出会うととろけてしまうなあ。

pycairoのドキュメントがなさすぎる件について

Cのドキュメントを参照してくれ、とpycairoのホームページにはあるけど、それってつまりソースを見ろってことですよね?cairo_matrix_t のラッパの中途半端さ加減がすごい。もともと構造体としては を表現しているわけなのだが、これらの6個の要素 (xx, xy, y…

install コマンドで build base を指定する方法

build コマンドに -b を指定してビルドされた中間ファイルを置く場所を指定することができる。 python setup.py build -b /tmp/hoge しかし、install コマンドは -b (--build-base) を受け付けない。どうしたものかと思っていたら意外な解決法があった。 pyt…

distutils + Visual Studio による拡張モジュールビルド時のメモ

ソース見て調べたので間違ってるかも。バージョンは 2.5.0 (r51309)。 勝手にレジストリを見に行かせないようにし、Python 本体のビルドに使われたコンパイラ以外でビルドする方法 環境変数 DISTUTILS_USE_SDK と MSSDK の両方に 1 をセットする。 "Python w…

ひきつづき DigestAuth: 専用のフィールドタイプを追加

すっかり Django ブログになってしまいました…。さて、例のパッケージをアップデートしました。http://voltex.jp/downloads/Mozo.Django.DigestAuth-0.2.tar.gz変更点は DigestPasswordHashField という専用のフィールドタイプを追加した。これにより、パス…