add_docstring プログラム仕様

PythonコードにSphinx形式のDocstringを自動追加するツール。

このスクリプトは、指定されたPythonソースファイルの内容をAIモデルに送信し、 Sphinx形式のDocstringが挿入された完成版のコードを生成します。 コマンドライン引数で入力ファイルパターン、出力ファイル名、 INIファイルによるプロンプト設定、使用するAIモデルなどを指定できます。 生成されたDocstringは、関数やクラスの概要、詳細説明、引数、戻り値などを 日本語で記述します。既存のファイルを上書きするか、更新日時でスキップするかなど、 柔軟なファイル処理オプションを提供します。

add_docstring.py の技術ドキュメント

ai.add_docstring.initialize()[ソース]

コマンドライン引数パーサーを初期化し、設定する。

argparse.ArgumentParser を初期化し、ツールの説明を設定します。 必要な引数(pattern, output)とオプション引数(--inifile, --api, --update, --overwrite, --pause)を追加します。 default_ini_name は実行スクリプト名に基づいて生成されます。

戻り値:

argparse.ArgumentParser: 設定済みのパーサーオブジェクト。

ai.add_docstring.main()[ソース]

スクリプトのメイン処理を実行する。

initializeread_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ファイルが見つからない場合。

ai.add_docstring.search_file(infile=None)[ソース]

指定されたファイルを作業ディレクトリとスクリプトディレクトリから検索する。

infile が指定されない場合、実行スクリプト名からデフォルトのINIファイル名を生成します。 まずカレントディレクトリでファイルを検索し、見つからない場合はスクリプトが 配置されているディレクトリで検索します。

パラメータ:

infile -- str, optional: 検索対象のファイル名。デフォルトはNone。

戻り値:

str or None: 見つかったファイルの絶対パス、またはNone。