Initialize docker stack repo

This commit is contained in:
g4st3r
2026-03-07 17:28:59 +00:00
commit 319d4eeb3e
458 changed files with 67215 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
"""Schema for device capabilities."""
from enum import StrEnum
from typing import Annotated, Any, Literal, TypeVar, Union
from pydantic.v1 import Field
from .base import APIModel
from .capability_color import (
ColorSettingCapabilityInstance,
ColorSettingCapabilityInstanceActionState,
ColorSettingCapabilityParameters,
RGBInstanceActionState,
SceneInstanceActionState,
TemperatureKInstanceActionState,
)
from .capability_mode import ModeCapabilityInstance, ModeCapabilityInstanceActionState, ModeCapabilityParameters
from .capability_onoff import OnOffCapabilityInstance, OnOffCapabilityInstanceActionState, OnOffCapabilityParameters
from .capability_range import RangeCapabilityInstance, RangeCapabilityInstanceActionState, RangeCapabilityParameters
from .capability_toggle import ToggleCapabilityInstance, ToggleCapabilityInstanceActionState, ToggleCapabilityParameters
from .capability_video import (
GetStreamInstanceActionResultValue,
GetStreamInstanceActionState,
VideoStreamCapabilityInstance,
VideoStreamCapabilityParameters,
)
class CapabilityType(StrEnum):
"""Capability type."""
ON_OFF = "devices.capabilities.on_off"
COLOR_SETTING = "devices.capabilities.color_setting"
MODE = "devices.capabilities.mode"
RANGE = "devices.capabilities.range"
TOGGLE = "devices.capabilities.toggle"
VIDEO_STREAM = "devices.capabilities.video_stream"
@property
def short(self) -> str:
"""Return short version of the capability type."""
return str(self).replace("devices.capabilities.", "")
CapabilityParameters = (
OnOffCapabilityParameters
| ColorSettingCapabilityParameters
| ModeCapabilityParameters
| RangeCapabilityParameters
| ToggleCapabilityParameters
| VideoStreamCapabilityParameters
)
"""Parameters of a capability for a device list request."""
CapabilityInstance = (
OnOffCapabilityInstance
| ColorSettingCapabilityInstance
| ModeCapabilityInstance
| RangeCapabilityInstance
| ToggleCapabilityInstance
| VideoStreamCapabilityInstance
)
"""All capability instances."""
class CapabilityDescription(APIModel):
"""Description of a capability for a device list request."""
type: CapabilityType
retrievable: bool
reportable: bool
parameters: CapabilityParameters | None
class CapabilityInstanceStateValue(APIModel):
"""Capability instance value."""
instance: CapabilityInstance
value: Any
class CapabilityInstanceState(APIModel):
"""Capability state for state query and callback requests."""
type: CapabilityType
state: CapabilityInstanceStateValue
class OnOffCapabilityInstanceAction(APIModel):
"""New capability state for a state change request of on_off capability."""
type: Literal[CapabilityType.ON_OFF] = CapabilityType.ON_OFF
state: OnOffCapabilityInstanceActionState
class ColorSettingCapabilityInstanceAction(APIModel):
"""New capability state for a state change request of color_setting capability."""
type: Literal[CapabilityType.COLOR_SETTING] = CapabilityType.COLOR_SETTING
state: ColorSettingCapabilityInstanceActionState
class ModeCapabilityInstanceAction(APIModel):
"""New capability state for a state change request of mode capability."""
type: Literal[CapabilityType.MODE] = CapabilityType.MODE
state: ModeCapabilityInstanceActionState
class RangeCapabilityInstanceAction(APIModel):
"""New capability state for a state change request of range capability."""
type: Literal[CapabilityType.RANGE] = CapabilityType.RANGE
state: RangeCapabilityInstanceActionState
class ToggleCapabilityInstanceAction(APIModel):
"""New capability state for a state change request of toggle capability."""
type: Literal[CapabilityType.TOGGLE] = CapabilityType.TOGGLE
state: ToggleCapabilityInstanceActionState
class VideoStreamCapabilityInstanceAction(APIModel):
"""New capability state for a state change request of video_stream capability."""
type: Literal[CapabilityType.VIDEO_STREAM] = CapabilityType.VIDEO_STREAM
state: GetStreamInstanceActionState
CapabilityInstanceAction = Annotated[
Union[
OnOffCapabilityInstanceAction,
ColorSettingCapabilityInstanceAction,
ModeCapabilityInstanceAction,
RangeCapabilityInstanceAction,
ToggleCapabilityInstanceAction,
VideoStreamCapabilityInstanceAction,
],
Field(discriminator="type"),
]
"""New capability state including type for a state change request."""
CapabilityInstanceActionState = TypeVar(
"CapabilityInstanceActionState",
OnOffCapabilityInstanceActionState,
ColorSettingCapabilityInstanceActionState,
RGBInstanceActionState,
TemperatureKInstanceActionState,
SceneInstanceActionState,
ModeCapabilityInstanceActionState,
RangeCapabilityInstanceActionState,
ToggleCapabilityInstanceActionState,
GetStreamInstanceActionState,
contravariant=True,
)
"""New capability state for a state change request."""
CapabilityInstanceActionResultValue = GetStreamInstanceActionResultValue | None
"""Result of a capability state change."""