pycommentというライブラリを作りました

github.com

pycommentというライブラリを作くりました。 rubytoolsのxmpfilterに似たものをpythonでもやってみたいというやつです。

install

installはいつもどおりpipで。

$ pip install pycomment

how to use

使いかたはpycommentコマンドを使います。するとpythonのコード中の # => 部分にその時の値が追加されます。

例えば、以下の様なコードが

00.py

def main():
    sum([
        10,
        20,
        30,
    ])  # =>


1 + 1 + 1 + 1 + 1 + 1 + 1  # => 

(1 + 2
 + 3)  # =>

main()

こうなります。しっかり関数の中にあるコメントも認識してくれます。

def main():
    sum([
        10,
        20,
        30,
    ])  # => 60


1 + 1 + 1 + 1 + 1 + 1 + 1  # => 7

(1 + 2
 + 3)  # => 6

main()

実際には以下のようなコマンドを実行します。

$ pycomment 00.py

# 直接上書きしたい場合には --inplaceをつける
$ pycomment --inplace 00.py
replace: /tmp/tmpuv00x0cl -> 00.py

もちろん、過去のコメントが残ってしまった以下の様な場合も、更新してくれます。

x = 2 + 3  # => 4

こういう形に。

x = 2 + 3  # => 5

あるいは、標準出力も表示してくれます。

import sys

print("hello")
print("bye", file=sys.stderr)
print("hello")

こういう形に。

import sys

print("hello")
print("bye", file=sys.stderr)
print("hello")
# -- stdout --------------------
# >> hello
# >> hello

ちなみに例外が出た場合には。inplaceを付けても書き換わりません。

1 + 1  # =>
1 / 0  # =>
1 + 1  # =>

変化なし。

ちょっとしたコード例を記事に残すのに便利なんじゃないでしょうか。