tkutils プログラム仕様

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

概要:

このモジュールは、ファイル操作、データ変換、システム情報取得、エラーハンドリングなど、 様々な一般的なユーティリティ関数を提供します。

詳細説明:

matplotlibやnumpyなどのライブラリに依存する機能も含まれます。

関連リンク:

tkutils_usage

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

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

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

引数:
param date:

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

type date:

datetime.datetime or None

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param path:

判定するパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

bool

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

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

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

引数:
param list:

処理対象のリスト。

type list:

list

param n:

最終的なリストの目標長。

type n:

int

param defval:

リストを拡張する際に使用するデフォルト値。

type defval:

object

戻り値:
returns:

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

rtype:

list

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

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

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

戻り値:
returns:

パス区切り文字。

rtype:

str

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

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

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

引数:
param path:

判定するパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

bool

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

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

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

引数:
param path:

判定するパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

bool

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

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

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

引数:
param dir:

ベースとなるディレクトリパス。

type dir:

str or Path

param args:

結合するパス要素。

type args:

str or Path

戻り値:
returns:

結合された新しいパス。

rtype:

str

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

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

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

引数:
param path:

分割するファイルパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

tuple[str, str, str, str]

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

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

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

引数:
param var:

操作対象の辞書。

type var:

dict

param key1:

第一レベルのキー。

type key1:

str or Any

param key2:

第二レベルのキー (オプション)。

type key2:

str or Any or None

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

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

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

引数:
param path:

環境変数に追加するパス。

type path:

str

param varname:

パスを追加する環境変数名。

type varname:

str

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param str:

処理対象の文字列。

type str:

str

param quotation:

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

type quotation:

str

param quotation_original:

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

type quotation_original:

str

戻り値:
returns:

処理後の文字列。

rtype:

str

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

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

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

引数:
param str:

解析する変数文字列。

type str:

str

戻り値:
returns:

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

rtype:

object

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

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

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

引数:
param obj:

属性をチェックするオブジェクト。

type obj:

object

param isprint:

未定義の属性名をコンソールに出力するかどうかのフラグ。

type isprint:

int or bool

param args:

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

type args:

str

戻り値:
returns:

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

rtype:

list[str] or None

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

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

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

引数:
param val:

変換する値。

type val:

float or object

param format:

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

type format:

str or None

戻り値:
returns:

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

rtype:

str or object

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

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

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

引数:
param s:

変数プレースホルダを含む文字列。

type s:

str

param vars:

変数名とその値を含む辞書。

type vars:

dict[str, str]

param prefix:

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

type prefix:

str

param bra:

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

type bra:

str

param ket:

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

type ket:

str

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param color:

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

type color:

str or None

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param path:

コピー元のファイルのパス。

type path:

str or Path

param newpath:

コピー先のファイルのパス。

type newpath:

str or Path

戻り値:
returns:

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

rtype:

int

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

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

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

引数:
param s:

引用符を含む可能性のある文字列。

type s:

str

戻り値:
returns:

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

rtype:

str

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

ファイルを削除します。

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

引数:
param path:

削除するファイルのパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

int

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

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

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

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param filename:

検索する実行可能ファイルの名前。

type filename:

str

param defval:

ファイルが見つからない場合に返すデフォルト値。

type defval:

object or None

param filename_only:

フルパスではなくファイル名のみを返すかどうかのフラグ。

type filename_only:

bool

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param filename:

検索するファイルのパターン (例: 'my_file*.txt')。

type filename:

str

param start_dir:

検索を開始するディレクトリパス (オプション)。

type start_dir:

str or Path or None

戻り値:
returns:

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

rtype:

list[str]

警告

この関数は、os.get.cwd()という存在しない関数を呼び出しています。 おそらくos.getcwd()の間違いであり、現在のコードでは実行時にエラーが発生します。

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

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

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

引数:
param filename:

検索するファイルのパターン。

type filename:

str

param start_dir:

検索を開始するディレクトリパス (オプション)。

type start_dir:

str or Path or None

param defval:

ファイルが見つからない場合に返すデフォルト値。

type defval:

