aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/infini/input.py
blob: 21c12a2fbf9198e9fdb4b1d4e53662e0724d4705 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from infini.typing import Dict, Any, Generic, T


class Input(Generic[T]):
    plain_data: T
    variables: Dict[str, Any]

    def __init__(self, plain_data: Any, variables: Dict[str, Any] | None = None) -> None:
        self.plain_data = plain_data
        self.variables = variables or {}

    def get_session_id(self) -> str:
        if session_id := self.variables.get("session_id"):
            return session_id

        user_id = self.variables.get("user_id", "unknown")
        group_id = self.variables.get("group_id", "unknown")
        return f"session_{group_id}_{user_id}"

    def get_plain_text(self) -> str:
        return str(self.plain_data)