Releases: schapman1974/tinymongo
Releases · schapman1974/tinymongo
Release list
TinyMongo 1.2.0
Full Changelog: v1.1.2...v1.2.0
tinymongo 1.1.1
tinymongo is active again and has been updated on PyPI.
Highlights
- Published tinymongo 1.1.1 to PyPI.
- Modernized packaging with pyproject.toml and GitHub Actions CI.
- Added table-native SQLite, DuckDB, and DuckDB-managed Parquet backends.
- Kept TinyDB JSON as the default backend.
- Added PyMongo-style import support via MongoClient, ASCENDING, and DESCENDING aliases.
- Added CLI tools for inspect, list, import, export, and backend migration workflows.
- Added integration stress tests for concurrent writes.
- Added 100% package test coverage for tinymongo/*.
Fixes
- Fixed README/database attribute recursion bugs reported in older Python 3 installs.
- Added support for update operators including
$unset,$inc,$push,$pull, and$addToSet. - Added query support for array membership with
$inand for$nor. - Added
collection_names(),list_collection_names(),database_names(), andlist_database_names()compatibility helpers.
Verification
- GitHub CI passes on Python 3.9, 3.10, and 3.11.
- Local release checks passed: pytest, integration tests, 100% package coverage, ruff, build, and twine check.
Install or upgrade:
pip install --upgrade tinymongotinymongo 1.0.0
Release Notes
# tinymongo 1.0.0
This is the first official `tinymongo` release.
`tinymongo` provides a lightweight, flat-file, MongoDB-like interface backed by TinyDB. It is intended for projects that want a familiar PyMongo-style API without running a MongoDB server.
## Highlights
- TinyDB JSON storage remains the default backend.
- Added optional storage backends:
- `parquet` / `parquetv2` using `pyarrow`
- `sqlite` using Python's built-in `sqlite3`
- `duckdb` using DuckDB
- Added safer write behavior with atomic temp-file replacement and advisory locking support through `portalocker`.
- Added expanded Mongo-like query coverage, including nested queries and operators such as `$and`, `$or`, `$not`, `$in`, and `$all`.
- Added multi-writer/concurrency tests.
- Added modern Python packaging with `pyproject.toml`.
- Added GitHub Actions CI for Python 3.9, 3.10, and 3.11.
- Added PyPI publishing workflow.
- Added benchmark support for storage backend comparisons.
## Backend Usage
TinyDB JSON is the default:
```python
from tinymongo import TinyMongoClient
client = TinyMongoClient("/path/to/db")Optional backends can be selected with backend:
TinyMongoClient("/path/to/db", backend="parquet")
TinyMongoClient("/path/to/db", backend="sqlite")
TinyMongoClient("/path/to/db", backend="duckdb")Installation
pip install tinymongoFor local development:
pip install -e .
pip install -r requirements-dev.txt
pytest -qNotes
This release establishes the current baseline for tinymongo packaging, CI, backend support, and test coverage.