Skip to main content

Async MongoDB with vanilla Pydantic v2+ - made easy.

Project description

Tests Linters Documentation PyPI package

Source code: https://github.com/volfpeter/motorhead

Documentation and examples: https://volfpeter.github.io/motorhead

Motorhead

Async MongoDB with vanilla Pydantic v2+ - made easy.

Key features:

  • Database model and API design with vanilla Pydantic v2+.
  • Relationship support and validation using async validators and delete rules with a declarative, decorator-based syntax.
  • ODM-like query builder for convenient, typed, and Pythonic query construction.
  • Declarative index specification.
  • Typed utilities for convenient model and API creation.
  • Ready to use, customizable async service layer with transaction support that integrates all the above to keep your API and business logic clean, flexible, and easy to understand.
  • Simplicity: by not being a classic ODM, the codebase is very simple and easy to understand (even contribute to) even for relative beginners.

By providing a convenient, declarative middle layer between MongoDB and your API, motorhead is halfway between an object document mapper (based on vanilla Pydantic) and a database driver (by wrapping the official, async motor driver). What's missing is the built-in ODM performance and memory overhead, whose benefits are rarely felt when working with document databases.

See the full documentation here.

Installation

The library is available on PyPI and can be installed with:

$ pip install motorhead

Examples

See the documentation for usage and application examples.

Requirements

The project depends on motor (the official asyncio MongoDB driver, which is built on top of pymongo and bson) and pydantic v2+.

Development

Use black for code formatting, mypy for static code analysis, ruff for linting, and pytest (with pytest-asyncio and pytest-docker) for testing.

The documentation is built with mkdocs-material and mkdocstrings.

Contributing

All contributions are welcome.

Notes

This project is the continuation of fastapi-motor-oil with support for Pydantic v2, among other improvements. Migration from fastapi-motor-oil should be easy, but if you need help, just create an issue in the issue tracker.

License - MIT

The library is open-sourced under the conditions of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

motorhead-0.2411.1.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

motorhead-0.2411.1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file motorhead-0.2411.1.tar.gz.

File metadata

  • Download URL: motorhead-0.2411.1.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for motorhead-0.2411.1.tar.gz
Algorithm Hash digest
SHA256 f89633990872f09f03d08644c14df431e649d1dbafbdd68a37ca5cb5e6a62b95
MD5 a7fddb0902fe1cd7df469b063f6e216a
BLAKE2b-256 8418b664b8e2f605812340d098a3c24db35a8a0c318c09e3d52d5eccfc51a156

See more details on using hashes here.

Provenance

The following attestation bundles were made for motorhead-0.2411.1.tar.gz:

Publisher: publish.yml on volfpeter/motorhead

Attestations:

File details

Details for the file motorhead-0.2411.1-py3-none-any.whl.

File metadata

  • Download URL: motorhead-0.2411.1-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for motorhead-0.2411.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce115b21055ddaed2e3cb9678c0f5b88ed24a40c98c47792b88e9151634c2553
MD5 652a5d11eccde7119f7a320f1aeb4c95
BLAKE2b-256 d0a0cb0e8eef41d88d7ebf0d35c29733bbcd546ecc30a5dac259a41bdfdf1261

See more details on using hashes here.

Provenance

The following attestation bundles were made for motorhead-0.2411.1-py3-none-any.whl:

Publisher: publish.yml on volfpeter/motorhead

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page