tkutils プログラム仕様

ユーティリティ機能を提供するモジュール

このモジュールは、ファイル操作、データ変換、システム情報取得、エラーハンドリングなど、 様々な一般的なユーティリティ関数を提供します。 matplotlibやnumpyなどのライブラリに依存する機能も含まれます。

関連リンク:

tkutils.py Library Documentation

tklib.tkutils.BuildCreationDateStr(date=None)[ソース]

指定された日付、または現在の日付から作成日文字列を生成します。

`date`がNoneの場合、現在の日時を使用して'YYYY/MM/DD'形式の文字列を生成します。

パラメータ:

date (datetime.datetime or None) -- 作成日として使用する`datetime`オブジェクト (オプション)。

戻り値:

'YYYY/MM/DD'形式の日付文字列。

戻り値の型:

str

tklib.tkutils.Exists(path)[ソース]

指定されたパスが存在するかを判定します。

`is_exist`関数のエイリアスです。

パラメータ:

path (str or Path) -- 判定するパス。

戻り値:

パスが存在すればTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.GetList(list, n, defval=0.0)[ソース]

リストを指定された長さに拡張または切り詰めます。

元のリストのコピーを作成し、`n`よりも短い場合は`defval`で拡張し、 `n`よりも長い場合は`n`で切り詰めます。

パラメータ:
  • list (list) -- 処理対象のリスト。

  • n (int) -- 最終的なリストの目標長。

  • defval (object) -- リストを拡張する際に使用するデフォルト値。

戻り値:

指定された長さに調整された新しいリスト。

戻り値の型:

list

tklib.tkutils.GetPathDelimiter()[ソース]

パス区切り文字を取得します。

`os.sep`を返します。これはOSによって'/'または''になります。

戻り値:

パス区切り文字。

戻り値の型:

str

tklib.tkutils.IsDir(path)[ソース]

指定されたパスがディレクトリであるかを判定します。

`is_dir`関数のエイリアスです。

パラメータ:

path (str or Path) -- 判定するパス。

戻り値:

パスがディレクトリであればTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.IsFile(path)[ソース]

指定されたパスがファイルであるかを判定します。

`is_file`関数のエイリアスです。

パラメータ:

path (str or Path) -- 判定するパス。

戻り値:

パスがファイルであればTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.MakePath(dir, *args)[ソース]

パスの要素を結合して新しいパスを作成します。

`make_path`関数のエイリアスです。

パラメータ:
  • dir (str or Path) -- ベースとなるディレクトリパス。

  • args (str or Path) -- 結合するパス要素。

戻り値:

結合された新しいパス。

戻り値の型:

str

tklib.tkutils.SplitFilePath(path)[ソース]

ファイルパスを構成要素(ディレクトリ名、ファイル名、ファイル本体、拡張子)に分割します。

`split_file_path`関数のエイリアスです。

パラメータ:

path (str or Path) -- 分割するファイルパス。

戻り値:

(ディレクトリ名, ベース名, ファイル本体名, 拡張子) のタプル。

戻り値の型:

tuple[str, str, str, str]

tklib.tkutils.add_dict(var, key1, key2=None)[ソース]

辞書に要素を追加またはカウントをインクリメントします。

`key2`がNoneの場合、`var[key1]`の値を1インクリメントします。 `key2`が指定されている場合、`var[key1][key2]`の値を1インクリメントします。 キーが存在しない場合は初期値1で作成します。

パラメータ:
  • var (dict) -- 操作対象の辞書。

  • key1 (str or Any) -- 第一レベルのキー。

  • key2 (str or Any or None) -- 第二レベルのキー (オプション)。

tklib.tkutils.add_path(path, varname='PATH')[ソース]

指定されたパスを環境変数に追加します。

`varname`で指定された環境変数(デフォルトは'PATH')に新しいパスを追加します。 パスが既に存在する場合は追加せず、現在の環境変数の値を返します。 新しいパスは既存のパスのリストの先頭に追加されます。

パラメータ:
  • path (str) -- 環境変数に追加するパス。

  • varname (str) -- パスを追加する環境変数名。

戻り値:

更新された環境変数の値。

戻り値の型:

str

tklib.tkutils.add_quotation(str, quotation, quotation_original)[ソース]

文字列に引用符を追加します。

`quotation`パラメータに基づいて、文字列に引用符を追加、削除、または維持します。 `quotation`が'remove'の場合は引用符を削除し、'keep'の場合は`quotation_original`で囲みます。 それ以外の場合は`quotation`で文字列を囲みます。

パラメータ:
  • str (str) -- 処理対象の文字列。

  • quotation (str) -- 引用符の処理方法 ('remove', 'keep') または追加する引用符の種類。

  • quotation_original (str) -- 'keep'モードで使用される元の引用符の種類(例: '"' や "'")。

戻り値:

処理後の文字列。

戻り値の型:

str

tklib.tkutils.analyze_varstr(str)[ソース]

変数文字列を解析します。

内部関数`_analyze_varstr`を呼び出して変数文字列の解析を行います。 この関数は`tklib.tkobject`に定義されているプライベートな関数をラップしています。

パラメータ:

str (str) -- 解析する変数文字列。

戻り値:

解析結果。具体的な型は`_analyze_varstr`の実装に依存。

戻り値の型:

object

tklib.tkutils.check_attributes(obj, isprint=0, *args)[ソース]

オブジェクトに特定の属性が定義されているかチェックします。

`args`で指定された属性名が`obj`に存在するかを確認します。 存在しない属性名があればそのリストを返します。 `isprint`がTrueの場合、未定義の属性名をコンソールに出力します。

パラメータ:
  • obj (object) -- 属性をチェックするオブジェクト。

  • isprint (int or bool) -- 未定義の属性名をコンソールに出力するかどうかのフラグ。

  • args (str) -- チェックする属性名 (可変長引数)。

戻り値:

未定義の属性名のリスト。全て定義されている場合はNone。

戻り値の型:

list[str] or None

tklib.tkutils.conv_float(val, format='{:.10g}')[ソース]

浮動小数点数を指定されたフォーマットで文字列に変換します。

`val`が浮動小数点数の場合、`format`文字列を使用して整形し、 それ以外の型の場合は元の値をそのまま返します。

パラメータ:
  • val (float or object) -- 変換する値。

  • format (str or None) -- 浮動小数点数を整形するためのフォーマット文字列。Noneまたは空文字列の場合は整形しない。

戻り値:

フォーマットされた文字列、または元の値。

戻り値の型:

str or object

tklib.tkutils.convert_by_vars(s, vars, prefix='\\$', bra='\\(', ket='\\)')[ソース]

文字列内の変数プレースホルダを`vars`辞書の値に置換します。

文字列`s`の中から、指定された`prefix` (デフォルトは`$`) と bra/ket (デフォルトは`()` ) で囲まれた変数名 (例: $(varname)) を探し、 vars`辞書から対応する値を取得して置換します。 変数が見つからない場合は警告を出力し、??varname??`に置換します。 `$`のようなエスケープされたプレフィックスはそのままのプレフィックスに変換されます。

パラメータ:
  • s (str) -- 変数プレースホルダを含む文字列。

  • vars (dict[str, str]) -- 変数名とその値を含む辞書。

  • prefix (str) -- 変数名の前に付くプレフィックスの正規表現パターン。デフォルトは`r'$'`

  • bra (str) -- 変数名を囲む開始括弧の正規表現パターン。デフォルトは`r'('`

  • ket (str) -- 変数名を囲む終了括弧の正規表現パターン。デフォルトは`r')'`

