PythonでCLIアプリケーションを作成する際に便利なフレームワークとして、cmdkitがあります。このフレームワークはPythonの標準ライブラリであるargparserを利用し、クラス定義でCLIアプリケーションを手軽に定義できます。

cmdkitについて

cmdkitは、Pythonのコマンドラインアプリケーションに必要ないくつかの共通パターンを実装したもので、コンソールアプリケーションの開発するために必要な手続きを減らすことを目的に開発されています。cmdkitを使って開発されたアプリケーションは、実装が簡単で、メンテナンスが容易で、理解しやすいものになります。cmdkitはPython 3.7以降で動作します。

インストール

cmdkitはpipでインストールを行えます。

$ pip install cmdkit

機能概要

cmdkitApplicationクラスは、優れたエントリーポイントのための定型文を提供します。このApplicationクラスを継承してアプリケーションを作成します。

import sys
from cmdkit.app import Application, exit_status
from cmdkit.cli import Interface, ArgumentError
from cmdkit.config import Namespace

APP_NAME = 'demo_simple'
APP_DESCRIPTION = """\\
Description for demo application.
"""
APP_USAGE = f"""\\
Usage:  {APP_NAME}  [-h|--help] {APP_DESCRIPTION}  
"""
APP_HELP=f"""\\
{APP_USAGE}  

Options:
-h, --help        show this message and exit.
"""

class DemoApp(Application):
    interface = Interface(APP_NAME, APP_USAGE, APP_HELP)
    name: str = None
    interface.add_argument('name')

    def run(self):
        print(f'Hello  {self.name}')

def main() -> int:
    return DemoApp.main(sys.argv[1:2])

if __name__ == '__main__':
    main()

このスクリプトはコマンドラインで与えた引数を表示するだけのものです。

$  python 01_demoapp.py Python
Hello Python

引数が省略されるか、 -h--help オプションが与えられるとヘルプメッセージを表示します。

$  python 01_demoapp.py
Usage: demo_simple  [-h|--help] name
Description  for  demo application.

$  python 01_demoapp.py  -h
Usage: demo_simple  [-h|--help] name
Description  for  demo application.

Options:
-h,  --help         show this message and exit.

$  python 01_demoapp.py  --help
Usage: demo_simple  [-h|--help] name
Description  for  demo application.

Options:
-h,  --help         show this message and exit.

Interfaceクラスは3つの引数を受け取り、標準ライブラリのargparse.ArgumentParserクラスの動作を変更し、必要に応じていくつかの単純な例外を発生させます。Applicationクラスはこの例外を捕獲してヘルプメッセージやバージョン情報を表示させます。

以上がcmdkitの基本的な使い方となります。より詳細な情報や使用例については、公式ドキュメンテーションをご覧ください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です