kittywalk20030108出たよ。期待してるのでちと辛めのツッコミを。

・True を使ってるから Python 2.3a1 でないとダメポ。仕様?

・~/.kittywalk/config がデフォルト設定で上書きされる。たぶんバグ。

・実体参照の置換処理に re.sub() を使わないのはなぜ?
パフォーマンスが全然違うよ。それと、実体参照の正規表現が
&#?[A-Za-z0-9]+?; になってるけど二つ目の ? は要らなくない?

・んなこた分かってると言われるのを覚悟で書くと、
match = re.search(u"&#?[A-Za-z0-9]+?;", text[start:])
text[start:] のような部分文字列を作る処理は重いのでできるだけ
避けた方がいい。この場合は re.search(regexp, text, start) と書く。

はっきり言って Python は新しい文字列オブジェクトを作る処理が重い。
先回りしとくと text += substring のような処理も同様。部分文字列を
いくつも連結するような処理はリストに append して後で join する方が軽い。

・re.match() や re.search() は呼び出されるたびに正規表現文字列を
コンパイルする。何度も使う正規表現は re.compile() で予めコンパイル
しておく方が効率がよい。

漏れは蛇使いとしては古参の部類に入ると思うんで最近のバージョンの
パフォーマンスの改良には疎い。まあ話半分で聞いてくれ。