object or None

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param x:

ソートされた数値のリスト。

type x:

list[float]

param xmin:

検索範囲の最小値。

type xmin:

float

param xmax:

検索範囲の最大値。

type xmax:

float

戻り値:
returns:

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

rtype:

tuple[int, int]

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

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

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

引数:
param vars:

整形して結合する文字列のリスト。

type vars:

list[str or None]

param format:

各要素を整形するためのフォーマット文字列。

type format:

str

param separator:

要素間の区切り文字。

type separator:

str

戻り値:
returns:

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

rtype:

str

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

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

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

戻り値:
returns:

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

rtype:

str

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

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

引数:
param instance:

クラスを取得したいインスタンス。

type instance:

object

戻り値:
returns:

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

rtype:

type

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

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

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

引数:
param obj:

定義位置を取得したいオブジェクトまたはクラス。

type obj:

object or type

戻り値:
returns:

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

rtype:

tuple[str, int]

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

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

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

引数:
param path:

ディレクトリ部分を取得する対象のパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param path:

拡張子を取得するファイルのパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

str

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

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

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

戻り値:
returns:

拡張子区切り文字。

rtype:

str

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

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

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

引数:
param path:

ファイルを検索するディレクトリパス。ファイルパスの場合、そのディレクトリが使用されます。

type path:

str or Path

param filemask:

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

type filemask:

str

param filename_only:

結果のファイル名をベース名のみにするかどうかのフラグ。

type filename_only:

bool

戻り値:
returns:

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

rtype:

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

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

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

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

引数:
param key:

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

type key:

str

戻り値:
returns:

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

rtype:

list[str]

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

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

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

引数:
param path:

絶対パスを取得する対象のパス。

type path:

str or Path

戻り値:
returns:

パスの絶対パス。

rtype:

str

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

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

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

引数:
param path:

最後のディレクトリ名を取得する対象のパス。

type path:

str or Path

param check_dir:

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

type check_dir:

bool

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param list:

最大値のインデックスを検索するリストまたはNumPy配列。

type list:

list or np.ndarray

param axis:

NumPy配列の場合の軸。リストの場合は無視されます。

type axis:

int

戻り値:
returns:

最大値のインデックス。

rtype:

int

警告

この関数は、np.arg_maxという存在しない関数を呼び出しています。 おそらくnp.argmaxの間違いであり、現在のコードでは実行時にエラーが発生します。

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

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

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

引数:
param list:

最小値のインデックスを検索するリストまたはNumPy配列。

type list:

list or np.ndarray

param axis:

NumPy配列の場合の軸。リストの場合は無視されます。

type axis:

int

戻り値:
returns:

最小値のインデックス。

rtype:

int

警告

この関数は、np.arg_minという存在しない関数を呼び出しています。 おそらくnp.argminの間違いであり、現在のコードでは実行時にエラーが発生します。

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

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

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

戻り値:
returns:

OSの名前を表す文字列。

rtype:

str

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

OSの情報を取得します。

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

引数:
param terse:

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

type terse:

bool

戻り値:
returns:

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

rtype:

tuple[str, str, str, str]

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

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

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

引数:
param varname:

パスのリストを取得する環境変数名。

type varname:

str

戻り値:
returns:

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

rtype:

list[str]

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

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

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

戻り値:
returns:

パス区切り文字。

rtype:

str

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

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

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

引数:
param self:

メソッド内で呼び出す場合のインスタンス (オプション)。

type self:

object or None

param _class:

クラス内で呼び出す場合のクラス (オプション)。

type _class:

type or None

戻り値:
returns:

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

rtype:

dict[str, str or int]

警告

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

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

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

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

引数:
param self:

メソッド内で呼び出す場合のインスタンス (オプション)。

type self:

object or None

param _class:

クラス内で呼び出す場合のクラス (オプション)。

type _class:

type or None

戻り値:
returns:

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

rtype:

str

警告

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

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

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

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

引数:
param path:

上位ディレクトリ名を取得する対象のパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param env_vars:

ユーザーのホームディレクトリを特定するための環境変数名のリスト。

type env_vars:

list[str]

