pytilpack.python¶
pytilpack.python
¶
Pythonのユーティリティ集。
本格的な用途にはpydash等の利用も検討する。
SingletonMixin
¶
シングルトンパターンを提供するMixin。
例:
使用例::
class MyConfig(SingletonMixin):
def __init__(self):
self.value = "test"
config1 = MyConfig.get_singleton()
config2 = MyConfig.get_singleton()
assert config1 is config2 # 同じインスタンス
MyConfig.reset()
config3 = MyConfig.get_singleton()
assert config1 is not config3 # 新しいインスタンス
__new__(*args, **kwargs)
¶
get_singleton()
classmethod
¶
シングルトンインスタンスを取得する。
ソースコード位置: pytilpack/python.py
reset()
classmethod
¶
シングルトンインスタンスをクリアする。
deprecated(reason=None)
¶
DeprecationWarningを発生させるデコレーター。
ソースコード位置: pytilpack/python.py
coalesce(iterable, default_value=None)
¶
remove_none(iterable)
¶
find(collection, predicate)
¶
find_index(collection, predicate)
¶
empty(x)
¶
Noneまたは空の場合にTrueを返す。
関数名はis_null_or_empty等の方が正確であるが、 短く使いたいためemptyとしている。
default(x, default_value)
¶
Noneまたは空の場合にデフォルト値を返す。
関数名はdefault_if_null_or_empty等の方が正確であるが、 短く使いたいためdefaultとしている。
doc_summary(obj)
¶
docstringの先頭1行分を取得する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
obj
|
Any
|
ドキュメント文字列を取得する対象。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
str
|
docstringの先頭1行分の文字列。取得できなかった場合は""。 |
ソースコード位置: pytilpack/python.py
class_field_comments(cls)
¶
クラスからクラスフィールド毎のコメントを取得する。
ソースコード位置: pytilpack/python.py
get_bool(data, key, default_value=False, errors='strict')
¶
辞書またはリストからbool値を取得する。
ソースコード位置: pytilpack/python.py
get_int(data, key, default_value=0, errors='strict')
¶
辞書またはリストからint値を取得する。
ソースコード位置: pytilpack/python.py
get_float(data, key, default_value=0.0, errors='strict')
¶
辞書またはリストからfloat値を取得する。
ソースコード位置: pytilpack/python.py
get_str(data, key, default_value='', errors='strict')
¶
辞書またはリストからstr値を取得する。
ソースコード位置: pytilpack/python.py
get_list(data, key, default_value=None, errors='strict')
¶
辞書またはリストからlist値を取得する。
ソースコード位置: pytilpack/python.py
get_dict(data, key, default_value=None, errors='strict')
¶
辞書またはリストからdict値を取得する。
ソースコード位置: pytilpack/python.py
get(data, key, default_value=None, errors='strict', default_if_none=True)
¶
辞書またはリストから値を取得する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
data
|
list | dict
|
取得元の辞書またはリスト。 |
必須 |
key
|
str | int | list[str | int]
|
取得する値のキー。 |
必須 |
default_value
|
T | None
|
取得できなかった場合のデフォルト値。 |
None
|
errors
|
Literal['strict', 'ignore']
|
エラー時の挙動。"strict"で例外を発生させる。"ignore"でデフォルト値を返す。 |
'strict'
|
default_if_none
|
bool
|
値がNoneの場合にデフォルト値を返すか否か。 |
True
|
戻り値:
| タイプ | デスクリプション |
|---|---|
T | None
|
取得した値。取得できなかった場合はdefault_value。 |
発生:
| タイプ | デスクリプション |
|---|---|
ValueError
|
errors="strict"の場合、キー/インデックスが見つからない場合やNoneの場合に発生。 |
ソースコード位置: pytilpack/python.py
convert(value, target_type, default_value, errors='ignore')
¶
値をTの型に変換する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
value
|
Any
|
変換元の値。 |
必須 |
target_type
|
type[T]
|
変換先の型。 |
必須 |
default_value
|
T
|
取得できなかった場合のデフォルト値。 |
必須 |
errors
|
Literal['strict', 'ignore']
|
エラー時の挙動。"strict"で例外を発生させる。"ignore"でデフォルト値を返す。 |
'ignore'
|
戻り値:
| タイプ | デスクリプション |
|---|---|
T
|
取得した値。取得できなかった場合はdefault_value。 |
発生:
| タイプ | デスクリプション |
|---|---|
ValueError
|
errors="strict"の場合で値の変換に失敗した場合に発生。 |
ソースコード位置: pytilpack/python.py
convert_or_none(value, target_type, default_value=None, errors='ignore')
¶
値をTの型に変換する。Noneの場合はデフォルト値を返す。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
value
|
Any
|
変換元の値。 |
必須 |
target_type
|
type[T]
|
変換先の型。 |
必須 |
default_value
|
T | None
|
取得できなかった場合のデフォルト値。 |
None
|
errors
|
Literal['strict', 'ignore']
|
エラー時の挙動。"strict"で例外を発生させる。"ignore"でデフォルト値を返す。 |
'ignore'
|
戻り値:
| タイプ | デスクリプション |
|---|---|
T | None
|
取得した値。取得できなかった場合はdefault_value。 |
発生:
| タイプ | デスクリプション |
|---|---|
ValueError
|
errors="strict"の場合で値の変換に失敗した場合に発生。 |
ソースコード位置: pytilpack/python.py
merge(dst, src)
¶
2つのオブジェクトをマージする。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
dst
|
Any
|
マージ先のオブジェクト。 |
必須 |
src
|
Any
|
マージ元のオブジェクト。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
Any
|
マージされたオブジェクト。 |
ソースコード位置: pytilpack/python.py
pydantic_to_dict(obj, **kwargs)
¶
pydanticモデルの場合はmodel_dumpでdictに変換する。