Python
python-fire

python-fireで始める簡単CLI開発

背景

pythonでちょこちょこお遊びしてたところ、python-fireなるツールを見つけたので紹介

環境

Python 3.6.1

導入手順

pip install fire

使い方

ガイドはこのページにしっかり書いてあります。

import fire

def add(x, y):
  return x + y

def multiply(x, y):
  return x * y

if __name__ == '__main__':
  fire.Fire()

Fire()をcallしたら、もうコマンドが叩けます。

$ python example.py add 10 20
30
$ python example.py multiply 10 20
200

classを渡すことも可能です。

import fire

class BrokenCalculator(object):

  def __init__(self, offset=1):
      self._offset = offset

  def add(self, x, y):
    return x + y + self._offset

  def multiply(self, x, y):
    return x * y + self._offset

if __name__ == '__main__':
  fire.Fire(BrokenCalculator)

オプションとして渡した値をコンストラクタで利用することが出来ます。

$ python example.py add 10 20 --offset=0
30
$ python example.py multiply 10 20 --offset=0
200

他にもヘルプの表示機能なども可能です。便利!

まとめ

  • すごく簡単にCLIが作れます
  • 開発中のデバッグもしやすくて良い感じ
  • 「ファイル操作がけっこうあってシェルスクリプトだとちょっと書きにくいなー」みたいなシーンに良さそうです