fabian/dev/: fastapi-app-settings-0.1.0 metadata and description
Reusable SettingsManager and FastAPI router for application settings (SQLAlchemy + Pydantic).
| author_email | Fabian Aichele <aichele@zykl.io> |
| classifiers |
|
| description_content_type | text/markdown |
| keywords | fastapi, settings, sqlalchemy, pydantic, configuration |
| license | MIT |
| metadata_version | 2.4 |
| requires_dist |
|
| requires_python | >=3.11 |
Because this project isn't in the mirror_whitelist,
no releases from root/pypi are included.
| File | Tox results | History |
|---|---|---|
fastapi_app_settings-0.1.0-py3-none-any.whl
|
|
|
fastapi_app_settings-0.1.0.tar.gz
|
|
rideto-app-settings
Wiederverwendbares Modul für anwendungsweite Einstellungen mit FastAPI, SQLAlchemy und Pydantic.
Enthält:
- SettingsManager: Synchronisiert
.env/ApplicationSettings und DB-Settings - Router-Factory
create_settings_router: bindet REST-Endpoints für Einstellungen ein - SQLAlchemy/Pydantic-Modelle (
Setting,SettingBase,SettingCreate,SettingUpdate,SettingResponse) - Konstanten
ALLOWED_SETTINGSundPROTECTED_SETTINGS
Installation
Aus dem Unterverzeichnis installieren (PEP 621, setuptools):
# Aus dem Repo-Root
pip install ./backend/app_settings
# oder als Editable
pip install -e ./backend/app_settings
Alternativ via pyproject Abhängigkeit (PEP 508 direct reference):
# pyproject.toml eines Consumer-Projekts
[project]
dependencies = [
"rideto-app-settings @ file:///${PROJECT_ROOT}/backend/app_settings",
]
Nutzung
1) Router einbinden
from app_settings import create_settings_router
app.include_router(create_settings_router(prefix="/api/settings"))
2) SettingsManager initialisieren (typisch beim Startup)
from app_settings import settings_manager
from my_db import get_db
# innerhalb eines Startup-Hooks
db = next(get_db())
settings_manager.initialize(db)
3) Zugriff auf Settings
from app_settings import settings_manager
value = settings_manager.get_setting("thumbnail_directory")
settings_manager.set_setting("thumbnail_directory", "static/thumb")
Import-Pfade
- Als installiertes Modul:
from app_settings import ... - Innerhalb des bestehenden Projekts können weiterhin die bisherigen Pfade genutzt werden:
from backend.app_settings import ...
Entwickeln
Lokale Tests/Typprüfung (optional):
pip install -e ./backend/app_settings[dev]
pytest -q
ruff check .
mypy .
Hinweise
- Das Modul erwartet, dass die SQLAlchemy
Baseund die DB-Session (get_db) in der konsumierenden App bereitstehen. Die Models registrieren sich überBase. - Timezone-aware Timestamps (UTC) werden für
created_date/updated_dateverwendet. - Einige Einstellungen sind bewusst geschützt (
PROTECTED_SETTINGS) und werden nicht über den REST-Router exponiert.