拡張したい#
このページでは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を実行しました