Skip to content

Database

db

This module defines helper functions to create, connect and manage the Mirumoji database for storing profile information using the databases and SQLAlchemy modules with SQLite3.

Attributes:

Name Type Description
DATABASE_URL str

SQLite database URL acquired from environment variable. Defaults to sqlite:///./data/mirumoji.db

METADATA MetaData

sqlachemy MetaData object for database.

database Database

Database object.

engine Engine

SQLAlchemy Engine object for database

DbManager

Implements async CRUD operations for the mirumoji database.

Attributes:

Name Type Description
TABLES dict

Dictionary mapping string table names to their SQAlchemy Table object

create(table_name, values) async

Create row with values values in table table_name

Parameters:

Name Type Description Default
table_name str

Table in which to create row

required
values dict

Row values

required

Returns:

Name Type Description
Any Any

Return result of databases.execute

delete(table_name, filter_dict) async

Delete row where column filter_dict.key has value filter_dict.value, in table table_name

Parameters:

Name Type Description Default
table_name str

Table name to update

required
filter_dict Dict[str, Any]

Dictionary of column - values to filter

required

Returns:

Name Type Description
Any Any

Return result of databases.execute

execute(q) async

Wrapper for executing an arbitrary query

Parameters:

Name Type Description Default
q Any

Query to execute

required

Returns:

Name Type Description
Any Any

return value of Database.execute

read(table_name, filter_dict, fetch_one=False) async

Select all rows where column filter_dict.key has value filter_dict.value, in table table_name

Parameters:

Name Type Description Default
table_name str

Table name to update

required
filter_dict Dict[str, Any]

Dictionary of column - values to filter

required
fetch_one bool

If True, fetch only one result otherwise fetch all. Defaults to False

False

Returns:

Name Type Description
Any Any

Result of databases.fetch_all on filter query

update(table_name, filter_dict, values) async

Update row where columns filter_dict.key have value filter_dict.value, in table table_name with values values

Parameters:

Name Type Description Default
table_name str

Table name to update

required
filter_dict Dict[str, Any]

Dictionary of column - values to filter

required
values dict

New row values

required

Returns:

Name Type Description
Any Any

Return result of databases.execute

connect_db() async

Wrapper for Database.connect

disconnect_db() async

Wrapper for Database.disconnect

get_db() async

Get the Database object.

Returns:

Name Type Description
Database Database

Database object

Tables

This module defines the Tables of the Mirumoji Database for profile management.

Attributes:

Name Type Description
METADATA MetaData

Database MetaData object.

profiles Table

sqalchemy table object for profiles.

gpt_templates Table

sqalchemy table object for gpt_templates.

profile_transcripts Table

sqalchemy table object for transcripts.

profile_files Table

sqalchemy table object for files.

clips Table

sqalchemy table object for saved clips.