param dir_names:

ユーザー設定ファイル用のディレクトリ名のリスト。

type dir_names:

list[str]

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param position:

取得するコマンドライン引数の位置 (0はスクリプト名)。

type position:

int

param defval:

引数が存在しない場合に返すデフォルト値。

type defval:

object or None

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param key:

取得する環境変数名。

type key:

str

param defval:

環境変数が存在しない場合に返すデフォルト値。

type defval:

str or None

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param position:

取得するコマンドライン引数の位置。

type position:

int

param defval:

引数が存在しない場合、または変換失敗時に返すデフォルト値。

type defval:

float or None

戻り値:
returns:

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

rtype:

float or None

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

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

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

引数:
param position:

取得するコマンドライン引数の位置。

type position:

int

param defval:

引数が存在しない場合、または変換失敗時に返すデフォルト値。

type defval:

int or None

戻り値:
returns:

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

rtype:

int or None

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

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

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

引数:
param idx:

スタイルを取得するためのインデックス。

type idx:

int

戻り値:
returns:

色と線種のタプル。

rtype:

tuple[str, str]

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

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

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

引数:
param exc_type:

例外の型 (sys.exc_info()から取得)。

type exc_type:

type

param exc_value:

例外の値 (sys.exc_info()から取得)。

type exc_value:

Exception

param exc_tb:

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

type exc_tb:

types.TracebackType

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

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

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

引数:
param index:

検索するインデックスまたは値。

type index:

int or str

param list_var:

検索対象のリスト。

type list_var:

list

param defval:

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

type defval:

tuple[object, object]

戻り値:
returns:

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

rtype:

tuple[int or None, object or None]

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

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

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

引数:
param path:

判定するパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

bool

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

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

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

引数:
param path:

判定するパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

bool

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

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

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

引数:
param path:

判定するパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

bool

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

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

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

引数:
param s:

判定する文字列または数値。

type s:

str or float

戻り値:
returns:

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

rtype:

bool

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

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

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

引数:
param s:

判定する文字列または数値。

type s:

str or int

戻り値:
returns:

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

rtype:

bool

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

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

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

戻り値:
returns:

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

rtype:

str or bool

警告

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

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

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

引数:
param var:

判定する変数。

type var:

object

戻り値:
returns:

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

rtype:

bool

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

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

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

戻り値:
returns:

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

rtype:

str or bool

警告

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

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

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

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

引数:
param var:

判定する変数。

type var:

object

戻り値:
returns:

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

rtype:

bool

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

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

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

戻り値:
returns:

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

rtype:

str or bool

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

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

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

引数:
param list:

結合する要素のリスト。

type list:

list

param format:

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

type format:

str

param sep:

要素間の区切り文字。

type sep:

str

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param proc_name:

検索するプロセス名の一部 (オプション)。

type proc_name:

str

param username:

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

type username:

str

param pid:

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

type pid:

str

param print_level:

表示の詳細レベル。0の場合は表示せず、1の場合は詳細を表示。

type print_level:

int

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

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

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

引数:
param lprint:

現在の印刷レベル。

type lprint:

int

param level:

メッセージを出力するための最小レベル。

type level:

int

param args:

print関数に渡す位置引数。

type args:

Any

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

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

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

引数:
param dir:

ベースとなるディレクトリパス。

type dir:

str or Path

param args:

結合するパス要素。

type args:

str or Path

戻り値:
returns:

結合された新しいパス。

rtype:

str

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

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

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

引数:
param tobj:

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

type tobj:

object

param sobj:

属性を提供するソースオブジェクト。

type sobj:

object or None

戻り値:
returns:

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

rtype:

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が等間隔なデータであると仮定し、インデックス計算によって範囲を決定します。

引数:
param x:

x座標のリスト。x0がNoneの場合に必須。

type x:

list[float] or None

param y:

y座標のリスト。

type y:

list[float] or None

param x0:

xデータの開始値 (等間隔データの場合)。

type x0:

float or None

param xstep:

xデータのステップ幅 (等間隔データの場合)。

type xstep:

float or None

param xmin:

評価範囲のx最小値。