戻り値:

変数が置換された文字列。

戻り値の型:

str

tklib.tkutils.convert_color(color)[ソース]

色名を標準的なmatplotlibのCSS4_COLORS形式に変換します。

与えられた色名がmatplotlibのCSS4_COLORSに存在する場合、その標準的な表記を返します。 存在しない場合は、元の色名をそのまま返します。

パラメータ:

color (str or None) -- 変換する色名(文字列)またはNone。

戻り値:

標準形式に変換された色名、または元の色名、またはNone。

戻り値の型:

str or None

tklib.tkutils.copy_path(path, newpath)[ソース]

ファイルを新しい場所にコピーします。

`shutil.copy2()`を使用してファイルをコピーします。 シンボリックリンクは解決されます。

パラメータ:
  • path (str or Path) -- コピー元のファイルのパス。

  • newpath (str or Path) -- コピー先のファイルのパス。

戻り値:

コピーが成功した場合は1、失敗した場合は0。

戻り値の型:

int

tklib.tkutils.del_quote(s)[ソース]

文字列の先頭と末尾の引用符を削除します。

文字列が二重引用符または単一引用符で始まり、同じ引用符で終わる場合に、それらの引用符を削除します。 文字列が短い場合や引用符で囲まれていない場合は、元の文字列をそのまま返します。

パラメータ:

s (str) -- 引用符を含む可能性のある文字列。

戻り値:

引用符が削除された文字列、または元の文字列。

戻り値の型:

str

tklib.tkutils.delete_file(path)[ソース]

ファイルを削除します。

`os.remove()`を使用して指定されたファイルを削除します。

パラメータ:

path (str or Path) -- 削除するファイルのパス。

戻り値:

削除が成功した場合は1、失敗した場合は0。

戻り値の型:

int

tklib.tkutils.desktop_name()[ソース]

現在のデスクトップ環境の名前を取得します。

Windowsの場合は'Windows'、macOSの場合は'Darwin'、 Linuxの場合は'XDG_CURRENT_DESKTOP'環境変数の値、 またはNoneを返します。

戻り値:

デスクトップ環境の名前、またはNone。

戻り値の型:

str or None

tklib.tkutils.find_executable_path(filename, defval=None, filename_only=False)[ソース]

実行可能ファイルのフルパスをPATH環境変数から検索します。

PATH環境変数に設定されている各ディレクトリを検索し、 指定された`filename`に一致する実行可能ファイルを探します。 Windowsの場合、`PATHEXT`環境変数に含まれる拡張子も考慮します。

パラメータ:
  • filename (str) -- 検索する実行可能ファイルの名前。

  • defval (object or None) -- ファイルが見つからない場合に返すデフォルト値。

  • filename_only (bool) -- フルパスではなくファイル名のみを返すかどうかのフラグ。

戻り値:

見つかった実行可能ファイルのフルパスまたはファイル名、または`defval`。

戻り値の型:

str or None

tklib.tkutils.find_files(filename, start_dir=None)[ソース]

指定された開始ディレクトリ以下でファイルを検索します。

`os.walk()`を使用してディレクトリツリーを再帰的に走査し、 `fnmatch.fnmatch()`で`filename`パターンに一致するファイルのフルパスのリストを返します。 `start_dir`がNoneの場合、現在の作業ディレクトリから検索を開始します。

パラメータ:
  • filename (str) -- 検索するファイルのパターン (例: 'my_file*.txt')。

  • start_dir (str or Path or None) -- 検索を開始するディレクトリパス (オプション)。

戻り値:

見つかったファイルのフルパスのリスト。

戻り値の型:

list[str]

tklib.tkutils.find_latest_file(filename, start_dir=None, defval=None)[ソース]

指定された開始ディレクトリ以下で最新の更新日時を持つファイルを検索します。

`find_files`関数で指定されたパターンに一致する全てのファイルを検索し、 その中で最終更新日時が最も新しいファイルのフルパスを返します。 ファイルが見つからない場合は`defval`を返します。

パラメータ:
  • filename (str) -- 検索するファイルのパターン。

  • start_dir (str or Path or None) -- 検索を開始するディレクトリパス (オプション)。

  • defval (object or None) -- ファイルが見つからない場合に返すデフォルト値。

戻り値:

最新の更新日時を持つファイルのフルパス、または`defval`。

戻り値の型:

str or None

tklib.tkutils.find_range_indexes(x, xmin, xmax)[ソース]

ソートされたリスト`x`内で、`xmin`から`xmax`の範囲に収まる要素のインデックス範囲を見つけます。

結果は、`x[ix0]`が`xmin`以上になる最初のインデックスと、 `x[ix1-1]`が`xmax`以下になる最後のインデックス(排他的)のタプルです。

パラメータ:
  • x (list[float]) -- ソートされた数値のリスト。

  • xmin (float) -- 検索範囲の最小値。

  • xmax (float) -- 検索範囲の最大値。

戻り値:

範囲内の開始インデックスと終了インデックス(排他的)のタプル。

戻り値の型:

tuple[int, int]

tklib.tkutils.format_strlist(vars, format, separator=', ')[ソース]

文字列のリストを指定されたフォーマットと区切り文字で結合します。

リストの各要素を`format`文字列で整形し、`separator`で結合した単一の文字列を返します。 要素がNoneの場合は"None"と出力されます。

パラメータ:
  • vars (list[str or None]) -- 整形して結合する文字列のリスト。

  • format (str) -- 各要素を整形するためのフォーマット文字列。

  • separator (str) -- 要素間の区切り文字。

戻り値:

フォーマットされ、結合された文字列。

戻り値の型:

str

tklib.tkutils.get_PATH_env_separator()[ソース]

環境変数PATHの区切り文字を取得します。

`os.pathsep`を返します。これはOSによって':'または';'になります。

戻り値:

環境変数PATHの区切り文字。

戻り値の型:

str

tklib.tkutils.get_class(instance)[ソース]

インスタンスのクラスを取得します。

パラメータ:

instance (object) -- クラスを取得したいインスタンス。

戻り値:

インスタンスのクラスオブジェクト。

戻り値の型:

type

tklib.tkutils.get_definition_position(obj)[ソース]

オブジェクト(クラスまたはインスタンス)の定義位置を取得します。

指定されたオブジェクトがクラスでない場合は、そのクラスの定義位置を取得します。

パラメータ:

obj (object or type) -- 定義位置を取得したいオブジェクトまたはクラス。

戻り値:

ファイル名と行番号のタプル。

戻り値の型:

tuple[str, int]

tklib.tkutils.get_dirname(path)[ソース]

指定されたパスのディレクトリ部分を取得します。

`os.path.abspath()`で絶対パスに変換後、`os.path.dirname()`でディレクトリ名を取得します。

パラメータ:

path (str or Path) -- ディレクトリ部分を取得する対象のパス。

戻り値:

パスのディレクトリ部分。

戻り値の型:

str

tklib.tkutils.get_ext(path)[ソース]

ファイルの拡張子を取得します。

`split_file_path`関数を使用してパスを解析し、拡張子部分を返します。

パラメータ:

path (str or Path) -- 拡張子を取得するファイルのパス。

戻り値:

ファイルの拡張子 (例: '.txt', '.py')。拡張子がない場合は空文字列。

戻り値の型:

str

tklib.tkutils.get_ext_separator()[ソース]

ファイルの拡張子区切り文字を取得します。

`os.extsep`を返します。これは常に'.'になります。

戻り値:

拡張子区切り文字。

戻り値の型:

str

