2010年5月9日日曜日

pep8 を使ってみた



PEP 8 -- Style Guide for Python Code という Python のコーディングスタイルがあります。これに沿って書くとコードが読みやすくなるよ、というものなんですが、ソースコードがこの pep8 に沿っているかどうか確認するツールがあります。Python Package Index : pep8 0.6.1です。


試しにインストールしてみましたが、日本語で書かれたソースに対してこのツールを使うと 80 文字を越えてないはずの文字列に対して



test.py:3:80: E501 line too long (89 characters)


といったような警告を出してきます。


おそらく str 型のまま文字列を扱ってるんだろうな、ということで修正することにします。



$ wget http://pypi.python.org/packages/source/p/pep8/pep8-0.5.0.tar.gz#md5=512a818af9979290cd619cce8e9c2e2b
$ tar zxvf pep8-0.5.0.tar.gz
$ cd pep8-0.5.0


ディレクトリ内に pep8.py というファイルがあったのでこれを修正しました。



$ diff pep8.py.orig pep8.py
211c211
< length = len(physical_line.rstrip())
---
> length = len(physical_line.rstrip().decode('utf-8'))


こんな感じで、(おそらく)str 型のままだった箇所を unicode 型に decode しました。


UTF-8 で決め打ちしちゃったのでどっかでこける可能性もありますが…。