explain_program5 プログラム仕様
概要: プログラムコードをAIでドキュメント化するツール。 詳細説明:
このスクリプトは、指定されたプログラムコードファイルの内容をAI(OpenAIまたはGoogle Gemini)に送信し、 そのコードの利用方法や詳細説明を記述したMarkdown形式のドキュメントを生成します。 INIファイルを通じてプロンプトテンプレートやAI設定を柔軟にカスタマイズできます。 複数のファイルを一括で処理し、既存ファイルの更新チェックやスキップ機能も提供します。
関連リンク: explain_program5.py 技術ドキュメント
- ai.explain_program5.get_program_type(path)
概要: ファイルパスに基づいてプログラムの種類を判定する。 詳細説明:
与えられたファイルパスから、そのプログラムが「ライブラリ(lib)」か 「メインスクリプト(main)」かを判断します。 具体的には、拡張子が`.pm`であるファイル、またはファイル名が`tk`で始まるファイルは ライブラリとして扱われ、それ以外はメインスクリプトと見なされます。
- パラメータ:
path -- str: 判定対象のファイルパス。
- 戻り値:
str: プログラムの種類を示す文字列('lib' または 'main')。
- ai.explain_program5.initialize()
概要: コマンドライン引数パーサーを初期化し、設定する。 詳細説明:
プログラムコードをAIでドキュメント化するためのコマンドライン引数を定義します。 対象ファイルのワイルドカードパターン、出力ファイル名、INI設定ファイルパス、 使用するAI API、プログラムの種類、更新モード、上書きモード、実行一時停止の有無などを設定します。
- 戻り値:
argparse.ArgumentParser: 設定済みのArgument Parserオブジェクト。
- ai.explain_program5.main(args)
概要: プログラムの主要な処理を実行する。 詳細説明:
AI設定とプロンプトINIファイルを読み込み、指定されたファイルパターンに一致する すべてのコードファイルを順次処理します。 各コードファイルの内容を元に、選択されたAIモデルとプロンプトテンプレートを使用して ドキュメントを生成し、指定された出力ファイルに保存します。 既存ファイルの更新日時をチェックし、`overwrite`や`update`オプションに基づいて 処理をスキップする機能も含まれます。
- パラメータ:
args -- argparse.Namespace: コマンドライン引数を格納するオブジェクト。
- 戻り値:
None
- ai.explain_program5.read_args(parser)
概要: コマンドライン引数を解析し、結果を表示する。 詳細説明:
`argparse.ArgumentParser`オブジェクトを使用して、 コマンドラインから渡された引数を解析します。 解析された引数の値は、デバッグ目的で標準出力に表示されます。
- パラメータ:
parser -- argparse.ArgumentParser: 設定済みのArgument Parserオブジェクト。
- 戻り値:
argparse.Namespace: 解析されたコマンドライン引数を格納するオブジェクト。
- ai.explain_program5.read_ini(inifile=None)
概要: 指定されたINIファイルを読み込み、設定を辞書として返す。 詳細説明:
key=value`形式の行を解析し、設定を辞書として格納します。 `"""`または'''`で囲まれた複数行の値をサポートし、 値の中に含まれる`$VAR`形式の変数は、他のINI設定値で展開されます。
- パラメータ:
inifile -- str, optional: 読み込むINIファイルのパス。指定されない場合は、`search_file`関数で検索されます。
- 戻り値:
dict: INIファイルから読み込んだ設定を含む辞書。
- 例外:
FileNotFoundError -- 指定されたINIファイルが見つからない場合。
- ai.explain_program5.search_file(infile=None)
概要: 指定されたファイル、またはデフォルトのINIファイルを検索する。 詳細説明:
infile`が指定された場合はそのファイルを、指定されなかった場合は 現在のスクリプト名.ini`をデフォルトのINIファイル名として検索します。 検索は、まずカレントディレクトリ、次にスクリプトが置かれているディレクトリの順に行われます。
- パラメータ:
infile -- str, optional: 検索するファイルパス。指定されない場合はデフォルトのINIファイルを検索します。
- 戻り値:
str or None: 見つかったファイルの絶対パス、見つからない場合はNone。