tklib.tkutils.get_file_list(path, filemask='*.*', filename_only=True)[ソース]

指定されたパス内のファイルとディレクトリのリストを取得します。

`filemask`(セミコロンで区切られた複数のマスクも可)に一致するファイルとディレクトリを検索します。 `filename_only`がTrueの場合、ファイル名はベース名のみを返します。 ディレクトリは`[dirname]`の形式で返され、`[..]`が先頭に追加されます。

パラメータ:
  • path (str or Path) -- ファイルを検索するディレクトリパス。ファイルパスの場合、そのディレクトリが使用されます。

  • filemask (str) -- 検索するファイルマスク (例: '.txt', '.log;*.dat')。

  • filename_only (bool) -- 結果のファイル名をベース名のみにするかどうかのフラグ。

戻り値:

(ディレクトリ名のリスト, ファイル名のソート済みリスト) のタプル。

戻り値の型:

tuple[list[str], list[str]]

tklib.tkutils.get_file_masks(key='executables')[ソース]

指定されたキーに対応するファイルマスクのリストを取得します。

`key`が'executables'の場合、Windows環境では`PATHEXT`環境変数から実行可能ファイルの拡張子リストを取得します。 それ以外のOSやキーでは、汎用的なファイルマスクを返します。

パラメータ:

key (str) -- 取得するファイルマスクのキー (例: 'executables')。

戻り値:

ファイルマスクのリスト。

戻り値の型:

list[str]

tklib.tkutils.get_fullpath(path)[ソース]

指定されたパスの絶対パスを取得します。

`os.path.abspath()`を呼び出します。

パラメータ:

path (str or Path) -- 絶対パスを取得する対象のパス。

戻り値:

パスの絶対パス。

戻り値の型:

str

tklib.tkutils.get_last_directory(path, check_dir=False)[ソース]

パスの最後のディレクトリ名を取得します。

`check_dir`がTrueでパスが実際にディレクトリである場合は、 そのディレクトリ名自体が返されます。 それ以外の場合は、パスのディレクトリ部分の最後のセグメントが返されます。

パラメータ:
  • path (str or Path) -- 最後のディレクトリ名を取得する対象のパス。

  • check_dir (bool) -- パスがディレクトリであるかを確認し、その場合特別な処理をするかどうかのフラグ。

戻り値:

パスの最後のディレクトリ名。

戻り値の型:

str

tklib.tkutils.get_max_index(list, axis=0)[ソース]

リスト(またはNumPy配列)の最大値のインデックスを取得します。

NumPyの`arg_max`関数を使用しますが、これは`np.argmax`の間違いである可能性があり、 現在のコードではエラーになる可能性があります。

パラメータ:
  • list (list or np.ndarray) -- 最大値のインデックスを検索するリストまたはNumPy配列。

  • axis (int) -- NumPy配列の場合の軸。リストの場合は無視されます。

戻り値:

最大値のインデックス。

戻り値の型:

int

tklib.tkutils.get_min_index(list, axis)[ソース]

リスト(またはNumPy配列)の最小値のインデックスを取得します。

NumPyの`arg_min`関数を使用しますが、これは`np.argmin`の間違いである可能性があり、 現在のコードではエラーになる可能性があります。

パラメータ:
  • list (list or np.ndarray) -- 最小値のインデックスを検索するリストまたはNumPy配列。

  • axis (int) -- NumPy配列の場合の軸。リストの場合は無視されます。

戻り値:

最小値のインデックス。

戻り値の型:

int

tklib.tkutils.get_os()[ソース]

OSの名前(Windows, Darwin, Linuxなど)を取得します。

`platform.system()`の戻り値をそのまま返します。

戻り値:

OSの名前を表す文字列。

戻り値の型:

str

tklib.tkutils.get_os_info(terse=False)[ソース]

OSの情報を取得します。

`platform`モジュールを使用して、OSのシステム名、プラットフォーム情報、 リリースバージョン、OSバージョンを返します。

パラメータ:

terse (bool) -- プラットフォーム情報を簡潔に表示するかどうかのフラグ。

戻り値:

システム名、プラットフォーム、リリースバージョン、OSバージョンのタプル。

戻り値の型:

tuple[str, str, str, str]

tklib.tkutils.get_path_list(varname='PATH')[ソース]

指定された環境変数からパスのリストを取得します。

デフォルトでは'PATH'環境変数の値を`os.pathsep`で分割し、リストとして返します。

パラメータ:

varname (str) -- パスのリストを取得する環境変数名。

戻り値:

環境変数に含まれるパスのリスト。

戻り値の型:

list[str]

tklib.tkutils.get_path_separator()[ソース]

パス区切り文字を取得します。

`os.sep`を返します。これはOSによって'/'または''になります。 `GetPathDelimiter`のエイリアスです。

戻り値:

パス区切り文字。

戻り値の型:

str

tklib.tkutils.get_position(self=None, _class=None)[ソース]

現在のコードのファイル名、関数名、行番号を取得します。

呼び出し元のフレーム情報を利用して、コードが実行されている位置に関する情報を辞書で返します。 `_class`が指定された場合はクラス名、`self`が指定された場合はインスタンスのクラス名も含まれます。

警告

この関数は、`line`変数を定義せずに使用しているため、常にエラーが発生します。

パラメータ:
  • self (object or None) -- メソッド内で呼び出す場合のインスタンス (オプション)。

  • _class (type or None) -- クラス内で呼び出す場合のクラス (オプション)。

戻り値:

ファイル名、関数名、および現在の行番号を含む辞書。

戻り値の型:

dict[str, str or int]

tklib.tkutils.get_position_str(self=None, _class=None)[ソース]

現在のコードのファイル名、関数名、行番号を含む文字列を取得します。

呼び出し元のフレーム情報を利用して、コードが実行されている位置に関する情報を整形された文字列で返します。 `_class`が指定された場合はクラス名、`self`が指定された場合はインスタンスのクラス名も含まれます。

警告

この関数は、`line_number`変数を定義せずに使用しているため、常にエラーが発生します。

パラメータ:
  • self (object or None) -- メソッド内で呼び出す場合のインスタンス (オプション)。

  • _class (type or None) -- クラス内で呼び出す場合のクラス (オプション)。

戻り値:

ファイル名、関数名、および現在の行番号を含む整形された文字列。

戻り値の型:

str

tklib.tkutils.get_upper_directory(path)[ソース]

指定されたパスの上位ディレクトリ名を取得します。

`split_file_path`関数を使用してパスを解析し、親ディレクトリ部分を返します。

パラメータ:

path (str or Path) -- 上位ディレクトリ名を取得する対象のパス。

戻り値:

パスの上位ディレクトリ名。

戻り値の型:

str

tklib.tkutils.get_user_inifile_dir(env_vars=['HOME'], dir_names=['.'])[ソース]

ユーザーの設定ファイルディレクトリを取得または作成します。

`env_vars`に指定された環境変数(デフォルトは'HOME')を順番に検索し、 ユーザーのホームディレクトリを特定します。 次に`dir_names`に指定されたディレクトリ名(デフォルトは'.')を試行し、 既存のディレクトリを見つけるか、新しく作成してそのパスを返します。

パラメータ:
  • env_vars (list[str]) -- ユーザーのホームディレクトリを特定するための環境変数名のリスト。

  • dir_names (list[str]) -- ユーザー設定ファイル用のディレクトリ名のリスト。

戻り値:

ユーザー設定ファイルディレクトリのパス、または見つからない場合はNone。

戻り値の型:

str or None

tklib.tkutils.getarg(position, defval=None)[ソース]