type xmin:

float or None

param xmax:

評価範囲のx最大値。

type xmax:

float or None

戻り値:
returns:

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

rtype:

tuple[float, float]

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

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

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

引数:
param path:

修正する元のファイルパス。

type path:

str or Path

param addpath:

ファイル本体名に追加する文字列。

type addpath:

str

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param args:

print関数に渡す位置引数。

type args:

Any

param fp:

出力先のファイルオブジェクト (オプション)。

type fp:

io.TextIOBase or None

param kwargs:

print関数に渡すキーワード引数 (例: sep, end)。

type kwargs:

Any

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

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

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

引数:
param name:

正規化する名前文字列。

type name:

str or None

param conv_table:

normalize_strに渡す変換テーブル。

type conv_table:

dict[int, str]

param unicodedata_mode:

unicodedata.normalizeで使用される正規化モード。

type unicodedata_mode:

str

param upper_mode:

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

type upper_mode:

str

戻り値:
returns:

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

rtype:

str or None

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

文字列を正規化します。

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

引数:
param str:

正規化する文字列。

type str:

str or None

param conv_table:

str.maketransで作成された変換テーブル (オプション)。 Noneの場合、デフォルトの変換テーブルが使用されます。

type conv_table:

dict[int, str] or None

param target_char:

デフォルトの変換テーブルで使用される変換先の文字。

type target_char:

str

param unicodedata_mode:

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

type unicodedata_mode:

str

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param s:

変換する文字列。

type s:

str or None

param defval:

sがNoneの場合に返すデフォルト値。

type defval:

object

param strict:

この関数ではstrict引数は使用されません。

type strict:

bool

戻り値:
returns:

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

rtype:

int or float or str or object

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

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

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

引数:
param s:

変換する文字列。

type s:

str

param type:

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

type type:

type or str or list[type or str]

param defval:

変換失敗時に返すデフォルト値。

type defval:

object or None

param strict:

厳密な型変換を行うかどうかのフラグ。

type strict:

bool

戻り値:
returns:

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

rtype:

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のような柔軟な変換関数を使用します。

引数:
param s:

変換する文字列。

type s:

str

param type:

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

type type:

type or str

param defval:

変換失敗時に返すデフォルト値。

type defval:

object or None

param strict:

厳密な型変換を行うかどうかのフラグ。

type strict:

bool

戻り値:
returns:

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

rtype:

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で変換に失敗した場合、文字列内から数値パターンを検索し、 そのパターンが浮動小数点数として変換できればその値を返します。

引数:
param s:

変換する文字列。

type s:

str or None

param defval:

変換失敗時に返すデフォルト値。

type defval:

float or object

param strict:

厳密な型変換を行うかどうかのフラグ。

type strict:

bool

戻り値:
returns:

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

rtype:

float or object

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

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

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

引数:
param s:

変換する文字列。

type s:

str or None

param defval:

変換失敗時に返すデフォルト値。

type defval:

int or float

param strict:

厳密な型変換を行うかどうかのフラグ。

type strict:

bool

戻り値:
returns:

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

rtype:

int or float

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

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

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

引数:
param s:

変換する文字列。

type s:

str or None

param defval:

変換失敗時に返すデフォルト値。

type defval:

float

param strict:

pfloat関数に渡されるstrict引数。

type strict:

bool

戻り値:
returns:

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

rtype:

int or float

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

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

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

引数:
param labels:

列のラベルのリスト。ネストされたリスト/タプルもサポート。

type labels:

list[str] or list[list[str]]

param data_list:

各列のデータを含むリストのリスト。

type data_list:

list[list]

param label_format:

ラベルを整形するためのフォーマット文字列。

type label_format:

str

param data_format:

データ項目を整形するためのフォーマット文字列。

type data_format:

str

param header:

表のヘッダーとして表示する文字列 (オプション)。

type header:

str or None

param nmax:

表示するデータ行の最大数。これを超える場合はスキップして表示。

type nmax:

int or None

param print_level:

この引数は現在使用されていません。

type print_level:

int

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

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

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

引数:
param data_list:

出力するデータのリスト。

