This release is a pre-release and may not be stable for production use.
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.
Metadata
Release files for tortoise-extensions 0.0.1a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tortoise_extensions-0.0.1a2.tar.gz | 28.2 kB | Without provenance | Details for tortoise_extensions-0.0.1a2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tortoise_extensions-0.0.1a2-py3-none-any.whl | Python 3 | none | any | Details for tortoise_extensions-0.0.1a2-py3-none-any.whl |
Total release size: 34.7 kB
Release files / tortoise_extensions-0.0.1a2.tar.gz
| Download URL | tortoise_extensions-0.0.1a2.tar.gz |
|---|---|
| Size | 28.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8309a545bdc185fdb85735d68aa9e8612c3751fbad66d51202f2a7b98380de3a
|
|
BLAKE2b-256 checksum How to use checksums |
ea61e032a0264dab14bbf6884207ca5bf8b531cbd53774f11f53f6dccf0dfc48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
pdm/2.27.0 CPython/3.14.5 Linux/6.17.0-1013-azure
|
Release files / tortoise_extensions-0.0.1a2-py3-none-any.whl
| Download URL | tortoise_extensions-0.0.1a2-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99ab6c0b3f08ba7ea3b2814b63296f950cc52d677f346c4adb3625216fc4c42f
|
|
BLAKE2b-256 checksum How to use checksums |
c5ba9cea4fb05326fdd8d657ebb33c3c00242b4fed3a5b59215fd4f8861ac025
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
pdm/2.27.0 CPython/3.14.5 Linux/6.17.0-1013-azure
|
Security for tortoise-extensions 0.0.1a2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.