mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
9c89d3452c
feat(nodes): add ResultsServiceABC & SqliteResultsService **Doesn't actually work bc of circular imports. Can't even test it.** - add a base class for ResultsService and SQLite implementation - use `graph_execution_manager` `on_changed` callback to keep `results` table in sync fix(nodes): fix results service bugs chore(ui): regen api fix(ui): fix type guards feat(nodes): add `result_type` to results table, fix types fix(nodes): do not shadow `list` builtin feat(nodes): add results router It doesn't work due to circular imports still fix(nodes): Result class should use outputs classes, not fields feat(ui): crude results router fix(ui): send to canvas in currentimagebuttons not working feat(nodes): add core metadata builder feat(nodes): add design doc feat(nodes): wip latents db stuff feat(nodes): images_db_service and resources router feat(nodes): wip images db & router feat(nodes): update image related names feat(nodes): update urlservice feat(nodes): add high-level images service
40 lines
925 B
Python
40 lines
925 B
Python
from enum import Enum
|
|
import sqlite3
|
|
from typing import Type
|
|
|
|
|
|
def create_sql_values_string_from_string_enum(enum: Type[Enum]):
|
|
"""
|
|
Creates a string of the form "('value1'), ('value2'), ..., ('valueN')" from a StrEnum.
|
|
"""
|
|
|
|
delimiter = ", "
|
|
values = [f"('{e.value}')" for e in enum]
|
|
return delimiter.join(values)
|
|
|
|
|
|
def create_enum_table(
|
|
enum: Type[Enum],
|
|
table_name: str,
|
|
primary_key_name: str,
|
|
cursor: sqlite3.Cursor,
|
|
):
|
|
"""
|
|
Creates and populates a table to be used as a functional enum.
|
|
"""
|
|
|
|
values_string = create_sql_values_string_from_string_enum(enum)
|
|
|
|
cursor.execute(
|
|
f"""--sql
|
|
CREATE TABLE IF NOT EXISTS {table_name} (
|
|
{primary_key_name} TEXT PRIMARY KEY
|
|
);
|
|
"""
|
|
)
|
|
cursor.execute(
|
|
f"""--sql
|
|
INSERT OR IGNORE INTO {table_name} ({primary_key_name}) VALUES {values_string};
|
|
"""
|
|
)
|