type data_list:

list

param format:

各データ項目を整形するためのフォーマット文字列。

type 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が指定された場合は、詳細な例外情報も出力します。

引数:
param self:

メソッド内で呼び出す場合のインスタンス (オプション)。

type self:

object or None

param _class:

クラス内で呼び出す場合のクラス (オプション)。

type _class:

type or None

param exc_type:

例外の型 (sys.exc_info()から取得)。

type exc_type:

type or None

param exc_value:

例外の値 (sys.exc_info()から取得)。

type exc_value:

Exception or None

param exc_tb:

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

type exc_tb:

types.TracebackType or None

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

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

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

引数:
param proc_name:

検索するプロセス名の一部 (オプション)。空文字列の場合は全てを対象。

type proc_name:

str

param username:

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

type username:

str

param print_level:

表示の詳細レベル。0の場合は表示せず、1の場合は詳細を表示。

type print_level:

int

戻り値:
returns:

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

rtype:

dict[int, dict]

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

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

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

引数:
param s:

引用符で囲む可能性のある文字列。

type s:

str or None

param special_chars:

引用符で囲むべき特殊文字の正規表現パターン。

type special_chars:

str

param quote_blank:

この引数は現在使用されていません。

type quote_blank:

bool

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param desc:

エラーの説明。

type desc:

str

例外:
raises 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フラグに応じて、数値データは自動的に変換されます。

引数:
param path:

読み込むCSVファイルのパス。

type path:

str or Path

param delimiter:

CSVファイルの区切り文字。

type delimiter:

str

param newline:

csv.readerに渡すnewline引数。

type newline:

str

param first_header:

最初の行をヘッダーとして扱うかどうかのフラグ。1の場合はヘッダーとして扱う。

type first_header:

int or bool

param convert_float:

データを浮動小数点数に変換するかどうかのフラグ。

type convert_float:

int or bool

param convert_int:

データを整数に変換するかどうかのフラグ。convert_floatより優先度が低い。

type convert_int:

int or bool

戻り値:
returns:

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

rtype:

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で浮動小数点数に変換します。

引数:
param fname:

読み込むCSVファイルのパス。

type fname:

str or Path

param delimiter:

CSVファイルの区切り文字。

type delimiter:

str

戻り値:
returns:

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

rtype:

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

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

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

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

引数:
param path:

読み込むCSVファイルのパス。

type path:

str or Path

param delimiter:

CSVファイルの区切り文字。

type delimiter:

str

param print_level:

ファイル読み込みエラー時の警告表示レベル。

type print_level:

int

戻り値:
returns:

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

rtype:

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フラグに応じて、数値データは自動的に変換されます。

引数:
param path:

読み込むCSVファイルのパス。

type path:

str or Path

param delimiter:

CSVファイルの区切り文字。

type delimiter:

str

param newline:

csv.DictReaderに渡すnewline引数。

type newline:

str

param convert_float:

データを浮動小数点数に変換するかどうかのフラグ。

type convert_float:

int or bool

param convert_int:

データを整数に変換するかどうかのフラグ。convert_floatより優先度が低い。

type convert_int:

int or bool

param print_level:

ファイル読み込みエラー時の警告表示レベル。

type print_level:

int

戻り値:
returns:

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

rtype:

list[dict[str, object]] or None

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

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

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

引数:
param line:

コメントを含む可能性のある文字列。

type line:

str

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param path:

変更する元のファイルのパス。

type path:

str or Path

param newpath:

新しいファイルのパス。

type newpath:

str or Path

戻り値:
returns:

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

rtype:

int

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

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

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

引数:
param path:

フォーマットする元のファイルパス。

type path:

str or Path

param template:

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

type template:

str

param ext_dict:

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

type ext_dict:

dict

戻り値:
returns:

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

rtype:

str

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

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

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

引数:
param var:

要素を取得したい辞書またはリスト。

type var:

dict or list

param key:

取得したい要素のキーまたはインデックス。

type key:

str or int

param defval:

キーが見つからない場合に返すデフォルト値。

type defval:

object or None

戻り値:
returns:

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

rtype:

