Skip to content

Releases: schapman1974/tinymongo

TinyMongo 1.2.0

Choose a tag to compare

@schapman1974 schapman1974 released this 11 Jul 20:37

Full Changelog: v1.1.2...v1.2.0

tinymongo 1.1.1

Choose a tag to compare

@schapman1974 schapman1974 released this 09 Jul 15:54

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 $in and for $nor.
  • Added collection_names(), list_collection_names(), database_names(), and list_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 tinymongo

tinymongo 1.0.0

Choose a tag to compare

@schapman1974 schapman1974 released this 02 Jul 02:58
a31ac7a

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 tinymongo

For local development:

pip install -e .
pip install -r requirements-dev.txt
pytest -q

Notes

This release establishes the current baseline for tinymongo packaging, CI, backend support, and test coverage.