tktemplate プログラム仕様

概要: テンプレート処理とExcel連携を提供するモジュール。

詳細説明: このモジュールは、文字列、ファイル、Excelデータに対するテンプレート変数の置換機能や、 Excelファイルへのデータ追加機能を提供します。 `{{ key }}`形式のテンプレートタグを使用して、動的なコンテンツ生成をサポートします。

関連リンク: tktemplate.py 技術ドキュメント

tklib.tktemplate.add_to_excel(template_path, outfile, data_list, replace_dict, data_only=False, print_level=1)[ソース]

概要: Excelテンプレートから構造を読み込み、新しいデータをExcelファイルに追加します。

詳細説明: `template_path`からExcelテンプレートを読み込み、既存または新規の`outfile`にデータを追加します。 テンプレートの2行目の内容(テンプレート文字列)を`replace_dict`と`data_list`(現在は未使用)を 使用して変換し、`outfile`の最終行に書き込みます。 出力ファイルが存在しない場合は新規に作成し、テンプレートの1行目(ラベル)をヘッダーとして書き込みます。 注意: `convert_by_template`関数は、このモジュール内で定義されていないため、実行時にエラーを発生させる可能性があります。

パラメータ:
  • template_path (str) -- 読み込むExcelテンプレートファイルのパス。

  • outfile (str) -- データを追加するExcelファイルのパス。存在しない場合は新規作成されます。

  • data_list (list) -- (現在未使用) 追加するデータのリスト。

  • replace_dict (dict) -- テンプレート置換のためのキーと値のペアを含む辞書。

  • data_only (bool, optional) -- テンプレート読み込み時に数式ではなくセルの計算結果のみを読み込むかどうか。デフォルトは`False`。

  • print_level (int, optional) -- デバッグ出力のレベル。1は基本情報、2は詳細情報。デフォルトは`1`。

戻り値:

データ追加処理が成功した場合は`True`。

戻り値の型:

bool

tklib.tktemplate.convert_file(template_path, output_path, replace_dict, print_level=0)[ソース]

概要: テンプレートファイルの内容を読み込み、置換を行い、結果を新しいファイルに書き込みます。

詳細説明: `template_path`で指定されたファイルを読み込み、`replace_dict`に基づいて各行の`{{key}}`タグを置換します。 処理された内容は`output_path`で指定されたファイルに書き込まれます。 テンプレートファイルが存在しない場合や出力ファイルに書き込めない場合はエラーを報告します。

パラメータ:
  • template_path (str) -- 読み込むテンプレートファイルのパス。

  • output_path (str) -- 結果を書き込む出力ファイルのパス。

  • replace_dict (dict) -- テンプレート置換のためのキーと値のペアを含む辞書。

  • print_level (int, optional) -- デバッグ出力のレベル。0は出力なし。デフォルトは`0`。

戻り値:

ファイル変換が成功した場合は`True`、失敗した場合は`False`。

戻り値の型:

bool

tklib.tktemplate.convert_str(s, replace_dict, blank_nodata=False, print_level=0)[ソース]

概要: 文字列内のテンプレートタグを置換し、オプションで式を評価します。

詳細説明: `replace_dict`に基づいて、入力文字列`s`内の`{{key}}`形式のタグを対応する値で置換します。 `blank_nodata`が`True`の場合、`replace_dict`内の値が`None`であるタグは空文字列に置換されます。 文字列が`@eval:`で始まる場合、その後の文字列はPythonの式として評価され、結果が文字列に変換されます。

パラメータ:
  • s (str or None) -- 処理する入力文字列。

  • replace_dict (dict) -- テンプレート置換のためのキーと値のペアを含む辞書。

  • blank_nodata (bool, optional) -- replace_dict`の値が`None`の場合にタグを空文字列に置換するかどうか。デフォルトは`False

  • print_level (int, optional) -- デバッグ出力のレベル。0は出力なし。デフォルトは`0`。

戻り値:

処理された文字列、または入力が`None`の場合は`None`。

戻り値の型:

str or None

tklib.tktemplate.pfloat(s)[ソース]

概要: 文字列を浮動小数点数に安全に変換します。

