This file documents all notable changes to this project.
This format follows Keep a Changelog, and this project adheres to PEP 440.
Table.from_records()andTable.from_file()factory methods for convenient table initialization- Dictionary-like access for
TableandTransaction(table[key],table[key] = record,del table[key],pop,popitem,setdefault,update) - Value-based equality for
TableandTransaction(==compares path, key specifier, and records)
Tableclass for working with JSONLT files supporting CRUD operations (get,put,delete,has) and Python protocols (Sized,Container,Iterable)Transactionclass with snapshot isolation, optimistic concurrency control, context manager support, and Python protocols (Sized,Container,Iterable)- Compound key support for multi-field keys (for example,
("customer_id", "order_id")) - Cross-platform file locking for concurrent access (fcntl on Unix, LockFileEx on Windows)
- Query operations:
find()andfind_one()with predicate functions - Table maintenance:
compact()to remove superseded records and tombstones - Exception hierarchy with
ConflictErrorfor write-write conflict detection - Full conformance with the JSONLT specification
- Property-based tests using Hypothesis for JSON serialization, records, and state
- Benchmark suite for performance testing