python-ex-util.el機能追加
python-ex-util.elに機能を追加した。以前に追加したものも含めているけれど、追加した機能は以下のとおり
- (virtualenvの環境も考慮した)flymakeの設定を追加
- defaultで機能は無効
- moduleをinsertできる関数(anything-insert-module)を追加
- testを書き始めた(chibi-test)
まだ、これらの機能には不満なところがいくつかある。
不満なところ
3つくらいある
import文のサポート不満
moduleのimport文(python)挿入をサポートする機能は作ったけれど、以下の形式にしか対応していない
import foo
まだ以下の形式はサポートしていない。
import foo.bar.baz as bz from foo import Foo
特にfrom foo import Fooの形式の補完をしたい。たぶん、実際にモジュールをpythonに読み込ませてリストを取得すれば良さそう。
でも、問題があって、djangoのモジュールを読み込むには色々とおまじないが必要(moduleのimport時にdjangoが裏でvalidateを行っているため)
なので現在保留中
virtualenvを利用した環境では実行が遅い。
これはvirtualenvwrapperのworkonを使っているせいもある。
色々は計ってみたところ、直接bin/activateを読み込んだ方が速い。なのでこちらに変えたい。
以下は、pyramidのチュートリアルのファイル(tasks.py)をvirtualenv上のpep8で構文チェックしてみたときの速度の違い。
はじめはvirtualenvwrapperのworkonを使ってる。次は、直接bin/activateを読み込んでいる。
$ time /bin/zsh -c "source ~/.virtualenvwrapperrc && workon pyramid && pep8 ~/.virtualenvs/pyramid/tutorial/tasks/tasks.py" /bin/zsh -c 0.48s user 0.07s system 84% cpu 0.653 total $ time /bin/zsh -c "source ~/.virtualenvs/pyramid/bin/activate && pep8 ~/.virtualenvs/pyramid/tutorial/tasks/tasks.py" /bin/zsh -c 0.15s user 0.00s system 89% cpu 0.168 total
bin/activateを直接読み込んだ方が速い。
flymakeの部分途中。
たぶん、もう少し無駄を省略できる。
misc
testを書くと頭が整理されて良い。まだ途中。