コマンドライン引数を位置指定で取得します。

`sys.argv`から指定された`position`の引数を取得します。 引数が存在しない場合は`defval`を返します。

パラメータ:
  • position (int) -- 取得するコマンドライン引数の位置 (0はスクリプト名)。

  • defval (object or None) -- 引数が存在しない場合に返すデフォルト値。

戻り値:

指定された位置の引数、または`defval`。

戻り値の型:

str or None

tklib.tkutils.getenv(key, defval=None)[ソース]

環境変数の値を取得します。

指定されたキーの環境変数が存在しない場合、`defval`を返します。

パラメータ:
  • key (str) -- 取得する環境変数名。

  • defval (str or None) -- 環境変数が存在しない場合に返すデフォルト値。

戻り値:

環境変数の値、または`defval`。

戻り値の型:

str or None

tklib.tkutils.getfloatarg(position, defval=None)[ソース]

コマンドライン引数を浮動小数点数として取得します。

`getarg`で引数を取得し、`pfloat`で浮動小数点数に変換します。

パラメータ:
  • position (int) -- 取得するコマンドライン引数の位置。

  • defval (float or None) -- 引数が存在しない場合、または変換失敗時に返すデフォルト値。

戻り値:

変換された浮動小数点数、または`defval`。

戻り値の型:

float or None

tklib.tkutils.getintarg(position, defval=None)[ソース]

コマンドライン引数を整数として取得します。

`getarg`で引数を取得し、`pint`で整数に変換します。

パラメータ:
  • position (int) -- 取得するコマンドライン引数の位置。

  • defval (int or None) -- 引数が存在しない場合、または変換失敗時に返すデフォルト値。

戻り値:

変換された整数、または`defval`。

戻り値の型:

int or None

tklib.tkutils.graph_style_idx(idx)[ソース]

インデックスに基づいてグラフの色と線種を取得します。

与えられたインデックスを基に、定義済みの色と線種のリストから適切な組み合わせを選択して返します。

パラメータ:

idx (int) -- スタイルを取得するためのインデックス。

戻り値:

色と線種のタプル。

戻り値の型:

tuple[str, str]

tklib.tkutils.handle_exception(exc_type, exc_value, exc_tb)[ソース]

未処理の例外を処理し、エラー情報を表示します。

`sys.excepthook`に設定されることを意図しており、 例外の種類、値、トレースバックを整形して出力します。 最後にユーザーがEnterキーを押すまでプログラムの終了を一時停止します。

パラメータ:
  • exc_type (type) -- 例外の型 (sys.exc_info()から取得)。

  • exc_value (Exception) -- 例外の値 (sys.exc_info()から取得)。

  • exc_tb (types.TracebackType) -- 例外のトレースバックオブジェクト (sys.exc_info()から取得)。

tklib.tkutils.index2val(index, list_var, defval=(None, None))[ソース]

リストのインデックスまたは値から、対応するインデックスと値を取得します。

`index`が整数の場合は直接リストのインデックスとして使用します。 `index`が文字列で数値として解釈できる場合はインデックスとして使用します。 それ以外の場合、`index`がリストの要素値として存在するかを検索します。 見つからない場合は`defval`を返します。

パラメータ:
  • index (int or str) -- 検索するインデックスまたは値。

  • list_var (list) -- 検索対象のリスト。

  • defval (tuple[object, object]) -- 見つからなかった場合に返すデフォルトのタプル (インデックス, 値)。

戻り値:

見つかったインデックスと値のタプル、または`defval`。

戻り値の型:

tuple[int or None, object or None]

tklib.tkutils.is_dir(path)[ソース]

指定されたパスがディレクトリであるかを判定します。

`os.path.isdir()`を呼び出します。

パラメータ:

path (str or Path) -- 判定するパス。

戻り値:

パスがディレクトリであればTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.is_exist(path)[ソース]

指定されたパスが存在するかを判定します。

`os.path.exists()`を呼び出します。

パラメータ:

path (str or Path) -- 判定するパス。

戻り値:

パスが存在すればTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.is_file(path)[ソース]

指定されたパスがファイルであるかを判定します。

`os.path.isfile()`を呼び出します。

パラメータ:

path (str or Path) -- 判定するパス。

戻り値:

パスがファイルであればTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.is_float(s)[ソース]

文字列が浮動小数点数として解釈できるかを判定します。

引数`s`が既にfloat型であればTrueを返します。 文字列の場合は、浮動小数点数のパターンにマッチするかを正規表現で判定します。

パラメータ:

s (str or float) -- 判定する文字列または数値。

戻り値:

浮動小数点数として解釈できる場合はTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.is_int(s)[ソース]

文字列が整数として解釈できるかを判定します。

引数`s`が既にint型であればTrueを返します。 文字列の場合は、整数のパターンにマッチするかを正規表現で判定します。

パラメータ:

s (str or int) -- 判定する文字列または数値。

戻り値:

整数として解釈できる場合はTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.is_linux()[ソース]

現在のOSがLinuxであるかを判定します。

Linuxの場合、OSのバージョン文字列を返します。 それ以外の場合はFalseを返します。

警告

元のコードでは`platform.systmem()`と誤字があり、実行時にエラーとなります。

戻り値:

Linuxの場合OSのバージョン文字列、それ以外はFalse。

戻り値の型:

str or bool

tklib.tkutils.is_list(var)[ソース]

変数がリストまたはタプルであるかを判定します。

パラメータ:

var (object) -- 判定する変数。

戻り値:

変数がリストまたはタプルのいずれかであればTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.is_mac()[ソース]

現在のOSがmacOSであるかを判定します。

macOS (Darwin) の場合、OSのバージョン文字列を返します。 それ以外の場合はFalseを返します。

警告

元のコードでは`platform.systmem()`と誤字があり、実行時にエラーとなります。

戻り値:

macOSの場合OSのバージョン文字列、それ以外はFalse。

戻り値の型:

str or bool

tklib.tkutils.is_numeric(var)[ソース]

変数が数値型であるか、かつ無限大やNaNではないかを判定します。

Noneや文字列は数値とはみなされません。

パラメータ:

var (object) -- 判定する変数。

戻り値:

変数が数値型であり、かつ無限大やNaNではない場合はTrue、それ以外はFalse。

戻り値の型:

bool

tklib.tkutils.is_windows()[ソース]

現在のOSがWindowsであるかを判定します。

Windowsの場合、OSのバージョン文字列を返します。 それ以外の場合はFalseを返します。

戻り値:

Windowsの場合OSのバージョン文字列、それ以外はFalse。

戻り値の型:

str or bool

tklib.tkutils.joinf(list, format, sep)[ソース]

リストの要素を指定されたフォーマットと区切り文字で結合した文字列を返します。

`list`の各要素を`format`文字列で整形し、`sep`で区切って単一の文字列として結合します。

パラメータ:
  • list (list) -- 結合する要素のリスト。

  • format (str) -- 各要素を整形するためのフォーマット文字列 (例: "%s", "%d", "%f")。

  • sep (str) -- 要素間の区切り文字。

戻り値:

フォーマットされ、結合された文字列。

戻り値の型:

str

tklib.tkutils.kill_process_interactive(proc_name='', username='', pid='', print_level=1)[ソース]

対話形式でプロセスを終了させます。

指定されたプロセス名やユーザー名に一致するプロセスをリスト表示し、 ユーザーからのPID入力に基づいてプロセスを強制終了させます。 空のPIDを入力すると終了します。