object or None

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

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

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

引数:
param path:

保存するCSVファイルのパス。

type path:

str or Path

param headerlist:

CSVファイルのヘッダーとして書き込む文字列のリスト。

type headerlist:

list[str]

param datalist:

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

type datalist:

list[list[object]]

param is_print:

保存するデータをコンソールにも出力するかどうかのフラグ。

type is_print:

int or bool

戻り値:
returns:

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

rtype:

int

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

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

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

引数:
param filenames:

検索する実行可能ファイル名のリスト。

type filenames:

list[str]

param defval:

ファイルが見つからない場合に返すデフォルト値。

type defval:

object or None

param filename_only:

フルパスではなくファイル名のみを返すかどうかのフラグ。

type filename_only:

bool

戻り値:
returns:

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

rtype:

str or None

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

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

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

引数:
param func:

例外ハンドラとして設定する関数。デフォルトはhandle_exception。

type func:

callable

param print_level:

情報表示の詳細レベル。1の場合は設定情報を表示。

type print_level:

int

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

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

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

引数:
param key:

設定または削除する環境変数名。

type key:

str

param val:

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

type val:

str or None

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

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

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

引数:
param str:

整形する文字列。

type str:

str

param fmt:

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

type fmt:

str

戻り値:
returns:

整形された文字列。

rtype:

str

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

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

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

引数:
param lists:

ソートする複数のリストを含むリスト。

type lists:

list[list]

戻り値:
returns:

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

rtype:

list[list]

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

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

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

引数:
param s:

分割するコマンドライン文字列。

type s:

str

param quotation:

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

type quotation:

str

戻り値:
returns:

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

rtype:

tuple[str, str, list[str]]

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

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

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

引数:
param path:

分割するパス。

type path:

str or Path

戻り値:
returns:

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

rtype:

tuple[str, str]

警告

この関数は、m.groups()[0]の後に再度m.groups()[0]を代入しており、 dirname_wo_driveが正しく設定されない可能性があります。 おそらく、m.groups()[1]の間違いであると思われます。

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

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

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

引数:
param path:

分割するファイルパス。

type path:

str or Path

param check_dir:

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

type check_dir:

bool

戻り値:
returns:

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

rtype:

tuple[str, str, str, str]

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

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

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

引数:
param str:

分割するオプション文字列。

type str:

str

戻り値:
returns:

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

rtype:

tuple[float or str, int or None]

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

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

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

引数:
param s:

分割する引数文字列。

type s:

str

param sep:

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

type sep:

str

param quotation:

引用符の処理方法 ('remove', 'keep')。

type quotation:

str

戻り値:
returns:

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

rtype:

list[str]

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

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

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

引数:
param s:

分割する文字列。

type s:

str

param sep:

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

type sep:

str

param quotation:

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

type quotation:

str

param defval:

第二の部分が空の場合に返すデフォルト値。

type defval:

str

戻り値:
returns:

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

rtype:

tuple[str, str]

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

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

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

引数:
param s:

変換する文字列。

type s:

str or None

戻り値:
returns:

変換されたPythonの値。

rtype:

object or None

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

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

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

引数:
param message:

終了時に表示するメッセージ (オプション)。

type message:

str or None

param usage:

プログラムの使用法を表示する関数 (オプション)。

type usage:

callable or None

param pause:

プログラム終了前に一時停止するかどうかのフラグ。

type pause:

bool

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

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

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

引数:
param variable:

リストに変換する変数。

type variable:

object

戻り値:
returns:

変換されたリスト。

rtype:

list

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

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

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

引数:
param data_list:

転置する2次元リスト。

type data_list:

list[list]

戻り値:
returns:

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

rtype:

list[list]

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

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

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

引数:
param val:

変換する値。

type val:

object or None

戻り値:
returns:

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

rtype:

str or object

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

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

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

引数:
param y0:

比較する最初の値。

type y0:

float

param y1:

比較する2番目の値。

type y1:

float

param eps:

許容される相対誤差の最大値。

type eps:

float

param message:

エラーメッセージのプレフィックス。

type message:

str

例外:
raises SystemExit:

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