What's Changed
- Drop official support for Python 3.8 and 3.9. Both versions have reached their official End of Life (Python 3.8 in October 2024, Python 3.9 in October 2025). TinyDB now requires Python 3.10 or later.
- Fix: Make
Table.update(doc_ids=...)andTable.remove(doc_ids=...)behave consistently withTable.get(doc_id=...)when given document IDs that don't exist: missing IDs are now silently skipped and the returned list only contains IDs that were actually updated/removed. Previously both methods raisedKeyError, andupdatecould leave the table in a partially-updated state when a mix of existing and missing IDs was passed (see #591). - Fix: Prevent
TypeErrorwhen passing unhashable extra arguments (like lists or dicts) toQuery.test()(see #517). - Fix: Prevent
FileNotFoundErrorwhen creating a database file in the current directory without an explicit path prefix (see #619). - Fix: Correctly handle falsy values (like
0orNone) stored inLRUCache(see #596). - Improvement: More precise type hints for
Table.get(see #602). - Improvement: Correct the type hints for
Table.updateandtinydb.operationsto useMutableMapping, so transform functions that modify documents in place type-check correctly (see #598).
New Contributors
- @epicblueprints made their first contribution in #597
- @ReenigneArcher made their first contribution in #592
- @marcfreir made their first contribution in #579
- @alex-ball made their first contribution in #602
- @SanjanaG-01 made their first contribution in #606
- @mokashang made their first contribution in #616
- @n1teshy made their first contribution in #619
- @uadhran made their first contribution in #621
- @gaoflow made their first contribution in #618
Full Changelog: v4.8.2...v4.9.0