Installation¶
Patera requires Python 3.13 or newer. We recommend uv.
Extras¶
Optional features are installed with extras:
| Extra | Installs | Purpose |
|---|---|---|
prod |
granian | production server (patera prod) |
dev |
uvicorn, watchfiles, websockets | development server with auto-reload (patera dev) |
testing |
pytest, pytest-asyncio, httpx, ... | testing tools (patera test) |
database |
patera-database |
async SQLAlchemy integration |
migrate |
patera-migrate |
SQL migrations (pyway) |
auth |
patera-auth |
authentication/authorization middleware |
caching |
patera-caching |
response caching (in-memory) |
caching-redis / caching-sqlite |
+ redis / aiosqlite | Redis or SQLite cache backends |
taskmanager |
patera-taskmanager |
scheduled and background tasks (APScheduler) |
email |
patera-email |
SMTP e-mail client |
apiinterface |
patera-apiinterface |
declarative clients for external HTTP APIs |
joltui |
patera-joltui |
JoltUI server components with typed group registration |
admin |
patera-admin |
admin dashboard |
aiinterface |
patera-aiinterface |
LLM chat interface (experimental) |
desktop |
patera-desktop |
desktop windows and packaging (experimental) |
desktop-ui |
patera-desktop-ui |
Python browser UI for desktop apps (experimental) |
all |
the server extensions | admin, API interface, authentication, caching, SQL, migrations, e-mail, task manager and JoltUI |
What patera[all] contains
patera[all] is the server-extension bundle. It does not install the experimental AI or
desktop packages, optional cache backends, or every optional provider. Install these
explicitly with patera[aiinterface], patera[desktop] or patera[desktop-ui] and the
relevant provider extras. Keeping the bundle's scope avoids surprising existing server
installations with desktop or machine-learning dependencies.
The production server is an extra too, prod, because a deployment needs it but a desktop
program does not (it embeds Uvicorn). Without it, the core's dependencies are pure Python apart
from pydantic-core.
Packages and imports¶
Every extension is a separate distribution that installs into the patera namespace.
Distribution names use kebab case (patera-taskmanager); imports live under patera
(patera.taskmanager). The full map is in the public API reference.
Next step¶
Continue with the quick start.