Source code for flexlate_dev.user_command

from typing import Optional

from pydantic import BaseModel, root_validator


[docs]class UserCommand(BaseModel): run: Optional[str] = None name: Optional[str] = None background: Optional[bool] = None id: Optional[str] = None
[docs] @root_validator def run_or_id_must_be_defined(cls, v): if not v.get("run") and not v.get("id"): raise ValueError("run or id must be defined") return v
[docs] @classmethod def from_string(cls, command: str) -> "UserCommand": return cls(run=command)
@property def display_name(self) -> str: if self.name is None and self.run is None: raise ValueError("name or run must be defined") return self.name or self.run # type: ignore @property def is_reference(self) -> bool: return self.id is not None and self.run is None