パラメータ:
  • proc_name (str) -- 検索するプロセス名の一部 (オプション)。

  • username (str) -- 検索するユーザー名の一部 (オプション)。

  • pid (str) -- 終了させるプロセスのPID (対話モードではユーザー入力で上書きされます)。

  • print_level (int) -- 表示の詳細レベル。0の場合は表示せず、1の場合は詳細を表示。

tklib.tkutils.lvlprint(lprint, level, *args)[ソース]

指定されたレベルに基づいてメッセージを出力します。

`lprint`の値が`level`以上の場合に、`print`関数と同様に引数を出力します。

パラメータ:
  • lprint (int) -- 現在の印刷レベル。

  • level (int) -- メッセージを出力するための最小レベル。

  • args (Any) -- `print`関数に渡す位置引数。

tklib.tkutils.make_path(dir, *args)[ソース]

パスの要素を結合して新しいパスを作成します。

`os.path.join()`を呼び出します。

パラメータ:
  • dir (str or Path) -- ベースとなるディレクトリパス。

  • args (str or Path) -- 結合するパス要素。

戻り値:

結合された新しいパス。

戻り値の型:

str

tklib.tkutils.merge_attributes(tobj, sobj)[ソース]

ソースオブジェクトの属性をターゲットオブジェクトにマージします。

sobj (ソースオブジェクト) の全ての属性を`tobj` (ターゲットオブジェクト) にコピーします。 ただし、`tobj`にすでに存在する属性は上書きされません。 `sobj`がNoneの場合は`tobj`をそのまま返します。

パラメータ:
  • tobj (object) -- 属性をマージされるターゲットオブジェクト。

  • sobj (object or None) -- 属性を提供するソースオブジェクト。

戻り値:

属性がマージされたターゲットオブジェクト。

戻り値の型:

object

tklib.tkutils.minmax_xy(x=None, y=None, x0=None, xstep=None, xmin=None, xmax=None)[ソース]

x-yデータまたは関数からy値の最小値と最大値を計算します。

`x0`がNoneの場合は、`x`と`y`のリストから`xmin`と`xmax`の範囲内の`y`の最小値と最大値を計算します。 `x0`が指定されている場合は、`x`が等間隔なデータであると仮定し、インデックス計算によって範囲を決定します。

パラメータ:
  • x (list[float] or None) -- x座標のリスト。`x0`がNoneの場合に必須。

  • y (list[float] or None) -- y座標のリスト。

  • x0 (float or None) -- xデータの開始値 (等間隔データの場合)。

  • xstep (float or None) -- xデータのステップ幅 (等間隔データの場合)。

  • xmin (float or None) -- 評価範囲のx最小値。

  • xmax (float or None) -- 評価範囲のx最大値。

戻り値:

y値の最小値と最大値のタプル。

戻り値の型:

tuple[float, float]

tklib.tkutils.modify_path(path, addpath)[ソース]

ファイルパスのファイル本体部分を修正します。

既存のパスのディレクトリ部分を維持しつつ、 ファイル本体名に`addpath`を結合した新しいパスを作成します。

パラメータ:
  • path (str or Path) -- 修正する元のファイルパス。

  • addpath (str) -- ファイル本体名に追加する文字列。

戻り値:

修正された新しいファイルパス。

戻り値の型:

str

tklib.tkutils.mprint(*args, fp=None, **kwargs)[ソース]

標準出力とファイルオブジェクトの両方に印刷します。

`print`関数と同様に引数を受け取り、標準出力に表示するとともに、 `fp`で指定されたファイルオブジェクトにも出力し、すぐにフラッシュします。

パラメータ:
  • args (Any) -- `print`関数に渡す位置引数。

  • fp (io.TextIOBase or None) -- 出力先のファイルオブジェクト (オプション)。

  • kwargs (Any) -- print`関数に渡すキーワード引数 (例: `sep, end)。

tklib.tkutils.normalize_name(name, conv_table, unicodedata_mode='NFKC', upper_mode='upper')[ソース]

名前文字列を正規化します。

`normalize_str`関数を使用して空白文字や区切り文字を正規化し、 余分なスペースを削除した後、指定された`upper_mode`に基づいて大文字・小文字変換を行います。

パラメータ:
  • name (str or None) -- 正規化する名前文字列。

  • conv_table (dict[int, str]) -- `normalize_str`に渡す変換テーブル。

  • unicodedata_mode (str) -- `unicodedata.normalize`で使用される正規化モード。

  • upper_mode (str) -- 大文字・小文字変換モード ('upper', 'lower', 'capitalize', 'title', または何もしない)。

戻り値:

正規化された名前文字列。

戻り値の型:

str or None

tklib.tkutils.normalize_str(str, conv_table=None, target_char=' ', unicodedata_mode='NFKC')[ソース]

文字列を正規化します。

指定された変換テーブル (conv_table) を使用して文字を置換し、 次に`unicodedata`モジュールで指定されたモード (unicodedata_mode) でUnicode正規化を行います。 デフォルトでは、全角スペース、タブ、改行、カンマなどの空白文字や区切り文字を 単一のスペースに変換します。

パラメータ:
  • str (str or None) -- 正規化する文字列。

  • conv_table (dict[int, str] or None) -- `str.maketrans`で作成された変換テーブル (オプション)。 Noneの場合、デフォルトの変換テーブルが使用されます。

  • target_char (str) -- デフォルトの変換テーブルで使用される変換先の文字。

  • unicodedata_mode (str) -- `unicodedata.normalize`で使用される正規化モード (例: 'NFKC', 'NFC')。

戻り値:

正規化された文字列、または元の文字列 (Noneの場合)。

戻り値の型:

str or None

tklib.tkutils.pconv(s, defval=0, strict=True)[ソース]

文字列を自動的に整数、浮動小数点数、または元の文字列に変換します。

まず整数への変換を試み、次に浮動小数点数への変換を試みます。 どちらも失敗した場合は、元の文字列を返します。 `s`がNoneの場合は`defval`を返します。

パラメータ:
  • s (str or None) -- 変換する文字列。

  • defval (object) -- `s`がNoneの場合に返すデフォルト値。

  • strict (bool) -- この関数では`strict`引数は使用されません。

戻り値:

変換された整数、浮動小数点数、または元の文字列。s`がNoneの場合は`defval

戻り値の型:

int or float or str or object

tklib.tkutils.pconv_by_type(s, type='str', defval=None, strict=False)[ソース]

文字列を指定された複数の型候補の中から、最初に適合する型に変換します。

`type`引数はパイプ`|`で区切られた型名の文字列、または型オブジェクトのリストとして指定できます。 変換が成功した時点でその値を返し、全ての型で失敗した場合は`defval`を返します。

パラメータ:
  • s (str) -- 変換する文字列。

  • type (type or str or list[type or str]) -- 変換先の型(int, float, `str`またはその文字列名)。パイプで区切られた文字列も可(例: 'int|float')。

  • defval (object or None) -- 変換失敗時に返すデフォルト値。

  • strict (bool) -- 厳密な型変換を行うかどうかのフラグ。

戻り値:

変換された値、または`defval`。

戻り値の型:

int or float or str or object or None

tklib.tkutils.pconv_by_type_one(s, type='str', defval=None, strict=False)[ソース]

文字列を指定された単一の型に変換します。

`strict`がTrueの場合、厳密な変換を試み、失敗した場合は`defval`を返します。 `strict`がFalseの場合は、`pint`や`pfloat`のような柔軟な変換関数を使用します。

