diff --git a/README.md b/README.md index 869d9d2..8ccd826 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,13 @@ you `delete` or `clear` them. `requirements.txt`: ``` -aiokv @ git+ssh://git@git.rethinkstudios.io/rethink-public/aiokv.git@v0.1.0 +aiokv @ git+ssh://git@git.rethinkstudios.io/rethink-public/aiokv.git@v0.1.1 ``` Direct: ```bash -pip install "aiokv @ git+ssh://git@git.rethinkstudios.io/rethink-public/aiokv.git@v0.1.0" +pip install "aiokv @ git+ssh://git@git.rethinkstudios.io/rethink-public/aiokv.git@v0.1.1" ``` Requires `aiofiles` (pulled transitively). @@ -77,8 +77,10 @@ are consistent and no update is lost. All blocking filesystem calls run via ## Error contract -- `get` / `set` / `get_all` raise on unexpected I/O (and `_load` raises on a - truncated/corrupt file) so a real failure is visible rather than silently masked. +- `get` / `set` / `get_all` raise on unexpected I/O. `_load` raises `JSONDecodeError` + on a truncated/corrupt file, and `ValueError` when the file holds valid JSON that + isn't an object (a bare list/number/string/null) — so corruption or a wrong-shaped + file is visible rather than silently masked. - `delete` / `clear` log the exception and return `False` on error, `True` otherwise. ## Versioning diff --git a/pyproject.toml b/pyproject.toml index 05110b3..10d259f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "aiokv" -version = "0.1.0" +version = "0.1.1" description = "Async file-backed key-value store for single-process local state — atomic writes, no TTL, config-free, installable." requires-python = ">=3.10" dependencies = [