詳細説明: 内部の _pfloat 関数を呼び出し、デフォルト値なし、厳格でないモードで変換を試みます。 変換できない場合は None を返します。

パラメータ:

s (str) -- 浮動小数点数に変換する入力文字列。

戻り値:

変換された浮動小数点数、または変換できなかった場合は None

戻り値の型:

float or None

tklib.tktemplate.pint(s)[ソース]

概要: 文字列を整数に安全に変換します。

詳細説明: 内部の _pint 関数を呼び出し、デフォルト値なし、厳格でないモードで変換を試みます。 変換できない場合は None を返します。

パラメータ:

s (str) -- 整数に変換する入力文字列。

戻り値:

変換された整数、または変換できなかった場合は None

戻り値の型:

int or None

tklib.tktemplate.process_template(template: str, context: dict) str[ソース]

概要: テンプレート文字列内の特殊文字とタグを置換します。

詳細説明: バックスラッシュでエスケープされたタブ (` )、改行 (

)、キャリッジリターン ( `) を

実際の特殊文字に置換します。 さらに、`{{ key }}`形式のテンプレートタグを、`context`辞書内の対応する値で置換します。 キーが見つからない場合は、元のタグ形式を保持します。

param template:

テンプレートタグと特殊文字を含む入力文字列。

type template:

str

param context:

テンプレート置換のためのキーと値のペアを含む辞書。

type context:

dict

returns:

置換が適用された処理済みの文字列。

rtype:

str

tklib.tktemplate.read_replacement_db(replacement_db_path, print_level=1)[ソース]

概要: Excelファイルから置換ルール(キーと置換文字列)を読み込み、辞書として返します。

詳細説明: 指定されたExcelファイル(replacement_db_path)の1行目から置換文字列を、2行目からラベル(キー)を 読み込みます。これらの情報から、`{{key}}`タグを置換文字列`value`で置換するための辞書`replace_dict`を 作成します。 ただし、1行目1列目の値が`@@`で終わる場合は、その列はスキップされます。

パラメータ:
  • replacement_db_path (str) -- 置換ルールを含むExcelファイルのパス。

  • print_level (int, optional) -- デバッグ出力のレベル。1は基本情報、2は詳細情報。デフォルトは`1`。

戻り値:

ラベルをキー、置換文字列を値とする辞書。

戻り値の型:

dict

tklib.tktemplate.read_template_xlsx(template_path, data_only=False, print_level=0)[ソース]

概要: Excelテンプレートファイルからラベルとテンプレート文字列を読み込みます。

詳細説明: 指定されたExcelファイル(template_path)の1行目からラベルを、2行目から対応する テンプレート文字列を読み込みます。 `data_only`が`True`の場合、セルの表示値(計算結果)を読み込みます。 ファイルが存在しない、または読み込めない場合はエラーを報告します。

パラメータ:
  • template_path (str) -- 読み込むExcelテンプレートファイルのパス。

  • data_only (bool, optional) -- 数式ではなくセルの計算結果のみを読み込むかどうか。デフォルトは`False`。

  • print_level (int, optional) -- デバッグ出力のレベル。0は出力なし。デフォルトは`0`。

戻り値:

ラベルのリストとテンプレート文字列のリストのタプル。エラーが発生した場合は`(None, None)`。

戻り値の型:

tuple[list[str], list[str]] or tuple[None, None]

tklib.tktemplate.replace_df_columns(df, replace_dict, print_level=0)[ソース]

概要: DataFrameの列名を指定された辞書に基づいて置換します。

詳細説明: 入力DataFrame df の列名を`replace_dict`内のキーと値のペアに基づいて更新します。 `replace_dict`のキーと一致する列名が存在し、かつ`replace_dict`の値が`None`または空文字列でない場合に 置換が行われます。

パラメータ:
  • df (pandas.DataFrame) -- 列名を置換する対象のDataFrame。

  • replace_dict (dict) -- 列名の置換ルールを含む辞書。キーが元の列名、値が新しい列名。

  • print_level (int, optional) -- デバッグ出力のレベル。0は出力なし。デフォルトは`0`。

戻り値:

列名が置換されたDataFrame。

戻り値の型:

pandas.DataFrame