パラメータ:
  • s (str) -- 変換する文字列。

  • type (type or str) -- 変換先の型(int, float, `str`またはその文字列名)。

  • defval (object or None) -- 変換失敗時に返すデフォルト値。

  • strict (bool) -- 厳密な型変換を行うかどうかのフラグ。

戻り値:

変換された値、または`defval`。

戻り値の型:

int or float or str or object or None

tklib.tkutils.pdb()[ソース]

Pythonデバッガ`pdb`のインタラクティブモードに入ります。

`pdb.set_trace()`を呼び出すことで、現在の実行コンテキストでデバッガを起動します。 デバッガの使用方法に関する基本的なヒントも表示されます。

tklib.tkutils.pfloat(s, defval=0.0, strict=True)[ソース]

文字列を浮動小数点数に変換します。

まず文字列全体を浮動小数点数として変換を試みます。 `strict`がTrueで変換に失敗した場合、`defval`を返します。 `strict`がFalseで変換に失敗した場合、文字列内から数値パターンを検索し、 そのパターンが浮動小数点数として変換できればその値を返します。

パラメータ:
  • s (str or None) -- 変換する文字列。

  • defval (float or object) -- 変換失敗時に返すデフォルト値。

  • strict (bool) -- 厳密な型変換を行うかどうかのフラグ。

戻り値:

変換された浮動小数点数、または`defval`。

戻り値の型:

float or object

tklib.tkutils.pint(s, defval=0, strict=True)[ソース]

文字列を整数に変換します。

まず文字列全体を整数として変換を試みます。 `strict`がTrueで変換に失敗した場合、`defval`を返します。 `strict`がFalseで変換に失敗した場合、文字列内から数値パターンを検索し、 そのパターンが整数として変換できればその値を返します。

パラメータ:
  • s (str or None) -- 変換する文字列。

  • defval (int or float) -- 変換失敗時に返すデフォルト値。

  • strict (bool) -- 厳密な型変換を行うかどうかのフラグ。

戻り値:

変換された整数、または`defval`。

戻り値の型:

int or float

tklib.tkutils.pintfloat(s, defval=0.0, strict=True)[ソース]

文字列を整数または浮動小数点数に変換します。

まず整数への変換を試み、失敗した場合は浮動小数点数への変換を試みます。 どちらも失敗した場合は`defval`を返します。

パラメータ:
  • s (str or None) -- 変換する文字列。

  • defval (float) -- 変換失敗時に返すデフォルト値。

  • strict (bool) -- `pfloat`関数に渡される`strict`引数。

戻り値:

変換された整数または浮動小数点数。

戻り値の型:

int or float

tklib.tkutils.print_data(labels, data_list, label_format='{:^10}', data_format='{:>10}', header=None, nmax=None, print_level=0)[ソース]

データを表形式で整形して出力します。

ラベルとデータリストを受け取り、指定されたフォーマットでヘッダーとデータを表形式で出力します。 `nmax`が指定されている場合、表示する行数を制限するためにデータをスキップすることがあります。

パラメータ:
  • labels (list[str] or list[list[str]]) -- 列のラベルのリスト。ネストされたリスト/タプルもサポート。

  • data_list (list[list]) -- 各列のデータを含むリストのリスト。

  • label_format (str) -- ラベルを整形するためのフォーマット文字列。

  • data_format (str) -- データ項目を整形するためのフォーマット文字列。

  • header (str or None) -- 表のヘッダーとして表示する文字列 (オプション)。

  • nmax (int or None) -- 表示するデータ行の最大数。これを超える場合はスキップして表示。

  • print_level (int) -- この引数は現在使用されていません。

tklib.tkutils.print_line(data_list, format='{:^10}')[ソース]

データリストの要素を整形して1行で出力します。

各データ項目は指定された`format`で整形され、スペースなしで連結されて1行に出力されます。

パラメータ:
  • data_list (list) -- 出力するデータのリスト。

  • format (str) -- 各データ項目を整形するためのフォーマット文字列。

tklib.tkutils.print_position(self=None, _class=None, exc_type=None, exc_value=None, exc_tb=None)[ソース]

現在のコードの位置情報と、オプションで例外情報を出力します。

呼び出し元のフレーム情報を利用して、現在のファイル名、関数名、行番号を標準出力に出力します。 exc_type, exc_value, `exc_tb`が指定された場合は、詳細な例外情報も出力します。

パラメータ:
  • self (object or None) -- メソッド内で呼び出す場合のインスタンス (オプション)。

  • _class (type or None) -- クラス内で呼び出す場合のクラス (オプション)。

  • exc_type (type or None) -- 例外の型 (sys.exc_info()から取得)。

  • exc_value (Exception or None) -- 例外の値 (sys.exc_info()から取得)。

  • exc_tb (types.TracebackType or None) -- 例外のトレースバックオブジェクト (sys.exc_info()から取得)。

tklib.tkutils.print_process(proc_name='', username='', print_level=1)[ソース]

現在実行中のプロセス情報を表示し、辞書として返します。

指定されたプロセス名やユーザー名に一致するプロセスを検索し、その情報を標準出力に表示します。 各プロセスのPIDをキーとする辞書としてプロセス情報を返します。

パラメータ:
  • proc_name (str) -- 検索するプロセス名の一部 (オプション)。空文字列の場合は全てを対象。

  • username (str) -- 検索するユーザー名の一部 (オプション)。'all'の場合は全てのユーザーを対象。

  • print_level (int) -- 表示の詳細レベル。0の場合は表示せず、1の場合は詳細を表示。

戻り値:

各プロセスのPIDをキーとし、その情報を含む辞書。

戻り値の型:

dict[int, dict]

tklib.tkutils.quote_command_if_space(s, special_chars='', quote_blank=True)[ソース]

スペースや特殊文字が含まれる文字列を引用符で囲みます。

コマンドライン引数などで、スペースや指定された特殊文字を含む文字列を 適切に引用符で囲むことで、単一の引数として扱われるようにします。 すでに引用符で囲まれている場合や、特定のパターンに一致する場合は処理をスキップします。

パラメータ:
  • s (str or None) -- 引用符で囲む可能性のある文字列。

  • special_chars (str) -- 引用符で囲むべき特殊文字の正規表現パターン。

  • quote_blank (bool) -- この引数は現在使用されていません。

戻り値:

必要に応じて引用符で囲まれた文字列。

戻り値の型:

str or None

tklib.tkutils.raise_error(desc='custom error')[ソース]

カスタムエラーを発生させます。

指定された説明文で`CustomError`例外を発生させます。

パラメータ:

desc (str) -- エラーの説明。

例外:

CustomError -- 指定された説明を持つカスタムエラー。

tklib.tkutils.read_csv(path, delimiter=',', newline='', first_header=1, convert_float=0, convert_int=0)[ソース]

CSVファイルを読み込み、ヘッダーとデータのリストを返します。

CSVファイルを読み込み、`first_header`フラグに基づいて最初の行をヘッダーとして扱います。 残りのデータは行のリストとして返されます。 `convert_float`または`convert_int`フラグに応じて、数値データは自動的に変換されます。

パラメータ:
  • path (str or Path) -- 読み込むCSVファイルのパス。

  • delimiter (str) -- CSVファイルの区切り文字。

  • newline (str) -- `csv.reader`に渡す`newline`引数。

  • first_header (int or bool) -- 最初の行をヘッダーとして扱うかどうかのフラグ。1の場合はヘッダーとして扱う。

  • convert_float (int or bool) -- データを浮動小数点数に変換するかどうかのフラグ。

  • convert_int (int or bool) -- データを整数に変換するかどうかのフラグ。`convert_float`より優先度が低い。

