A general-purpose utility package using Python 3.12+ features.
Project description
otsutil
よく使う関数やクラスを纏めたライブラリです。
このライブラリは以下の環境で作成・最適化されています。
Windows10/11, Python 3.12.0+
インストール
インストール
pip install otsutil
アップデート
pip install -U otsutil
アンインストール
pip uninstall otsutil
モジュール
以下のモジュールが存在します。
| モジュール名 | 概要 |
|---|---|
| classes | スレッドセーフなコンテナやタイマーなどのクラス定義 |
| funcs | ファイル操作や型判定などの便利な関数定義 |
| types | パッケージ全体で共通利用する型ヒント・ジェネリクス定義 |
classesモジュール
classesモジュールでは以下のクラスが定義されています。
| クラス名 | 概要 |
|---|---|
| LockableDict | 要素の操作時に threading.Lock を使用するスレッドセーフな dict クラス。 |
| LockableList | 要素の操作時に threading.Lock を使用するスレッドセーフな list クラス。 |
| ObjectSaver | オブジェクトを pickle + base64 でシリアライズし、ファイルに永続化するクラス。カスタムクラスを保存する場合、そのクラスに __reduce__ を実装することでリスト内の要素なども含め高度な変換・復元が可能です。 |
| OtsuNone | None を返す可能性のある辞書の get デフォルト値などに使用するセンチネルオブジェクト。bool() 判定では False を返します。 |
| Timer | 指定時間の経過判定および待機を行うタイマー。 秒単位でのブロック待機や、 for 文で残り時間を yield しながら処理を行うイテレータ機能を持ちます。 |
funcsモジュール
funcsモジュールでは以下の関数が定義されています。
| 関数名 | 概要 |
|---|---|
| deduplicate | シーケンスから重複を取り除き、順序を保持したまま元の型(list/tuple)で返す。 |
| get_value | 階層構造を持つ辞書などから、キーのリストを指定して安全に値を取得する。 |
| is_all_type | 反復可能オブジェクトの全ての要素が、指定した型であるか判定する。 |
| is_type | オブジェクトが指定した型であるか判定する(None 許容判定などを含む)。 |
| load_json | JSON ファイルを読み込む。親ディレクトリがない場合は作成し、ファイルがない場合はデフォルト値を返します。 |
| read_lines | ファイルを1行ずつ読み出すジェネレータ。改行コードの自動除去やエンコーディング指定が可能です。 |
| same_path | 2つのパスが(相対/絶対に関わらず)物理的に同じ場所を指しているか判定する。 |
| save_json | オブジェクトを JSON 形式で保存する。 |
| setup_path | パスを Path オブジェクトとして整備し、必要に応じて親ディレクトリを生成して利用可能な状態にする。 |
| str_to_path | 文字列を pathlib.Path に変換する。 |
| write_lines | 反復可能な文字列データを1行ずつファイルに書き出す。 |
typesモジュール
typesモジュールでは、Python 3.12 のジェネリクス構文に対応した以下の型定義がされています。
| 名称 | 形式 | 概要 |
|---|---|---|
| FLOAT_INT | TypeVar | float または int に限定した数値型変数。 |
| K / V | TypeVar | 辞書のキー(Key)や値(Value)を想定した型変数。 |
| P | ParamSpec | 関数の引数仕様(Parameter Specification)を表す型変数。 |
| R | TypeVar | 関数の戻り値(Return Value)を表す型変数。 |
| T | TypeVar | 制約のない汎用的な型変数。 |
| hmsValue | Alias | (時, 分, 秒) のタプル。型は (int, int, float)。 |
| pathLike | Alias | pathlib.Path または str。 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file otsutil-1.2.3.312.tar.gz.
File metadata
- Download URL: otsutil-1.2.3.312.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd9a4f1f3abc859d9d4e2860810e7b4d7ca9a5c9e0ddd16f6d8a1072c53a3f06
|
|
| MD5 |
7c3fc92f28ecee71fb17e53ae288836d
|
|
| BLAKE2b-256 |
09981c328bf98ccb8186c1f7d3341607172ac5d90a6b475781ef7d29d5b4001a
|
File details
Details for the file otsutil-1.2.3.312-py3-none-any.whl.
File metadata
- Download URL: otsutil-1.2.3.312-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
153cc6812a9615310497150076c6948ee319c3292b9c48be61351ac2589341d1
|
|
| MD5 |
61be27156794012b79d26b26a5c8d69a
|
|
| BLAKE2b-256 |
b77f228b466758d7b0bac3403ddd3e6273b2474ee0fac0ed7c702fc83fc11475
|