Spaces:
Running
Running
import abc | |
from uuid import UUID | |
from sqlmodel import Session | |
from sqlmodel.ext.asyncio.session import AsyncSession | |
from langflow.services.base import Service | |
from langflow.services.database.models.variable.model import Variable | |
class VariableService(Service): | |
"""Abstract base class for a variable service.""" | |
name = "variable_service" | |
async def initialize_user_variables(self, user_id: UUID | str, session: AsyncSession) -> None: | |
"""Initialize user variables. | |
Args: | |
user_id: The user ID. | |
session: The database session. | |
""" | |
def get_variable(self, user_id: UUID | str, name: str, field: str, session: Session) -> str: | |
"""Get a variable value. | |
Args: | |
user_id: The user ID. | |
name: The name of the variable. | |
field: The field of the variable. | |
session: The database session. | |
Returns: | |
The value of the variable. | |
""" | |
def list_variables_sync(self, user_id: UUID | str, session: Session) -> list[str | None]: | |
"""List all variables. | |
Args: | |
user_id: The user ID. | |
session: The database session. | |
Returns: | |
A list of variable names. | |
""" | |
async def list_variables(self, user_id: UUID | str, session: AsyncSession) -> list[str | None]: | |
"""List all variables. | |
Args: | |
user_id: The user ID. | |
session: The database session. | |
Returns: | |
A list of variable names. | |
""" | |
async def update_variable(self, user_id: UUID | str, name: str, value: str, session: AsyncSession) -> Variable: | |
"""Update a variable. | |
Args: | |
user_id: The user ID. | |
name: The name of the variable. | |
value: The value of the variable. | |
session: The database session. | |
Returns: | |
The updated variable. | |
""" | |
async def delete_variable(self, user_id: UUID | str, name: str, session: AsyncSession) -> None: | |
"""Delete a variable. | |
Args: | |
user_id: The user ID. | |
name: The name of the variable. | |
session: The database session. | |
Returns: | |
The deleted variable. | |
""" | |
async def delete_variable_by_id(self, user_id: UUID | str, variable_id: UUID, session: AsyncSession) -> None: | |
"""Delete a variable by ID. | |
Args: | |
user_id: The user ID. | |
variable_id: The ID of the variable. | |
session: The database session. | |
""" | |
async def create_variable( | |
self, | |
user_id: UUID | str, | |
name: str, | |
value: str, | |
*, | |
default_fields: list[str], | |
type_: str, | |
session: AsyncSession, | |
) -> Variable: | |
"""Create a variable. | |
Args: | |
user_id: The user ID. | |
name: The name of the variable. | |
value: The value of the variable. | |
default_fields: The default fields of the variable. | |
type_: The type of the variable. | |
session: The database session. | |
Returns: | |
The created variable. | |
""" | |