2008-01-01から1年間の記事一覧

SWIG のメモ

%import "hoge.h" は typedef や #define の情報だけを取り出す。 %include "hoge.h" すると関数の extern や struct/union の宣言を元にラッパーコードを生成する。 邪魔な宣言を %ignore hoge_func; して C と共通のヘッダを使うと楽かも。 SWIGWIN とかい…

web.py 0.23 on xrea.com

environment Python 2.3.4 デコレータ 使えねえとかモジュールの配置が違うとか web.py 0.23 flup 1.0 Cheetah 2.0.1 .htaccess .py の CGI 設定 URL のハンドル HTTP_AUTHORIZATION を環境変数に追加 AddHandler cgi-script .py #AddHandler cgi-script-deb…

[Python] 参照渡し

見るも無惨なキモイコードシリーズ というか引数を内部でポンポンいじられるのって単純な話分かりにくいよ。関数で加工した値を再度代入する、という形はやっぱり分かりやすい。 import sys from opcode import * def callee_names(frame_depth=1): result =…

[Python] sys._getframe に渡す depth

>>> import sys >>> for i in range(-1, 100): print '%d: %s' % (i, sys._getframe(i).f_code.co_filename, ) -1: <pyshell#2> 0: <pyshell#2> 1: C:\Python25\lib\idlelib\run.py 2: C:\Python25\lib\idlelib\run.py 3: <string> Traceback (most recent call last): File "<pyshell#2>", line 2, in <module></module></pyshell#2></string></pyshell#2></pyshell#2>…

[Python] Python でオーバーロード、メソッドを

書いた本人に必要性が分からないシリーズ import sys class OverloadMethod(object): def __init__(self): self.functions = [] def __call__(self, *args, **kwargs): for function in self.functions: if len(args) == function.func_code.co_argcount: re…

[Python] Adobe Illustrator の .ai ファイルを PDF に変換する

COM 経由で操作するだけ。Illustrator のファイル形式に対応してるプログラムって全然ないよね。 ダイアログの抑制とか全然できない。超困る。無人処理とかできない。たかだかバッチ処理でスレッド起動して監視かよ。全然手軽じゃない。 import os from win3…

Windows Live Writer

プレビュー画面というか Live Writer 上で編集してる間はいいのですが、投稿時に↓のルールを適用するようです。 iframe エレメントおよび script エレメントは除去される エレメントのイベントハンドラ属性は除去される JavaScript を仕込んだ href 属性は除…

WordPress 2.3.3 および WordPress mu 1.3.3 を MySQL 3 で使う

別に MySQL のバージョン上げればいいだけの話なんですけどね。 今時 MySQL 3 とかね、そもそも 4 ですらかったるいのに。 新規にインストールする際にもコードの修正が必要なはずですが、忘れました。アップグレードする方法。 wp-admin/includes/upgrade.p…

[Python] [ctypes] ctypes について

>>> from ctypes import * >>> class DATA(Structure): _fields_ = [ ('name', c_char_p, ), ] >>> data = DATA() >>> data.name = (c_char * 100)() Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> data.name = (c_char * 100)() TypeError: inc</module></pyshell#9>…

XRCed 用 setup.py

なんか codec 足りない気がする。 import sys from os.path import * from distutils.core import setup import py2exe def manifest(name): return manifest.template % (name, ) manifest.template = """

[Python] [Zope] TAL の使い方

XML を色々な理由で使いたいけど DOM とか XPath とか XSLT とかカオスすぎてイミワカンネ なんで XML で全部やらなきゃいけないんだ。手元に Python があるんだからこれを使えばいい テンプレートを呼び出す TAL の文法とかどっかで確認してください。Zope3…

[Python] [Windows] NTFS のシンボリックリンク、ハードリンク、ジャンクションの情報

NTFS においてシンボリックリンクやらハードリンクやらはリパースポイントという機能で実装されています。 パスがリパースポイントかどうか判別する from ctypes import * FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 kernel = windll.kernel32 GetFileAttri…

[Python] 変数名を取得する

ほとんど dis.disassemble からのコピペ。 実際どういうところで使うんですか ? import sys from opcode import * def name(variable): """get argument variable's name.""" frame = sys._getframe(1) co = frame.f_code code = co.co_code i = 0; n = fram…

Python で Mozilla のデータファイルにアクセスする

Mozilla のデータファイルは Mork とかいうフォーマットらしい。 Python からアクセスするためのライブラリは http://n2.talis.com/svn/playground/danja/python/mork/ が使えて、XML フォーマットに変換してくれる。

__builtins__.dir って何 ?

Python-2.5.1/Objects/object.c:PyObject_Dir を Python に変換するとこんな感じ↓ import sys from types import * def dir(object=object()): """This is an implementation of __builtins__.dir in pure Python.""" result = getattr(object, '__dict__', …