Persistent Memory
Project description
install
pip install skpmem
skpmem/async_pmem.py の特徴
- 非同期対応の永続メモリクラス
PersistentMemoryを提供 - SQLite データベースを用いてデータを永続化
- 非同期での保存・読み込みが可能
- 非同期コンテキストマネージャ対応(
async withで利用可能) - 自動的にテーブル作成・初期化を実施
- 内部で書き込みキューを持ち、効率的にデータベースへ反映
使用例
import asyncio
from skpmem.async_pmem import PersistentMemory
async def main():
# ログ出力の設定(任意)
import logging
logging.basicConfig(level=logging.INFO)
# 永続メモリのインスタンス作成
async with PersistentMemory('my_custom_database.db') as mem:
# データの保存
await mem.save("test_key", "test_value")
# データの読み込み
value = await mem.load("test_key")
print(f"Loaded value1: {value}")
# デフォルト値付きでカウンタを取得・更新
counter = await mem.load("counter", 0)
print(f"Counter: {counter}")
counter += 1
await mem.save("counter", counter)
asyncio.run(main())
dictライクなアクセス
PersistentMemory は dict のようなアクセスも一部サポートしています。
mem["key"] = valueで値を保存(非同期でDBにも保存されます)value = mem["key"]でキャッシュから値を取得(キャッシュにない場合はKeyError。初回はawait mem.load("key")でロードしてください)del mem["key"]でキャッシュとDBから削除(DB削除は非同期)
async with PersistentMemory('my_custom_database.db') as mem:
await mem.save("foo", 123) # 通常の保存
mem["bar"] = 456 # dict風の保存(非同期でDBにも保存)
await mem.load("bar") # DBからロードしキャッシュ
print(mem["bar"]) # キャッシュから取得
del mem["bar"] # キャッシュとDBから削除
save(key, value)でデータを保存load(key, defval=None)でデータを取得(存在しない場合は defval を返す)- 非同期で複数の保存・取得操作が可能
- データは SQLite データベースに永続化される
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
skpmem-0.1.7.tar.gz
(11.0 kB
view details)
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
skpmem-0.1.7-py3-none-any.whl
(12.5 kB
view details)
File details
Details for the file skpmem-0.1.7.tar.gz.
File metadata
- Download URL: skpmem-0.1.7.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9368b7a25e402e11e7623986070644c2503516c96777bee3be148fda146c5abc
|
|
| MD5 |
2abf4b7d722988241c03c77b1722e017
|
|
| BLAKE2b-256 |
e219153efc05135593d9df3630891ac6b2560cda6c5ba5d5db65351de7ed1786
|
File details
Details for the file skpmem-0.1.7-py3-none-any.whl.
File metadata
- Download URL: skpmem-0.1.7-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c6833da2480418237668efe9b664e15b70f1a61e0c509aa7b80dbbb929543e0
|
|
| MD5 |
5b883e421d06316f6c554ab8f7666023
|
|
| BLAKE2b-256 |
f391680d08998f3fc05ad975fda59361fd0e729cc420de5d3ad9c123153836e5
|