Runtime & Platform Support
This document captures the currently supported Python versions, operating systems, database backends, and driver requirements for running Moltres in production. The matrix mirrors our CI coverage so you can rely on it when planning deployments.
Python & Operating Systems
Python |
Ubuntu (22.04) |
macOS (13/14) |
Windows (2025) |
|---|---|---|---|
3.10 |
✅ Full test suite |
✅ Full test suite |
✅ Full test suite |
3.11 |
✅ Full test suite |
✅ Full test suite |
✅ Full test suite |
3.12 |
✅ Full test suite |
✅ Full test suite |
✅ Full test suite |
The CI workflow (
.github/workflows/ci.yml) runs the unit test suite, linting, typing, documentation validation, and smoke DB tests across every entry in the table above.We require Python 3.10+ as defined in
pyproject.toml. Earlier Python versions are not tested or supported.
Database Backends
Backend |
Driver(s) |
Notes |
|---|---|---|
SQLite |
Built-in |
Default backend for development and quick smoke tests. |
PostgreSQL |
|
Postgres fixtures rely on |
MySQL/MariaDB |
|
Requires |
Async variants |
|
Install via extras: |
Fixture expectations
PostgreSQL:
testing.postgresqlspins up ephemeral clusters. Ensureinitdbandpostgresbinaries are installed (the workflow skips gracefully if missing).MySQL:
testing.mysqldshells out tomysqld/mysql_install_db. Install a server locally or rely on containerized MySQL.SQLite: No extra dependencies; used for the majority of CI coverage.
Optional Dependencies
Use extras to install the relevant driver stack:
pip install "moltres[async]"– core async support (file IO).pip install "moltres[async-postgresql]"– async Postgres (asyncpg + core async extras).pip install "moltres[async-mysql]"– async MySQL (aiomysql + core async extras).pip install "moltres[async-sqlite]"– async SQLite (aiosqlite + core async extras).pip install "moltres[pandas]",moltres[polars]– DataFrame integrations for export paths.
Verifying Your Environment
Install the required extras for your database backend.
Run
pytest -p pytest_asyncio -m "not postgres and not mysql"to validate the core suite.Enable the Postgres/MySQL markers once their binaries are installed:
pytest -m postgres pytest -m mysql
For async clusters, run
pytest -m asyncioto ensure drivers, event loop policies, and staging table cleanup behave as expected.
If your deployment targets a platform that is not listed above, add it to the CI matrix first so we can formally support it.