戻り値:

(ヘッダーのリスト, データの2次元リスト) のタプル。ファイル読み込み失敗時は(None, None)。

戻り値の型:

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

tklib.tkutils.read_csv2(fname, delimiter=',')[ソース]

CSVファイルを読み込み、最初の列をx軸、残りをy軸とする形式でデータを返します。

CSVファイルの1行目をヘッダーとして読み込み、最初のラベルを`xlabel`、 残りのラベルを`ylabels`として扱います。 各列のデータはそれぞれ`x`と`ylist`(yデータのリストのリスト)として取得し、 `pfloat`で浮動小数点数に変換します。

パラメータ:
  • fname (str or Path) -- 読み込むCSVファイルのパス。

  • delimiter (str) -- CSVファイルの区切り文字。

戻り値:

(全てのラベルのリスト, 全てのデータのリスト) のタプル。最初の要素がxデータ、以降がyデータ。

戻り値の型:

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

tklib.tkutils.read_csv_to_dict(path, delimiter=',', print_level=1)[ソース]

CSVファイルを読み込み、列名をキーとする辞書形式でデータを返します。

CSVファイルの1行目をヘッダーとして読み込み、その列名をキーとする辞書を作成します。 各キーの値は、その列のデータをリストとして保持します。 データは`pconv`関数で自動的に型変換されます。

パラメータ:
  • path (str or Path) -- 読み込むCSVファイルのパス。

  • delimiter (str) -- CSVファイルの区切り文字。

  • print_level (int) -- ファイル読み込みエラー時の警告表示レベル。

戻り値:

(ラベルのリスト, 列名をキーとするデータ辞書) のタプル。ファイル読み込み失敗時は(None, None)。

戻り値の型:

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

tklib.tkutils.read_csv_to_dict_list(path, delimiter=',', newline='', convert_float=0, convert_int=0, print_level=1)[ソース]

CSVファイルを読み込み、行を要素とする辞書のリスト形式でデータを返します。

CSVファイルの各行を辞書として読み込み、その辞書のリストを作成します。 辞書のキーはCSVファイルのヘッダー行から取得されます。 `convert_float`または`convert_int`フラグに応じて、数値データは自動的に変換されます。

パラメータ:
  • path (str or Path) -- 読み込むCSVファイルのパス。

  • delimiter (str) -- CSVファイルの区切り文字。

  • newline (str) -- `csv.DictReader`に渡す`newline`引数。

  • convert_float (int or bool) -- データを浮動小数点数に変換するかどうかのフラグ。

  • convert_int (int or bool) -- データを整数に変換するかどうかのフラグ。`convert_float`より優先度が低い。

  • print_level (int) -- ファイル読み込みエラー時の警告表示レベル。

戻り値:

辞書のリスト。ファイル読み込み失敗時はNone。

戻り値の型:

list[dict[str, object]] or None

tklib.tkutils.remove_comments(line)[ソース]

文字列からコメント部分を削除します。

文字列リテラル内の'#'は保護し、それ以外の行末から'#'以降の部分をコメントとして削除します。

パラメータ:

line (str) -- コメントを含む可能性のある文字列。

戻り値:

コメントが削除された文字列。

戻り値の型:

str

tklib.tkutils.rename_file(path, newpath)[ソース]

ファイル名を変更します。

`os.rename()`を使用してファイルのパスを変更します。

パラメータ:
  • path (str or Path) -- 変更する元のファイルのパス。

  • newpath (str or Path) -- 新しいファイルのパス。

戻り値:

名前変更が成功した場合は1、失敗した場合は0。

戻り値の型:

int

tklib.tkutils.replace_path(path, template, ext_dict={})[ソース]

ファイルパスをテンプレート文字列に基づいてフォーマットします。

与えられたファイルパスを絶対パス、ディレクトリ名、ファイル名、ファイル本体、拡張子に分解し、 これらの情報を含む辞書を生成します。 この辞書と`ext_dict`を組み合わせて、`template`文字列をフォーマットします。

パラメータ:
  • path (str or Path) -- フォーマットする元のファイルパス。

  • template (str) -- フォーマットに使用するテンプレート文字列 (例: "{dirname}/{filebody}_new{ext}")。

  • ext_dict (dict) -- テンプレートに渡される追加の辞書。デフォルトのパス情報に上書きされることもあります。

戻り値:

テンプレートに基づいてフォーマットされた文字列。

戻り値の型:

str

tklib.tkutils.safe_getelement(var, key, defval=None)[ソース]

辞書やリストから指定されたキー/インデックスに対応する要素を安全に取得します。

指定された`var`から`key`に対応する要素を返します。 キーが存在しないなどのエラーが発生した場合は、`defval`を返します。

パラメータ:
  • var (dict or list) -- 要素を取得したい辞書またはリスト。

  • key (str or int) -- 取得したい要素のキーまたはインデックス。

  • defval (object or None) -- キーが見つからない場合に返すデフォルト値。

戻り値:

指定されたキーの要素、または`defval`。

戻り値の型:

object or None

tklib.tkutils.save_csv(path, headerlist, datalist, is_print=0)[ソース]

ヘッダーとデータリストをCSVファイルに保存します。

指定されたパスにCSVファイルを作成し、`headerlist`をヘッダーとして書き込みます。 `datalist`は列ごとのデータのリストのリストとして与えられ、行としてファイルに書き込まれます。 `is_print`がTrueの場合、書き込むデータをコンソールにも表示します。

パラメータ:
  • path (str or Path) -- 保存するCSVファイルのパス。

  • headerlist (list[str]) -- CSVファイルのヘッダーとして書き込む文字列のリスト。

  • datalist (list[list[object]]) -- 書き込むデータ。列のリストのリスト (datalist[列番号][行番号])。

  • is_print (int or bool) -- 保存するデータをコンソールにも出力するかどうかのフラグ。

戻り値:

保存が成功した場合は1、失敗した場合は0。

戻り値の型:

int

tklib.tkutils.search_executable_path(filenames, defval=None, filename_only=False)[ソース]

複数の実行可能ファイル名から、最初にPATH環境変数で見つかったファイルのフルパスを検索します。

`filenames`のリストを順番に`find_executable_path`で検索し、 最初に見つかった実行可能ファイルのパスを返します。

パラメータ:
  • filenames (list[str]) -- 検索する実行可能ファイル名のリスト。

  • defval (object or None) -- ファイルが見つからない場合に返すデフォルト値。

  • filename_only (bool) -- フルパスではなくファイル名のみを返すかどうかのフラグ。

戻り値:

最初に見つかった実行可能ファイルのフルパスまたはファイル名、または`defval`。

戻り値の型:

str or None

tklib.tkutils.set_exception(func=<function handle_exception>, print_level=1)[ソース]

デフォルトの例外ハンドラを設定します。

`sys.excepthook`に指定された関数を設定し、未処理の例外が発生した際の挙動をカスタマイズします。 デフォルトでは`handle_exception`が設定されます。

パラメータ:
  • func (callable) -- 例外ハンドラとして設定する関数。デフォルトは`handle_exception`。

  • print_level (int) -- 情報表示の詳細レベル。1の場合は設定情報を表示。

tklib.tkutils.setenv(key, val=None)[ソース]

環境変数を設定または削除します。

`val`がNoneの場合、指定されたキーの環境変数を削除します。 それ以外の場合は、`val`で指定された値を環境変数に設定します。

パラメータ:
  • key (str) -- 設定または削除する環境変数名。

  • val (str or None) -- 設定する値 (オプション)。Noneの場合、環境変数を削除。

