audia.storage — Database models & access


audia.storage.models — SQLAlchemy ORM models

SQLAlchemy ORM models for audia’s SQLite database.

class audia.storage.models.Base(*args, **kwargs)[source]

Bases: DeclarativeBase

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class audia.storage.models.Paper(*args, **kwargs)[source]

Bases: Base

Academic paper (from ArXiv or uploaded manually).

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

audio_files: Mapped[list[AudioFile]] = 'AudioFile'
property authors_list: list[str]
class audia.storage.models.AudioFile(*args, **kwargs)[source]

Bases: Base

Generated audio file, linked to an optional Paper.

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

paper: Mapped[Paper | None] = 'Paper'
class audia.storage.models.ResearchSession(*args, **kwargs)[source]

Bases: Base

A research session: a user query → list of selected paper IDs. Useful for auditing and re-running searches.

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

property paper_ids_list: list[int]
class audia.storage.models.UserSetting(*args, **kwargs)[source]

Bases: Base

Persistent key-value store for user-configured pipeline settings.

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any


audia.storage.database — Session factory & helpers

SQLAlchemy engine + session factory for audia’s SQLite database. Supports per-project databases: each project lives under ~/.audia/<project>/.

audia.storage.database.engine(project=None)[source]

Return (and lazily create) the SQLAlchemy engine for project. Tables are auto-created on first access.

Parameters:

project (str | None)

audia.storage.database.init_db(project=None)[source]

Create all tables for project (safe to call multiple times).

Parameters:

project (str | None)

Return type:

None

audia.storage.database.get_session(project=None)[source]

Context-manager that yields a DB session for project and commits/rolls back.

Parameters:

project (str | None)

Return type:

Generator[sqlalchemy.orm.Session, None, None]