add_docstring プログラム仕様
PythonコードにSphinx形式のDocstringを自動追加するツール。
このスクリプトは、指定されたPythonソースファイルの内容をAIモデルに送信し、 Sphinx形式のDocstringが挿入された完成版のコードを生成します。 コマンドライン引数で入力ファイルパターン、出力ファイル名、 INIファイルによるプロンプト設定、使用するAIモデルなどを指定できます。 生成されたDocstringは、関数やクラスの概要、詳細説明、引数、戻り値などを 日本語で記述します。既存のファイルを上書きするか、更新日時でスキップするかなど、 柔軟なファイル処理オプションを提供します。
- ai.add_docstring.initialize()[ソース]
コマンドライン引数パーサーを初期化し、設定する。
argparse.ArgumentParser を初期化し、ツールの説明を設定します。 必要な引数(pattern, output)とオプション引数(--inifile, --api, --update, --overwrite, --pause)を追加します。 default_ini_name は実行スクリプト名に基づいて生成されます。
- 戻り値:
argparse.ArgumentParser: 設定済みのパーサーオブジェクト。
- ai.add_docstring.main()[ソース]
スクリプトのメイン処理を実行する。
initialize と read_args を呼び出してコマンドライン引数を処理します。 AI設定ファイル (ai.env) を読み込み、指定されたINIファイルからプロンプト設定を取得します。 ワイルドカードパターンに合致するファイル群を処理し、各ファイルについて 更新・上書きルールに従って処理をスキップするか判断します。 ファイル内容を読み込み、プロンプトを構築してAIモデルを呼び出します。 AIからの応答からDocstringを抽出し、指定された出力ファイルに書き込みます。 エラー発生時はメッセージを表示し、スタックトレースを出力します。 API呼び出しの負荷軽減のため、ファイル処理ごとに1秒待機し、 pause 引数が設定されている場合、終了前にユーザー入力を待ちます。
- 戻り値:
None
- 例外:
SystemExit -- INIファイルの読み込み失敗時や、マッチするファイルがない場合に発生。
- ai.add_docstring.read_args(parser)[ソース]
ArgumentParserから引数を解析し、その値を表示する。
parser.parse_args() を呼び出して引数を解析し、 解析された引数の値を標準出力に表示します。
- パラメータ:
parser -- argparse.ArgumentParser: 初期化済みのArgumentParserオブジェクト。
- 戻り値:
argparse.Namespace: 解析された引数を格納するオブジェクト。
- ai.add_docstring.read_ini(inifile=None)[ソース]
INIファイルの内容を読み込み、辞書として返す。
search_file を使用してINIファイルのパスを特定し、ファイルを読み込みます。 # または ; で始まる行はコメントとしてスキップされます。 key = value 形式の行を解析し、トリプルクォート (""" または ''') を 使用した複数行の値をサポートします。また、読み込み後には $VAR 形式の 変数を展開します。
- パラメータ:
inifile -- str, optional: 読み込むINIファイルのパス。デフォルトはNone。
- 戻り値:
dict: INIファイルから読み込んだ設定を格納する辞書。
- 例外:
FileNotFoundError -- 指定されたINIファイルが見つからない場合。