- [概要](#概要)
- [インストール](#インストール)
- [モジュール](#モジュール)
# 概要
よく使う関数やクラスを纏めたライブラリです。
このライブラリは以下の環境で作成されています。
`Windows10(64bit)`, `Python3.10.8`
## インストール
インストール
`pip install otsutil`
アップデート
`pip install -U otsutil`
アンインストール
`pip uninstall otsutil`
## モジュール
以下のモジュールが存在します。
モジュール名|概要
:--:|:--
[classes](#classesモジュール)|よく使うクラスが定義されている
[funcs](#funcsモジュール)|よく使う関数が定義されている
[types](#typesモジュール)|よく使う型ヒントが定義されている
<!-- omit in toc -->
### classesモジュール
classesモジュールでは以下のクラスが定義されています。
クラス名|概要
:--:|:--
LockableDict|要素の操作時に`threading.Lock`を使用する`dict`クラス<br>`items`, `keys`, `values`などのメソッドで生成したIteratorオブジェクトをサイズ変更後に`next`した場合に例外が起こるのはオリジナルと同様
LockableList|要素の操作時に`threading.Lock`を使用する`list`クラス
ObjectSaver|`pickle`でシリアライズ可能なオブジェクトをファイルで扱うクラス
OtsuNone|`None`のような何か<br>`None`を返す可能性のある`dict`で`get`するときの`default`などに使う<br>厳密にはクラスではなく`__OtsuNoneType`というシングルトンクラスのインスタンス
Timer|`n秒タイマー`<br>`n秒経過するまで`, `今からn秒経過するまで`, `n秒経過したか`などを判定したり<br>`for文で定期的に処理を割り込ませる`ためのメソッドなどがある
<!-- omit in toc -->
### funcsモジュール
funcsモジュールでは以下の関数が定義されています。
関数名|概要
:--:|:--
deduplicate|タプルやリストから重複を取り除き、順番を保持し、元の型で返す
load_json|ファイルに保存された`JSON`を読み込む<br>`open`せずにファイルを渡すことができ、指定しない場合の`encoding`が`utf-8`になる
read_lines|ファイルを読み込み1行ずつ返すジェネレータを生成する<br>行右端の改行を除去し、`open`せずにファイルを渡すことができ、指定しない場合の`encoding`が`utf-8`になる
same_path|パスが同一か判定する<br>相対パス、絶対パスにかかわらず開いたとき同じものであれば`True`を返す
save_json|ファイルに`JSON`を保存する。<br>`open`せずにファイルを渡すことができ、指定しない場合の`encoding`が`utf-8`になる
setup_path|親ディレクトリの存在を確認、生成、保証し、パスを返す<br>ディレクトリならば生成され、ファイルなら`open(file, 'w')`で生成可能な状態になる
str_to_path|文字列を`Path`に変換する
write_lines|ファイルに`lines`を1行ずつ書き出す<br>`open`せずにファイルを渡すことができ、指定しない場合の`encoding`が`utf-8`になる
<!-- omit in toc -->
### typesモジュール
typesモジュールでは以下の型ヒントやジェネリクスが定義されています。
名称|形式|概要
:--:|:--:|:--
FLOAT_INT|ジェネリクス|`float`または`int`に絞ったジェネリクス
K|ジェネリクス|`dict`型のキーを表す想定のジェネリクス
P|ジェネリクス|`関数の引数`を表すジェネリクス
R|ジェネリクス|`関数の戻り値`を表すジェネリクス
T|ジェネリクス|型指定もなにもないジェネリクス
V|ジェネリクス|`dict`型の値、`list`型の値を表す想定のジェネリクス
hmsValue|タイプエイリアス|(時, 分, 秒)のタプル<br>型はそれぞれ(`int`, `int`, `float`)
pathLike|タイプエイリアス|`pathlib.Path`または`str`型
Raw data
{
"_id": null,
"home_page": "https://github.com/Otsuhachi/Otsutil",
"name": "otsutil",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Otsuhachi",
"author_email": "agequodagis.tufuiegoeris@gmail.com",
"download_url": null,
"platform": null,
"description": "- [\u6982\u8981](#\u6982\u8981)\r\n - [\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb](#\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb)\r\n - [\u30e2\u30b8\u30e5\u30fc\u30eb](#\u30e2\u30b8\u30e5\u30fc\u30eb)\r\n\r\n\r\n# \u6982\u8981\r\n\r\n\u3088\u304f\u4f7f\u3046\u95a2\u6570\u3084\u30af\u30e9\u30b9\u3092\u7e8f\u3081\u305f\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002\r\n\r\n\u3053\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u4ee5\u4e0b\u306e\u74b0\u5883\u3067\u4f5c\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n`Windows10(64bit)`, `Python3.10.8`\r\n\r\n## \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n\r\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n`pip install otsutil`\r\n\r\n\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\r\n`pip install -U otsutil`\r\n\r\n\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n`pip uninstall otsutil`\r\n\r\n## \u30e2\u30b8\u30e5\u30fc\u30eb\r\n\r\n\u4ee5\u4e0b\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\r\n\r\n\u30e2\u30b8\u30e5\u30fc\u30eb\u540d|\u6982\u8981\r\n:--:|:--\r\n[classes](#classes\u30e2\u30b8\u30e5\u30fc\u30eb)|\u3088\u304f\u4f7f\u3046\u30af\u30e9\u30b9\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\r\n[funcs](#funcs\u30e2\u30b8\u30e5\u30fc\u30eb)|\u3088\u304f\u4f7f\u3046\u95a2\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\r\n[types](#types\u30e2\u30b8\u30e5\u30fc\u30eb)|\u3088\u304f\u4f7f\u3046\u578b\u30d2\u30f3\u30c8\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\r\n\r\n<!-- omit in toc -->\r\n### classes\u30e2\u30b8\u30e5\u30fc\u30eb\r\n\r\nclasses\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u306f\u4ee5\u4e0b\u306e\u30af\u30e9\u30b9\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\r\n\u30af\u30e9\u30b9\u540d|\u6982\u8981\r\n:--:|:--\r\nLockableDict|\u8981\u7d20\u306e\u64cd\u4f5c\u6642\u306b`threading.Lock`\u3092\u4f7f\u7528\u3059\u308b`dict`\u30af\u30e9\u30b9<br>`items`, `keys`, `values`\u306a\u3069\u306e\u30e1\u30bd\u30c3\u30c9\u3067\u751f\u6210\u3057\u305fIterator\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30b5\u30a4\u30ba\u5909\u66f4\u5f8c\u306b`next`\u3057\u305f\u5834\u5408\u306b\u4f8b\u5916\u304c\u8d77\u3053\u308b\u306e\u306f\u30aa\u30ea\u30b8\u30ca\u30eb\u3068\u540c\u69d8\r\nLockableList|\u8981\u7d20\u306e\u64cd\u4f5c\u6642\u306b`threading.Lock`\u3092\u4f7f\u7528\u3059\u308b`list`\u30af\u30e9\u30b9\r\nObjectSaver|`pickle`\u3067\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u53ef\u80fd\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30d5\u30a1\u30a4\u30eb\u3067\u6271\u3046\u30af\u30e9\u30b9\r\nOtsuNone|`None`\u306e\u3088\u3046\u306a\u4f55\u304b<br>`None`\u3092\u8fd4\u3059\u53ef\u80fd\u6027\u306e\u3042\u308b`dict`\u3067`get`\u3059\u308b\u3068\u304d\u306e`default`\u306a\u3069\u306b\u4f7f\u3046<br>\u53b3\u5bc6\u306b\u306f\u30af\u30e9\u30b9\u3067\u306f\u306a\u304f`__OtsuNoneType`\u3068\u3044\u3046\u30b7\u30f3\u30b0\u30eb\u30c8\u30f3\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\r\nTimer|`n\u79d2\u30bf\u30a4\u30de\u30fc`<br>`n\u79d2\u7d4c\u904e\u3059\u308b\u307e\u3067`, `\u4eca\u304b\u3089n\u79d2\u7d4c\u904e\u3059\u308b\u307e\u3067`, `n\u79d2\u7d4c\u904e\u3057\u305f\u304b`\u306a\u3069\u3092\u5224\u5b9a\u3057\u305f\u308a<br>`for\u6587\u3067\u5b9a\u671f\u7684\u306b\u51e6\u7406\u3092\u5272\u308a\u8fbc\u307e\u305b\u308b`\u305f\u3081\u306e\u30e1\u30bd\u30c3\u30c9\u306a\u3069\u304c\u3042\u308b\r\n\r\n<!-- omit in toc -->\r\n### funcs\u30e2\u30b8\u30e5\u30fc\u30eb\r\n\r\nfuncs\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u306f\u4ee5\u4e0b\u306e\u95a2\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\r\n\u95a2\u6570\u540d|\u6982\u8981\r\n:--:|:--\r\ndeduplicate|\u30bf\u30d7\u30eb\u3084\u30ea\u30b9\u30c8\u304b\u3089\u91cd\u8907\u3092\u53d6\u308a\u9664\u304d\u3001\u9806\u756a\u3092\u4fdd\u6301\u3057\u3001\u5143\u306e\u578b\u3067\u8fd4\u3059\r\nload_json|\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\u3055\u308c\u305f`JSON`\u3092\u8aad\u307f\u8fbc\u3080<br>`open`\u305b\u305a\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u6e21\u3059\u3053\u3068\u304c\u3067\u304d\u3001\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u306e`encoding`\u304c`utf-8`\u306b\u306a\u308b\r\nread_lines|\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u307f1\u884c\u305a\u3064\u8fd4\u3059\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u3092\u751f\u6210\u3059\u308b<br>\u884c\u53f3\u7aef\u306e\u6539\u884c\u3092\u9664\u53bb\u3057\u3001`open`\u305b\u305a\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u6e21\u3059\u3053\u3068\u304c\u3067\u304d\u3001\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u306e`encoding`\u304c`utf-8`\u306b\u306a\u308b\r\nsame_path|\u30d1\u30b9\u304c\u540c\u4e00\u304b\u5224\u5b9a\u3059\u308b<br>\u76f8\u5bfe\u30d1\u30b9\u3001\u7d76\u5bfe\u30d1\u30b9\u306b\u304b\u304b\u308f\u3089\u305a\u958b\u3044\u305f\u3068\u304d\u540c\u3058\u3082\u306e\u3067\u3042\u308c\u3070`True`\u3092\u8fd4\u3059\r\nsave_json|\u30d5\u30a1\u30a4\u30eb\u306b`JSON`\u3092\u4fdd\u5b58\u3059\u308b\u3002<br>`open`\u305b\u305a\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u6e21\u3059\u3053\u3068\u304c\u3067\u304d\u3001\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u306e`encoding`\u304c`utf-8`\u306b\u306a\u308b\r\nsetup_path|\u89aa\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5b58\u5728\u3092\u78ba\u8a8d\u3001\u751f\u6210\u3001\u4fdd\u8a3c\u3057\u3001\u30d1\u30b9\u3092\u8fd4\u3059<br>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306a\u3089\u3070\u751f\u6210\u3055\u308c\u3001\u30d5\u30a1\u30a4\u30eb\u306a\u3089`open(file, 'w')`\u3067\u751f\u6210\u53ef\u80fd\u306a\u72b6\u614b\u306b\u306a\u308b\r\nstr_to_path|\u6587\u5b57\u5217\u3092`Path`\u306b\u5909\u63db\u3059\u308b\r\nwrite_lines|\u30d5\u30a1\u30a4\u30eb\u306b`lines`\u30921\u884c\u305a\u3064\u66f8\u304d\u51fa\u3059<br>`open`\u305b\u305a\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u6e21\u3059\u3053\u3068\u304c\u3067\u304d\u3001\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u306e`encoding`\u304c`utf-8`\u306b\u306a\u308b\r\n\r\n<!-- omit in toc -->\r\n### types\u30e2\u30b8\u30e5\u30fc\u30eb\r\n\r\ntypes\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u306f\u4ee5\u4e0b\u306e\u578b\u30d2\u30f3\u30c8\u3084\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\u540d\u79f0|\u5f62\u5f0f|\u6982\u8981\r\n:--:|:--:|:--\r\nFLOAT_INT|\u30b8\u30a7\u30cd\u30ea\u30af\u30b9|`float`\u307e\u305f\u306f`int`\u306b\u7d5e\u3063\u305f\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\r\nK|\u30b8\u30a7\u30cd\u30ea\u30af\u30b9|`dict`\u578b\u306e\u30ad\u30fc\u3092\u8868\u3059\u60f3\u5b9a\u306e\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\r\nP|\u30b8\u30a7\u30cd\u30ea\u30af\u30b9|`\u95a2\u6570\u306e\u5f15\u6570`\u3092\u8868\u3059\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\r\nR|\u30b8\u30a7\u30cd\u30ea\u30af\u30b9|`\u95a2\u6570\u306e\u623b\u308a\u5024`\u3092\u8868\u3059\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\r\nT|\u30b8\u30a7\u30cd\u30ea\u30af\u30b9|\u578b\u6307\u5b9a\u3082\u306a\u306b\u3082\u306a\u3044\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\r\nV|\u30b8\u30a7\u30cd\u30ea\u30af\u30b9|`dict`\u578b\u306e\u5024\u3001`list`\u578b\u306e\u5024\u3092\u8868\u3059\u60f3\u5b9a\u306e\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\r\nhmsValue|\u30bf\u30a4\u30d7\u30a8\u30a4\u30ea\u30a2\u30b9|(\u6642, \u5206, \u79d2)\u306e\u30bf\u30d7\u30eb<br>\u578b\u306f\u305d\u308c\u305e\u308c(`int`, `int`, `float`)\r\npathLike|\u30bf\u30a4\u30d7\u30a8\u30a4\u30ea\u30a2\u30b9|`pathlib.Path`\u307e\u305f\u306f`str`\u578b\r\n",
"bugtrack_url": null,
"license": null,
"summary": "\u500b\u4eba\u7684\u306b\u3088\u304f\u4f7f\u3046\u95a2\u6570\u3001\u30af\u30e9\u30b9\u3001\u578b\u30d2\u30f3\u30c8\u3092\u7e8f\u3081\u305f\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002",
"version": "1.2.2.310",
"project_urls": {
"Homepage": "https://github.com/Otsuhachi/Otsutil"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "11f9b280a81aee3b391f610a1b9d2955a1e9543543525837c08f05020af60a6a",
"md5": "bd5ee02e4f934a043b49376698d597bb",
"sha256": "7c0a01ba68230758673e4caf57bcd55128d401f16f9fb457c11de7659371b06b"
},
"downloads": -1,
"filename": "otsutil-1.2.2.310-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bd5ee02e4f934a043b49376698d597bb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 10319,
"upload_time": "2024-06-23T13:59:18",
"upload_time_iso_8601": "2024-06-23T13:59:18.872575Z",
"url": "https://files.pythonhosted.org/packages/11/f9/b280a81aee3b391f610a1b9d2955a1e9543543525837c08f05020af60a6a/otsutil-1.2.2.310-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-23 13:59:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Otsuhachi",
"github_project": "Otsutil",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "otsutil"
}