Extension field types for Tortoise ORM
Project description
tortoise-extensions
Optional extension field types for Tortoise ORM. This package targets Tortoise ORM 0.25.4 and later, but before 1.0 — Tortoise 1.x is not supported yet.
Install
Base package (requires Tortoise ORM in the supported range):
pip install tortoise-extensions
Optional extras:
pip install tortoise-extensions[pydantic]
pip install tortoise-extensions[uuid6]
pip install tortoise-extensions[pydantic,uuid6]
Usage
Pydantic JSON (pydantic extra)
from pydantic import BaseModel
from tortoise.models import Model
from tortoise_extensions.pydantic import PydanticJSONField
class Settings(BaseModel):
theme: str = "dark"
class AppConfig(Model):
settings: PydanticJSONField[Settings] = PydanticJSONField(
Settings, default=Settings
)
class Meta:
table = "app_configs"
PydanticJSONField round-trips through your Pydantic model: it accepts dicts from PostgreSQL JSONB, JSON strings from SQLite, and serializes models with model_dump(mode="json") on save.
UUID v6+ (uuid6 extra)
from tortoise.models import Model
from tortoise_extensions.uuid6 import FutureUUIDField
class Item(Model):
id: FutureUUIDField = FutureUUIDField(primary_key=True)
class Meta:
table = "items"
Primary keys without an explicit default receive a UUID7 from the uuid6 package. PostgreSQL uses the native UUID column type; other backends store CHAR(36).
Contributing a new extension
- Open an issue first — describe the field behavior, SQL types per backend, which Tortoise versions you need, and the proposed optional-extra name (e.g.
pip install tortoise-extensions[myextra]). - After maintainers agree on the design, open a PR that includes:
- Implementation in
src/tortoise_extensions/<module>.py - Tests under
tests/ - An entry in
[project.optional-dependencies]if the field needs third-party packages - README and docs updates for the new field
- ISC SPDX headers on new files (
licensor-config.yamlapplies)
- Implementation in
- Run
pdm run qualitylocally before pushing.
Documentation
Published at docs.nicebots.xyz/tortoise-extensions.
pdm install -G docs
pdm run docs:build
pdm run docs:preview
pdm run docs:dev
Development
pdm install -G dev -G test -G docs
pdm run quality
Public APIs use Google-style docstrings; ruff enforces this via convention = "google".
License
ISC.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tortoise_extensions-0.0.1a2.tar.gz.
File metadata
- Download URL: tortoise_extensions-0.0.1a2.tar.gz
- Upload date:
- Size: 28.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.27.0 CPython/3.14.5 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8309a545bdc185fdb85735d68aa9e8612c3751fbad66d51202f2a7b98380de3a
|
|
| MD5 |
de385f3fbcda1d99cc3aa0278ab8967b
|
|
| BLAKE2b-256 |
ea61e032a0264dab14bbf6884207ca5bf8b531cbd53774f11f53f6dccf0dfc48
|
File details
Details for the file tortoise_extensions-0.0.1a2-py3-none-any.whl.
File metadata
- Download URL: tortoise_extensions-0.0.1a2-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.27.0 CPython/3.14.5 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99ab6c0b3f08ba7ea3b2814b63296f950cc52d677f346c4adb3625216fc4c42f
|
|
| MD5 |
15db36dce10c1fa0019e263b020e87a0
|
|
| BLAKE2b-256 |
c5ba9cea4fb05326fdd8d657ebb33c3c00242b4fed3a5b59215fd4f8861ac025
|