拡張したい#

このページではhaniwers本体に手を加えずに、新しいコマンドを追加する方法を紹介します。 haniwersは、CLIの作成にTyperパッケージを利用しています。 このTyperパッケージを、あなたのCLIでも利用することで、カスタムコマンドを簡単に追加できます。

haniwers本体のコードは変更したくないけど、個人ツールを導入したい場合などに利用してみてください。

ディレクトリ構成#

your_project/
|--- main.py    # メインのCLIラッパー
|--- custom.py         # 任意のカスタムコード

サンプルコード#

カスタムコマンドとして追加したい内容をcustom.pyに作成してください。 このとき、カスタム関数はTyperを利用したコマンドとして定義してください。

# custom.py
import typer

custom_app = typer.Typer()

@custom_app.command()
def custom_name(*args, **kwargs):
    """任意のカスタムコード"""
    typer.echo("custom.py の custom_name を実行しました")

main.pyはCLIのラッパーとして作成してください。 Typerアプリを作成し、そこにコマンドを追加してください。

# main.py
import typer
from haniwers.cli import app as haniwers_app  ## haniwers本体のCLIをインポート
from custom import custom_app   # あなたのカスタム関数

app = typer.Typer()
app.add_typer(haniwers_app)    # 本体のサブコマンドを統合
app.add_typer(custom_app, name="custom")    # カスタムコマンドを追加

if __name__ == "__main__":
    app()

実行例#

$ python main.py --help

// 通常のhaniwersコマンド
$ python main.py daq

// カスタムコマンド
$ python main.py custom custom_name
// -> custom.pyのcustom_nameを実行しました