docs: document _load's ValueError-on-non-object-JSON in the error contract (v0.1.1)

README + CLAUDE.md error contract now note that _load raises ValueError on valid-but-
non-object JSON (bare list/number/string/null) in addition to JSONDecodeError on a
corrupt file, matching the module docstring (L1).

Signed-off-by: disqualifier <dev@disqualifier.me>
This commit is contained in:
2026-06-29 17:57:37 -04:00
parent e29c523c12
commit 5ee0292dcb
2 changed files with 7 additions and 5 deletions
+6 -4
View File
@@ -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