Compare commits
No commits in common. "main" and "v0.5.3" have entirely different histories.
3 changed files with 0 additions and 27 deletions
|
|
@ -1,8 +1,5 @@
|
|||
import os
|
||||
from sqlmodel import SQLModel, create_engine
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
sqlite_url = os.environ.get("DATABASE_URL", "sqlite:///database.db")
|
||||
|
|
@ -11,4 +8,3 @@ engine = create_engine(sqlite_url, echo=False)
|
|||
|
||||
def create_db_and_tables(engine):
|
||||
SQLModel.metadata.create_all(engine)
|
||||
logger.debug("Created tables, if not already present")
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@ from textual.widgets import Button, DataTable, Footer, Header, Input, Static
|
|||
from .database import create_db_and_tables, engine
|
||||
from .models import add_to_database, load_initial_data, make_teilchen_input
|
||||
|
||||
# Make it so that log messages go to Textual; we should be able to then see
|
||||
# these in the console
|
||||
logging.basicConfig(
|
||||
level="NOTSET",
|
||||
handlers=[TextualHandler()],
|
||||
|
|
@ -66,7 +64,6 @@ class SearchBar(Static):
|
|||
async def parse_input(self, event: Input.Submitted) -> None:
|
||||
|
||||
if not (tc := await make_teilchen_input(event.value)):
|
||||
logger.debug("could not create TeilchenCreate from data: %s", event.value)
|
||||
return
|
||||
|
||||
event.input.value = ""
|
||||
|
|
|
|||
|
|
@ -82,40 +82,20 @@ async def make_teilchen_input(text: str) -> TeilchenCreate | None:
|
|||
|
||||
|
||||
async def load_initial_data(engine) -> Sequence[Teilchen]:
|
||||
"""Retrieve all Teilchen records from the database.
|
||||
|
||||
Args:
|
||||
engine (sqlalchemy.Engine): the engine or connection or whatever
|
||||
|
||||
Returns:
|
||||
List of Teilchen, potentially empty
|
||||
"""
|
||||
with Session(engine) as session:
|
||||
statement = select(
|
||||
Teilchen.id, Teilchen.name, Teilchen.description, Teilchen.number, Teilchen.tags
|
||||
) # ty:ignore[no-matching-overload]
|
||||
all_teilchen = session.exec(statement).all()
|
||||
|
||||
logger.debug("Loading initial data: found %s records", len(all_teilchen))
|
||||
return all_teilchen
|
||||
|
||||
|
||||
async def add_to_database(tc: TeilchenCreate, engine) -> Teilchen:
|
||||
"""Add given data as a new record into the database.
|
||||
|
||||
Args:
|
||||
engine (sqlalchemy.Engine): the engine or connection or whatever
|
||||
tc: Teilchen data (no `id` yet)
|
||||
|
||||
Returns:
|
||||
The newly created Teilchen (this time with `id`)
|
||||
"""
|
||||
logger.debug("received: %s", str(tc))
|
||||
with Session(engine) as session:
|
||||
teilchen = Teilchen.model_validate(tc)
|
||||
session.add(teilchen)
|
||||
session.commit()
|
||||
session.refresh(teilchen)
|
||||
|
||||
logger.debug("created: %s", str(teilchen))
|
||||
return teilchen
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue