19 lines
473 B
Python
19 lines
473 B
Python
"""Conversation kinds as one closed type for agents, frontends, service."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Literal, get_args
|
|
|
|
__all__ = ["KINDS", "Kind", "as_kind"]
|
|
|
|
Kind = Literal["master", "branch", "deep", "job", "fork"]
|
|
KINDS: tuple[Kind, ...] = get_args(Kind)
|
|
|
|
|
|
def as_kind(value: str) -> Kind:
|
|
for kind in KINDS:
|
|
if value == kind:
|
|
return kind
|
|
msg = f"unknown conversation kind {value!r}"
|
|
raise ValueError(msg)
|