Source code for supervisor_pydantic.config.group
from typing import List, Optional
from pydantic import Field, field_serializer, field_validator
from .base import _BaseCfgModel
__all__ = ("GroupConfiguration",)
[docs]
class GroupConfiguration(_BaseCfgModel):
[docs]
def to_cfg(self, key: str) -> str:
# Overload to require key
return super().to_cfg(key=key)
programs: List[str] = Field(description="A comma-separated list of program names. The programs which are listed become members of the group.")
priority: Optional[int] = Field(default=None, description="A priority number analogous to a [program:x] priority value assigned to the group.")
@field_serializer("programs", when_used="json")
def _dump_programs(self, v):
if v:
return ",".join(v)
return None
@field_validator("programs", mode="before")
@classmethod
def _load_programs(cls, v):
if isinstance(v, str):
return v.split(",")
return v