pep8ってコマンドが便利すぎてちょくちょく叩くんだけど、それでも叩くの面倒になったりすることはある。正直、こういうチェッカーは空気を読んで走って欲しいですね。
ユニットテストに組み込んでるのを見つけて、おーいいじゃん素敵じゃんとか思ってたんだけどもうちょい身近に感じたいなぁと。
で、Growlの出番。セーブするたびにpep8チェックが走って結果が通知されるようにした。
でもこの通知はすぐに消える(はやすぎ)。どこがおかしいのかよく見ようとすると消えてしまってちょっと困る。逆にstickyをTrueにすると消えずに残っているのでそれはそれでうざい。
神の御加護ってのはそんなもんなのかなぁと思った。あと、アイコンをPythonの蛇ロゴにしたほうがいいかなぁと。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #!/usr/bin/env python # -*- encoding:utf-8 -*- import os from time import sleep import sys import commands import Growl def get_mtime(f): return os.stat(f).st_mtime def notify(dirname): g = Growl.GrowlNotifier( applicationName='PEP8 Notify', notifications=['Error']) g.register() pyfiles = [f for f in os.listdir(dirname) if ".py" in f] pystat = dict([[pyfile, get_mtime(pyfile)] for pyfile in pyfiles]) while 1: sleep(1) for f in pyfiles: new_mtime = get_mtime(f) if pystat[f] != new_mtime: pystat[f] = new_mtime result = commands.getoutput("pep8 %s" % os.path.abspath(f)) if result == '': result = 'pep8 OK!!!' g.notify( noteType='Error', title='PEP8', description=result, sticky=False ) if __name__ == '__main__': dirname = os.path.abspath(os.curdir) if len(sys.argv) > 2: dirname = sys.argv[1] notify(dirname) |
で、pep8走らせると長いStringが長すぎ!ってよく怒られるんだけど、長いURLとかしょうがないじゃん、無理して分割しても読みにくくなるじゃんと思うんだけどどうしたらよいんだろうか?