Extensions¶
Optional features ship as separate packages that install into the patera namespace. Each one is
a service: you subclass it, configure it through a config
field named after your subclass, and register it in App.app_extensions (or inject it).
@app(__name__, configs=Config)
class App(Patera[Config]):
app_extensions = [Databases, PublicCache, Jobs]
Official packages¶
| Package | Import | Entry point | Configuration | Install |
|---|---|---|---|---|
| SQL databases | patera.database.sql |
SqlDatabase, SqlDatabaseManager |
SqlDatabaseConfig |
patera[database] |
| Migrations | patera.migrate |
Migrate |
MigrateConfig |
patera[migrate] |
| Authentication | patera.auth |
Authentication |
AuthConfig |
patera[auth] |
| Caching | patera.caching |
Caching |
CachingConfig |
patera[caching] |
| Task manager | patera.taskmanager |
TaskManager |
TaskManagerConfig |
patera[taskmanager] |
patera.email |
EmailClient |
EmailConfig |
patera[email] |
|
| External APIs | patera.apiinterface |
ApiInterface |
class/method decorators | patera[apiinterface] |
| JoltUI | patera.joltui |
PateraJoltui |
JoltuiConfig |
patera[joltui] |
| Admin dashboard | patera.admin |
AdminInterface |
AdminConfig |
patera[admin] |
| AI interface | patera.aiinterface |
AiService |
AiServiceConfig |
patera[aiinterface] |
| Desktop | patera.desktop |
Desktop |
DesktopConfig |
patera[desktop] |
| Desktop UI | patera.desktop.ui |
DesktopUI |
DesktopUIConfig |
patera[desktop-ui] |
Experimental: not yet ready for production use; the API may change in any release.
patera[all] installs the server extensions: admin, API interface, authentication, caching,
SQL, migrations, e-mail, task manager and JoltUI. It does not install the experimental packages
or optional backends such as caching-redis and caching-sqlite.
Each extension package requires Python 3.13 or newer and a compatible patera core (>=0.121).
Writing your own¶
See Custom extensions.