From 6c6ca0e9973c43ea62e59589bacae65875697e36 Mon Sep 17 00:00:00 2001 From: bronsen Date: Tue, 9 Dec 2025 21:22:49 +0100 Subject: [PATCH] create settings module in preparation of aerich currently, it's only used for tortoise_orm --- src/teilchensammler_cli/main.py | 17 +++++++++-------- src/teilchensammler_cli/settings.py | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 src/teilchensammler_cli/settings.py diff --git a/src/teilchensammler_cli/main.py b/src/teilchensammler_cli/main.py index 256c497..ce8c03f 100644 --- a/src/teilchensammler_cli/main.py +++ b/src/teilchensammler_cli/main.py @@ -18,6 +18,8 @@ from textual.widgets import ( ) from tortoise import Tortoise +from teilchensammler_cli import settings + @final class SearchBar(Static): @@ -43,9 +45,7 @@ class SearchBar(Static): id="teilchen-input", type="text", ) - yield Button( - "Add", variant="success", classes="search-bar-buttons", id="button-add" - ) + yield Button("Add", variant="success", classes="search-bar-buttons", id="button-add") yield Button( "Search", variant="default", @@ -99,13 +99,14 @@ class AddInventoryScreen(Screen[None]): @final class SammlerApp(App[None]): async def on_mount(self) -> None: - await Tortoise.init( - db_url="sqlite://db.sqlite3", - modules={"models": ["teilchensammler_cli.models"]}, - ) - await Tortoise.generate_schemas() + await Tortoise.init(config=settings.TORTOISE_ORM_CONFIG) + await Tortoise.generate_schemas(safe=True) _ = self.push_screen(AddInventoryScreen()) + async def on_unmount(self) -> None: + # https://tortoise.github.io/setup.html#the-importance-of-cleaning-up + await Tortoise.close_connections() + def main() -> None: app = SammlerApp() diff --git a/src/teilchensammler_cli/settings.py b/src/teilchensammler_cli/settings.py new file mode 100644 index 0000000..c7ba3b4 --- /dev/null +++ b/src/teilchensammler_cli/settings.py @@ -0,0 +1,14 @@ +TORTOISE_ORM_CONFIG = { + "connections": { + "default": { + "engine": "tortoise.backends.sqlite", + "credentials": {"file_path": "db.sqlite3"}, + }, + }, + "apps": { + "app": { + "models": ["teilchensammer_cli.models", "aerich.models"], + "default_connection": "default", + } + }, +}