tklib.tkargs のソースコード

"""
コマンドライン引数を管理するための tkArgs クラスを提供するモジュール。

このモジュールは、argparse.ArgumentParser と tklib.tkobject.tkObject を継承した
tkArgs クラスを定義します。これにより、コマンドライン引数の追加と解析を容易にし、
プログラムに関するメタ情報(ファイル名、バージョン、作者など)の管理も行います。
プログラムの引数処理を簡素化し、共通のオブジェクトプロパティを統合するのに役立ちます。

関連リンク:
    :doc:`tkargs_usage`
"""
import sys
import argparse


from tklib.tkobject import tkObject



[ドキュメント] class tkArgs(argparse.ArgumentParser, tkObject): """ コマンドライン引数を処理するためのクラス。 このクラスは、argparse.ArgumentParser の機能と tklib.tkobject.tkObject の共通プロパティを組み合わせ、 プログラムの引数解析と情報管理を簡素化します。 ファイル名、バージョン、作者、作成日、最終更新日などのプログラム情報を保持できます。 """ def __init__(self, program_file = None, program_path = None, version = None, author = None, creation_date = None, last_update_date = None, **kwargs): """ tkArgs クラスのインスタンスを初期化します。 プログラムの基本情報(ファイル名、バージョンなど)を設定し、 tkObject の初期化も行います。argparse.ArgumentParser の初期化は initialize メソッドまたは super().__init__ 呼び出しで別途行われる場合があります。 :param program_file: str, optional: プログラムのファイル名。指定がない場合は sys.argv[0] が使用されます。 :param program_path: str, optional: プログラムのパス。 :param version: str, optional: プログラムのバージョン。 :param author: str, optional: プログラムの作者。 :param creation_date: str, optional: プログラムの作成日。 :param last_update_date: str, optional: プログラムの最終更新日。 :param kwargs: dict: tkObject または argparse.ArgumentParser の初期化に渡される追加キーワード引数。 :returns: None """ if program_file: self.program_file = program_file else: self.program_file = sys.argv[0] self.program_path = program_path self.version = version self.author = author self.creation_date = creation_date self.last_update_date = last_update_date self.update(**kwargs)
[ドキュメント] def initialize(self, **kwargs): """ argparse.ArgumentParser の初期化を行います。 tkArgs クラスのインスタンスが作成された後、追加の argparse.ArgumentParser 固有の 引数で初期化が必要な場合に使用されます。 :param kwargs: dict: argparse.ArgumentParser のコンストラクタに渡されるキーワード引数。 :returns: None """ super().__init__(**kwargs)
# def __del__(self): # print("{} destroyed".format(self.name)) def __str__(self): """ オブジェクトの文字列表現を返します。 このメソッドは、オブジェクトが文字列として表現される際に呼び出されます。 現在の実装では、最適化オブジェクトとしてそのメソッド名を出力します。 :returns: str: オブジェクトの文字列表現。 """ return "optimization object by {}".format(self.method)
[ドキュメント] def checkkwargs(self, nargs = '?', **kwargs): """ add_arg メソッドに渡されるキーワード引数をチェックし、修正します。 特に 'action' が 'version' に設定されている場合は 'nargs' を変更せず、 それ以外の場合は指定されたデフォルトの 'nargs' を設定します。 :param nargs: str, optional: 'nargs' のデフォルト値。デフォルトは `'?'`。 :param kwargs: dict: チェック対象のキーワード引数。 :returns: dict: 修正されたキーワード引数。 """ try: if kwargs["action"] == 'version': pass except: kwargs["nargs"] = nargs return kwargs
[ドキュメント] def add_arg(self, key1, key2 = None, nargs = '?', **kwargs): """ コマンドライン引数を追加します。 argparse.ArgumentParser.add_argument のラッパーであり、引数に 'nargs' を デフォルトで設定する機能を提供します。 :param key1: str: 引数の名前。例: `"-f"` または `"--file"`。 :param key2: str, optional: 引数の名前(ショートオプションなど)。`None` の場合、`key1` のみが使用されます。 :param nargs: str, optional: 引数の予想される数。デフォルトは `'?'`。 :param kwargs: dict: argparse.ArgumentParser.add_argument に渡される追加キーワード引数。 :returns: None """ self.checkkwargs(nargs = nargs, **kwargs) """ print(key1, ":") print(" ", kwargs) print("") """ if key2 is None: super().add_argument(key1, **kwargs) else: super().add_argument(key1, key2, **kwargs)
[ドキュメント] def add_floatarg(self, key1, key2 = None, nargs = '?', type = float, **kwargs): """ float型のコマンドライン引数を追加します。 argparse.ArgumentParser.add_argument を呼び出しますが、 引数の `type` を `float` に設定します。 :param key1: str: 引数の名前。例: `"-v"` または `"--value"`。 :param key2: str, optional: 引数の名前。`None` の場合、`key1` のみが使用されます。 :param nargs: str, optional: 引数の予想される数。デフォルトは `'?'`。 :param type: type, optional: 引数の型。デフォルトは `float`。 :param kwargs: dict: argparse.ArgumentParser.add_argument に渡される追加キーワード引数。 :returns: None """ if key2 is None: super().add_argument(key1, nargs = nargs, type = type, **kwargs) else: super().add_argument(key1, key2, nargs = nargs, type = type, **kwargs)
[ドキュメント] def add_intarg(self, key1, key2 = None, nargs = '?', type = int, **kwargs): """ int型のコマンドライン引数を追加します。 argparse.ArgumentParser.add_argument を呼び出しますが、 引数の `type` を `int` に設定します。 :param key1: str: 引数の名前。例: `"-c"` または `"--count"`。 :param key2: str, optional: 引数の名前。`None` の場合、`key1` のみが使用されます。 :param nargs: str, optional: 引数の予想される数。デフォルトは `'?'`。 :param type: type, optional: 引数の型。デフォルトは `int`。 :param kwargs: dict: argparse.ArgumentParser.add_argument に渡される追加キーワード引数。 :returns: None """ if key2 is None: super().add_argument(key1, nargs = nargs, type = type, **kwargs) else: super().add_argument(key1, key2, nargs = nargs, type = type, **kwargs)
[ドキュメント] def print_args(self,print_attributes = 0, print_args = 1): """ プログラムの属性と解析されたコマンドライン引数を出力します。 tkObject の print_attributes メソッドと argparse.ArgumentParser.parse_args の結果を組み合わせて表示します。 :param print_attributes: int, optional: オブジェクトの属性を出力するかどうかを示すフラグ。`1` の場合出力します。デフォルトは `0`。 :param print_args: int, optional: 解析された引数を出力するかどうかを示すフラグ。`1` の場合出力します。デフォルトは `1`。 :returns: None """ if print_attributes: self.print_attributes(1) if print_args: print("args: ", self.parse_args())