tklib.tkutils.sfmt(str, fmt)[ソース]

文字列を指定されたフォーマットで整形します。

Pythonのf-stringのようなフォーマット機能を使用して、 文字列を中央揃え、右揃えなどの指定された書式で整形します。

パラメータ:
  • str (str) -- 整形する文字列。

  • fmt (str) -- フォーマット文字列 (例: '^10', '>10')。

戻り値:

整形された文字列。

戻り値の型:

str

tklib.tkutils.sort_lists(lists)[ソース]

複数のリストをまとめてソートします。

与えられたリストのリストを、最初のリストの要素を基準にソートし、 他のリストの要素もそれに合わせて並べ替えます。

パラメータ:

lists (list[list]) -- ソートする複数のリストを含むリスト。

戻り値:

ソートされた複数のリストを含むリスト。

戻り値の型:

list[list]

tklib.tkutils.split_command_line(s, quotation='remove')[ソース]

コマンドライン文字列をコマンドと引数リストに分割します。

与えられたコマンドライン文字列を、最初のトークンをコマンドとし、 残りの部分を引用符で囲まれた引数を考慮してリストに分割します。

パラメータ:
  • s (str) -- 分割するコマンドライン文字列。

  • quotation (str) -- 引数文字列の引用符の処理方法 ('remove', 'keep')。

戻り値:

コマンド、残りの引数文字列、および分割された引数リストのタプル。

戻り値の型:

tuple[str, str, list[str]]

tklib.tkutils.split_drive(path)[ソース]

パスをドライブ名と残りのパスに分割します。

Windows環境ではドライブレター(例: 'C:')とその後のパスに分割します。 それ以外のOSでは、ドライブ名として空文字列を返し、元のパスをそのまま返します。

パラメータ:

path (str or Path) -- 分割するパス。

戻り値:

ドライブ名とドライブ名を除いたパスのタプル。

戻り値の型:

tuple[str, str]

tklib.tkutils.split_file_path(path, check_dir=False)[ソース]

ファイルパスを構成要素(ディレクトリ名、ファイル名、ファイル本体、拡張子)に分割します。

指定されたパスを、ディレクトリ名、ベース名(ファイル名+拡張子)、 ファイル本体(拡張子なしのファイル名)、拡張子に分割して返します。 Windows環境ではバックスラッシュをスラッシュに一時的に変換して処理します。 `check_dir`がTrueでパスがディレクトリの場合、特別な処理を行います。

パラメータ:
  • path (str or Path) -- 分割するファイルパス。

  • check_dir (bool) -- パスがディレクトリであるかを確認し、その場合特別な処理をするかどうかのフラグ。

戻り値:

(ディレクトリ名, ベース名, ファイル本体名, 拡張子) のタプル。

戻り値の型:

tuple[str, str, str, str]

tklib.tkutils.split_optstr(str)[ソース]

オプション文字列を値とIDに分割します。

文字列が`val:id`の形式である場合、`:`で分割し、それぞれを浮動小数点数と整数に変換して返します。 分割できない場合は、元の文字列とNoneを返します。

パラメータ:

str (str) -- 分割するオプション文字列。

戻り値:

値とIDのタプル。値は浮動小数点数、IDは整数、または元の文字列とNone。

戻り値の型:

tuple[float or str, int or None]

tklib.tkutils.split_quoted_args(s, sep='\\s+', quotation='remove')[ソース]

引用符で囲まれた引数を含む文字列を分割します。

スペースまたは指定された区切り文字で文字列を引数のリストに分割します。 二重引用符または単一引用符で囲まれた部分は単一の引数として扱われます。 `quotation`パラメータによって引用符の扱いは変更されます。

パラメータ:
  • s (str) -- 分割する引数文字列。

  • sep (str) -- 引数を区切る正規表現パターン。デフォルトは空白文字。

  • quotation (str) -- 引用符の処理方法 ('remove', 'keep')。

戻り値:

分割された引数のリスト。

戻り値の型:

list[str]

tklib.tkutils.split_two(s, sep='\\s+', quotation='remove', defval='')[ソース]

文字列を最初の区切り文字で2つに分割します。

引用符で囲まれた部分を考慮して、文字列をコマンド部分と残りの部分に分割します。 分割できない場合は、元の文字列と`defval`を返します。 `quotation`パラメータによって引用符の扱いは変更されます。

パラメータ:
  • s (str) -- 分割する文字列。

  • sep (str) -- 分割に使用する正規表現の区切り文字パターン。デフォルトは空白文字。

  • quotation (str) -- 分割後の文字列の引用符の処理方法 ('remove', 'keep')。

  • defval (str) -- 第二の部分が空の場合に返すデフォルト値。

戻り値:

分割された2つの文字列のタプル。

戻り値の型:

tuple[str, str]

tklib.tkutils.str2val(s)[ソース]

文字列を対応するPythonの値(None, True, False, 数値)に変換します。

'None', 'True', 'False'という文字列はそれぞれのPythonのキーワードに変換されます。 それ以外の文字列は`pconv`関数で数値への変換を試みます。

パラメータ:

s (str or None) -- 変換する文字列。

戻り値:

変換されたPythonの値。

戻り値の型:

object or None

tklib.tkutils.terminate(message=None, usage=None, pause=False)[ソース]

メッセージを表示し、オプションで一時停止してからプログラムを終了します。

任意のメッセージと使用法メッセージを表示し、 `pause`がTrueの場合はユーザーがEnterキーを押すまで待ち、 その後`exit()`を呼び出してプログラムを終了します。

パラメータ:
  • message (str or None) -- 終了時に表示するメッセージ (オプション)。

  • usage (callable or None) -- プログラムの使用法を表示する関数 (オプション)。

  • pause (bool) -- プログラム終了前に一時停止するかどうかのフラグ。

tklib.tkutils.to_list(variable)[ソース]

様々な型の変数をリストに変換します。

NumPy配列、Pandas DataFrame、Pandas Series、既存のリストなどのオブジェクトを Pythonのリスト形式に変換して返します。

パラメータ:

variable (object) -- リストに変換する変数。

戻り値:

変換されたリスト。

戻り値の型:

list

tklib.tkutils.transpose_list2d(data_list)[ソース]

2次元リストを転置します。

行と列を入れ替えた新しい2次元リストを生成します。

パラメータ:

data_list (list[list]) -- 転置する2次元リスト。

戻り値:

転置された2次元リスト。

戻り値の型:

list[list]

tklib.tkutils.val2str(val)[ソース]

Pythonの値を文字列に変換します(None, True, Falseを特別な文字列に変換)。

None, True, FalseのPythonキーワードをそれぞれの文字列リテラルに変換します。 それ以外の値はそのまま返します。

パラメータ:

val (object or None) -- 変換する値。

戻り値:

変換された文字列、または元の値。

戻り値の型:

str or object

tklib.tkutils.validate_error(y0, y1, eps, message)[ソース]

2つの値間の相対誤差を検証し、許容範囲を超える場合は終了します。

`y0`と`y1`の間の相対誤差を計算し、`eps`で定義された許容誤差を超過する場合、 エラーメッセージを出力してプログラムを終了します。 `y0`が0の場合は`y1`を基準に誤差を計算します。

パラメータ:
  • y0 (float) -- 比較する最初の値。

  • y1 (float) -- 比較する2番目の値。

  • eps (float) -- 許容される相対誤差の最大値。

  • message (str) -- エラーメッセージのプレフィックス。

例外:

SystemExit -- 相対誤差が`eps`を超える場合。