tkparams.py ライブラリ技術ドキュメント
ライブラリの機能や目的
tkparams.py は、アプリケーションのパラメータ管理を目的としたPythonライブラリです。主にINIファイル形式の設定ファイルとの間でパラメータを読み書きし、管理するための tkParams クラスを提供します。このライブラリの主な機能と解決する課題は以下の通りです。
INIファイルからのパラメータ読み込み: 設定ファイル(INI形式)から、アプリケーションが必要とする多様なデータ型(文字列、数値、真偽値、リスト、辞書など)のパラメータを効率的に読み込みます。
パラメータの永続化: 現在のアプリケーションの状態やユーザー設定をINIファイルに保存し、次回の起動時に復元できるようにします。
パラメータ管理とアクセス: オブジェクト指向のインターフェースを通じて、名前(キー)でパラメータにアクセスし、その値を設定・取得できます。
パラメータへの説明付与: 各パラメータに説明文を付与し、デバッグやドキュメント作成時に役立つ情報を提供します。
コマンドライン引数の記録: アプリケーションが実行された際のコマンドライン引数をパラメータとして記録する機能を提供します。
多様なデータ型のサポート: 文字列だけでなく、数値や真偽値、さらにはリストや辞書形式のパラメータもINIファイルで管理できます。
このライブラリは、特にGUIアプリケーションや、多数の設定項目を持つスクリプトにおいて、設定管理の複雑さを軽減し、コードの保守性を向上させることを目指しています。
importする方法
tkparams.py ライブラリを他のPythonプログラムから利用するには、tkParams クラスをインポートします。
from tkparams import tkParams
必要な非標準ライブラリとインストール方法
tkparams.py は、以下の非標準ライブラリ(tklib パッケージの一部)に依存しています。
tklib.tkobjecttklib.tkutilstklib.tkinifiletklib.tkre
これらのライブラリは、通常 pip コマンドを使用してインストールできます。
pip install tklib
importできる変数と関数
tkparams.py ライブラリは、主に tkParams クラスと、スクリプトが直接実行されたときに呼び出される main 関数を提供します。
クラス
tkParams
INIファイルベースのパラメータ管理機能を提供するクラスです。tklib.tkobject.tkObject を継承しています。
__init__(self, parameter_file=None, app=None, **args)tkParamsクラスのコンストラクタです。引数:
parameter_file(str, オプション): 管理するINIファイルのパス。app(object, オプション):tklib.tkapp.tkAppなどのアプリケーションオブジェクト。パラメータの説明文の翻訳やログ出力に利用されます。**args: オブジェクトの初期属性として設定される任意のキーワード引数。
戻り値: なし
__del__(self)デストラクタです。特別な処理は行いません。
引数: なし
戻り値: なし
__str__(self)オブジェクトの文字列表現を返します。
ClassPath()メソッドの結果(クラスの完全パス)を返します。引数: なし
戻り値:
str- クラスの完全パス。
dict(self)tkParamsオブジェクトの内部辞書(__dict__)を返します。これには、インスタンスに設定された全てのパラメータと内部変数が含まれます。引数: なし
戻り値:
dict- オブジェクトの内部辞書。
copy(self)現在の
tkParamsオブジェクトのシャローコピーを作成し、新しいtkParamsオブジェクトとして返します。引数: なし
戻り値:
tkParams- 新しいtkParamsオブジェクトのインスタンス。
get_param_dict(self)dict()メソッドと同じく、tkParamsオブジェクトの内部辞書(__dict__)を返します。引数: なし
戻り値:
dict- オブジェクトの内部辞書。
get_path(self, path)INIファイルのパスを取得または設定します。
引数:
path(str, オプション): 新しいINIファイルのパス。Noneの場合、現在のパスを返します。
戻り値:
str- 現在設定されているINIファイルのパス。
keys(self)オブジェクトに設定されているパラメータのキーを返します。
引数: なし
戻り値:
dict_keys- パラメータキーのビュー。
get(self, key, defval=None)指定された
keyに対応するパラメータの値を返します。keyが存在しない場合はdefvalを返します。引数:
key(str): 取得したいパラメータの名前。defval(any, オプション): パラメータが存在しない場合に返すデフォルト値。デフォルトはNone。
戻り値:
any- パラメータの値、またはデフォルト値。
set(self, key, val, explanation=None)指定された
keyにvalを設定し、オプションで説明文explanationを関連付けます。引数:
key(str): 設定したいパラメータの名前。val(any): 設定する値。explanation(str, オプション): パラメータの説明文。
戻り値:
any- 設定された値val。
set_attr(self, key, val, explanation=None)set()メソッドのエイリアスです。機能はset()と全く同じです。引数:
key(str): 設定したいパラメータの名前。val(any): 設定する値。explanation(str, オプション): パラメータの説明文。
戻り値:
any- 設定された値val。
get_explanation(self, key)指定された
keyに関連付けられた説明文を返します。appオブジェクトが設定されている場合、説明文は翻訳される可能性があります。引数:
key(str): 説明を取得したいパラメータの名前。
戻り値:
strまたはNone- パラメータの説明文、または説明が設定されていない場合はNone。
get_print_func(self, app, use_warning)パラメータ出力に使用する関数 (
print、app.print、またはapp.print_warning) を決定し、返します。引数:
app(object): アプリケーションオブジェクト。use_warning(bool):Trueの場合、app.print_warningを優先して使用します。
戻り値:
function- ログ出力に使用する関数。
printinf(self, app=None, use_warning=False)全てのパラメータとその値、および設定されている場合は説明文をコンソールに出力します。
引数:
app(object, オプション): アプリケーションオブジェクト。指定しない場合、インスタンスの_app属性を使用します。use_warning(bool, オプション):Trueの場合、警告メッセージとして出力します。
戻り値: なし
print_parameters(self, heading="", sort_by_keys=True, exclude_keys=[], app=None, use_warning=False)特定の条件に基づいてパラメータ情報をコンソールに出力します。キーでソートしたり、特定のキーを除外したりできます。アンダースコア
_で始まるキーや値がNoneのキーはスキップされます。引数:
heading(str, オプション): 出力の冒頭に表示する見出し。sort_by_keys(bool, オプション):Trueの場合、キーのアルファベット順(大文字小文字を区別しない)でソートして出力します。exclude_keys(list, オプション): 出力から除外するキーのリスト。app(object, オプション): アプリケーションオブジェクト。指定しない場合、インスタンスの_app属性を使用します。use_warning(bool, オプション):Trueの場合、警告メッセージとして出力します。
戻り値: なし
print_parameters_warning(self, heading="", sort_by_keys=True, app=None)print_parametersと同様にパラメータ情報を出力しますが、必ずapp.print_warningを使用して警告として出力します。アンダースコア_で始まるキーや値がNoneのキーはスキップされます。引数:
heading(str, オプション): 出力の冒頭に表示する見出し。sort_by_keys(bool, オプション):Trueの場合、キーのアルファベット順(大文字小文字を区別しない)でソートして出力します。app(object, オプション): アプリケーションオブジェクト。指定しない場合、インスタンスの_app属性を使用します。
戻り値: なし
get_string(self, path=None, section=None, key=None, def_val=None, is_print=False)指定されたINIファイルから、セクションとキーに対応する文字列値を取得します。
引数:
path(str, オプション): INIファイルのパス。Noneの場合、オブジェクトに設定されているパスを使用します。section(str, オプション): 読み込むセクション名。key(str, オプション): 読み込むキー名。def_val(str, オプション): キーが存在しない場合に返すデフォルト値。is_print(bool, オプション): 読み込み処理に関する情報を出力するかどうか。
戻り値:
str- 読み込んだ文字列値、またはデフォルト値。
write_string(self, path=None, section=None, key=None, value=None, outfile=None, is_print=False)指定されたINIファイルに、セクションとキーに対応する文字列値を書き込みます。
引数:
path(str, オプション): INIファイルのパス。Noneの場合、オブジェクトに設定されているパスを使用します。section(str, オプション): 書き込むセクション名。key(str, オプション): 書き込むキー名。value(str, オプション): 書き込む値。outfile(file object, オプション): 出力先のファイルオブジェクト。指定しない場合、pathで指定されたファイルに書き込みます。is_print(bool, オプション): 書き込み処理に関する情報を出力するかどうか。
戻り値:
any-write_string関数の戻り値。 (注: このメソッドは、tkIniFileオブジェクトのwrite_stringメソッドではなく、外部のwrite_string関数を呼び出そうとします。しかし、そのような関数はライブラリ内で定義されていません。)
read_parameters(self, path=None, section=None, AddSection=False, ignore_keys=[], terminator=None, IsPrint=True, follow_vartype=True, read_inifile=False)INIファイルからパラメータを読み込み、現在の
tkParamsオブジェクトの属性として設定します。リスト、タプル、辞書などの複合型も処理します。引数:
path(str, オプション): INIファイルのパス。Noneの場合、オブジェクトに設定されているパスを使用します。section(str, オプション): 読み込むセクション名。AddSection(bool, オプション):Trueの場合、セクション名もキーの一部として追加します。ignore_keys(list, オプション): 読み込みを無視するキーのリスト。terminator(str, オプション): 値の終端を示す文字列。この文字列以降は無視されます(例: コメント区切り)。IsPrint(bool, オプション): 読み込み処理に関する情報を出力するかどうか。follow_vartype(bool, オプション):Trueの場合、既存のパラメータの型に合わせて読み込んだ値を変換します。read_inifile(bool, オプション):Trueの場合、inifileキーを読み込みます。
戻り値:
dictまたはNone- 読み込んだ全パラメータを含む辞書、またはエラー発生時はNone。
save_parameters_by_keys(self, prmfile, heading=None, section=None, keys=None, exclude_keys=[], save_commandline=False)指定されたキーのパラメータのみをINIファイルに保存します。
引数:
prmfile(str): 保存先のINIファイルのパス。heading(str, オプション): INIファイルに書き込む見出し(コメント)。section(str, オプション): 書き込むセクション名。keys(list, オプション): 保存するキーのリスト。Noneの場合、全てのキーが対象となります。exclude_keys(list, オプション): 保存から除外するキーのリスト。save_commandline(bool, オプション):Trueの場合、commandlineパラメータも保存します。
戻り値: なし
save_parameters(self, path=None, section='Preferences', keys=None, exclude_keys=[], otherparams=None, sort_by_keys=True, other_section='OtherParameters', update_commandline=True, save_commandline=False, save_inifile=False, IsPrint=True)現在の
tkParamsオブジェクトの全てのパラメータをINIファイルに保存します。コマンドライン引数、リスト、辞書などの複合型も適切に処理します。引数:
path(str, オプション): 保存先のINIファイルのパス。Noneの場合、オブジェクトに設定されているパスを使用します。section(str, オプション): メインのパラメータを書き込むセクション名。デフォルトは 'Preferences'。keys(list, オプション): 保存するキーのリスト。Noneの場合、tkParamsオブジェクトの全ての属性が対象となります。exclude_keys(list, オプション): 保存から除外するキーのリスト。otherparams(dict, オプション): 別のセクションに保存する追加パラメータの辞書。sort_by_keys(bool, オプション):Trueの場合、キーのアルファベット順(大文字小文字を区別しない)でソートして保存します。other_section(str, オプション):otherparamsを書き込むセクション名。デフォルトは 'OtherParameters'。update_commandline(bool, オプション):Trueの場合、現在のコマンドライン引数をcommandlineパラメータとして更新します。save_commandline(bool, オプション):Trueの場合、commandlineパラメータもINIファイルに保存します。save_inifile(bool, オプション):Trueの場合、inifileパラメータも保存します。IsPrint(bool, オプション): 保存処理に関する情報を出力するかどうか。
戻り値:
bool- 保存が成功した場合はTrue、失敗した場合はFalse。
関数
main()
main()スクリプトが直接実行された際に呼び出される関数です。このライブラリが実行可能ではないことを示すメッセージを標準出力に出力します。
引数: なし
戻り値: なし
main scriptとして実行したときの動作
tkparams.py ファイルを直接Pythonインタープリタで実行した場合、if __name__ == "__main__": ブロック内の main() 関数が呼び出されます。この main() 関数は、以下のメッセージを標準出力に出力します。
This is library, not runnable
これは、tkparams.py が単独で実行されることを意図したアプリケーションではなく、他のPythonプログラムからインポートされて使用されるライブラリであることを示しています。