Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ ci:

repos:
- repo: https://github.com/commitizen-tools/commitizen
rev: v4.12.1
rev: v4.13.7
hooks:
- id: commitizen
stages: [commit-msg]
Expand All @@ -27,7 +27,7 @@ repos:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/python-poetry/poetry
rev: 2.3.1
rev: 2.3.2
hooks:
- id: poetry-check
- repo: https://github.com/pre-commit/mirrors-prettier
Expand All @@ -36,7 +36,7 @@ repos:
- id: prettier
args: ["--tab-width", "2"]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.14
rev: v0.15.1
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
Expand Down
4 changes: 2 additions & 2 deletions src/uiprotect/cli/backup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import time
from dataclasses import dataclass
from datetime import UTC, datetime, timedelta
from enum import Enum
from enum import StrEnum
from pathlib import Path
from typing import TYPE_CHECKING, Any, cast

Expand Down Expand Up @@ -106,7 +106,7 @@ async def create_db(self) -> None:
await conn.run_sync(Base.metadata.create_all)


class EventTypeChoice(str, Enum):
class EventTypeChoice(StrEnum):
MOTION = d.EventType.MOTION.value
RING = d.EventType.RING.value
SMART_DETECT = d.EventType.SMART_DETECT.value
Expand Down
4 changes: 2 additions & 2 deletions src/uiprotect/cli/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from collections.abc import Callable, Coroutine, Mapping, Sequence
from dataclasses import dataclass
from enum import Enum
from enum import StrEnum
from typing import Any, TypeVar

import orjson
Expand All @@ -19,7 +19,7 @@
OPTION_FORCE = typer.Option(False, "-f", "--force", help="Skip confirmation prompt")


class OutputFormatEnum(str, Enum):
class OutputFormatEnum(StrEnum):
JSON = "json"
PLAIN = "plain"

Expand Down
66 changes: 33 additions & 33 deletions src/uiprotect/data/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def _missing_(cls, value: Any) -> Any | None:


@enum.unique
class ModelType(str, UnknownValuesEnumMixin, enum.Enum):
class ModelType(UnknownValuesEnumMixin, enum.StrEnum):
CAMERA = "camera"
CLOUD_IDENTITY = "cloudIdentity"
EVENT = "event"
Expand Down Expand Up @@ -225,7 +225,7 @@ def _immutable(self, name: str, value: Any) -> None:


@enum.unique
class EventType(str, ValuesEnumMixin, enum.Enum):
class EventType(ValuesEnumMixin, enum.StrEnum):
DISCONNECT = "disconnect"
FACTORY_RESET = "factoryReset"
PROVISION = "provision"
Expand Down Expand Up @@ -332,7 +332,7 @@ def motion_events() -> list[str]:


@enum.unique
class StateType(str, ValuesEnumMixin, enum.Enum):
class StateType(ValuesEnumMixin, enum.StrEnum):
CONNECTED = "CONNECTED"
CONNECTING = "CONNECTING"
DISCONNECTED = "DISCONNECTED"
Expand All @@ -348,7 +348,7 @@ class ProtectWSPayloadFormat(int, enum.Enum):


@enum.unique
class SmartDetectObjectType(str, ValuesEnumMixin, enum.Enum):
class SmartDetectObjectType(ValuesEnumMixin, enum.StrEnum):
PERSON = "person"
ANIMAL = "animal"
VEHICLE = "vehicle"
Expand All @@ -374,7 +374,7 @@ def audio_type(self) -> SmartDetectAudioType | None:


@enum.unique
class SmartDetectAudioType(str, ValuesEnumMixin, enum.Enum):
class SmartDetectAudioType(ValuesEnumMixin, enum.StrEnum):
SMOKE = "alrmSmoke"
CMONX = "alrmCmonx"
SMOKE_CMONX = "smoke_cmonx"
Expand All @@ -388,7 +388,7 @@ class SmartDetectAudioType(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class DetectionColor(str, ValuesEnumMixin, enum.Enum):
class DetectionColor(ValuesEnumMixin, enum.StrEnum):
BLACK = "black"
BLUE = "blue"
BROWN = "brown"
Expand Down Expand Up @@ -416,30 +416,30 @@ class DetectionColor(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class DoorbellMessageType(str, ValuesEnumMixin, enum.Enum):
class DoorbellMessageType(ValuesEnumMixin, enum.StrEnum):
LEAVE_PACKAGE_AT_DOOR = "LEAVE_PACKAGE_AT_DOOR"
DO_NOT_DISTURB = "DO_NOT_DISTURB"
CUSTOM_MESSAGE = "CUSTOM_MESSAGE"
IMAGE = "IMAGE"


@enum.unique
class LightModeEnableType(str, ValuesEnumMixin, enum.Enum):
class LightModeEnableType(ValuesEnumMixin, enum.StrEnum):
DARK = "dark"
ALWAYS = "fulltime"
NIGHT = "night"


@enum.unique
class LightModeType(str, ValuesEnumMixin, enum.Enum):
class LightModeType(ValuesEnumMixin, enum.StrEnum):
MOTION = "motion"
WHEN_DARK = "always"
MANUAL = "off"
SCHEDULE = "schedule"


@enum.unique
class VideoMode(str, ValuesEnumMixin, enum.Enum):
class VideoMode(ValuesEnumMixin, enum.StrEnum):
DEFAULT = "default"
HIGH_FPS = "highFps"
HOMEKIT = "homekit"
Expand All @@ -452,13 +452,13 @@ class VideoMode(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class AudioStyle(str, UnknownValuesEnumMixin, enum.Enum):
class AudioStyle(UnknownValuesEnumMixin, enum.StrEnum):
NATURE = "nature"
NOISE_REDUCED = "noiseReduced"


@enum.unique
class RecordingMode(str, ValuesEnumMixin, enum.Enum):
class RecordingMode(ValuesEnumMixin, enum.StrEnum):
ADAPTIVE = "adaptive"
ALWAYS = "always"
NEVER = "never"
Expand All @@ -467,28 +467,28 @@ class RecordingMode(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class AnalyticsOption(str, ValuesEnumMixin, enum.Enum):
class AnalyticsOption(ValuesEnumMixin, enum.StrEnum):
NONE = "none"
ANONYMOUS = "anonymous"
FULL = "full"


@enum.unique
class RecordingType(str, ValuesEnumMixin, enum.Enum):
class RecordingType(ValuesEnumMixin, enum.StrEnum):
TIMELAPSE = "timelapse"
CONTINUOUS = "rotating"
DETECTIONS = "detections"


@enum.unique
class ResolutionStorageType(str, ValuesEnumMixin, enum.Enum):
class ResolutionStorageType(ValuesEnumMixin, enum.StrEnum):
UHD = "4K"
HD = "HD"
FREE = "free"


@enum.unique
class IRLEDMode(str, UnknownValuesEnumMixin, enum.Enum):
class IRLEDMode(UnknownValuesEnumMixin, enum.StrEnum):
AUTO = "auto"
ON = "on"
AUTO_NO_LED = "autoFilterOnly"
Expand All @@ -499,7 +499,7 @@ class IRLEDMode(str, UnknownValuesEnumMixin, enum.Enum):


@enum.unique
class MountType(str, ValuesEnumMixin, enum.Enum):
class MountType(ValuesEnumMixin, enum.StrEnum):
NONE = "none"
LEAK = "leak"
DOOR = "door"
Expand All @@ -508,14 +508,14 @@ class MountType(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class SensorType(str, ValuesEnumMixin, enum.Enum):
class SensorType(ValuesEnumMixin, enum.StrEnum):
TEMPERATURE = "temperature"
LIGHT = "light"
HUMIDITY = "humidity"


@enum.unique
class SensorStatusType(str, UnknownValuesEnumMixin, enum.Enum):
class SensorStatusType(UnknownValuesEnumMixin, enum.StrEnum):
OFFLINE = "offline"
UNKNOWN = "unknown"
SAFE = "safe"
Expand All @@ -525,7 +525,7 @@ class SensorStatusType(str, UnknownValuesEnumMixin, enum.Enum):


@enum.unique
class SleepStateType(str, ValuesEnumMixin, enum.Enum):
class SleepStateType(ValuesEnumMixin, enum.StrEnum):
DISCONNECTED = "disconnected"
AWAKE = "awake"
START_SLEEP = "goingToSleep"
Expand All @@ -534,7 +534,7 @@ class SleepStateType(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class AutoExposureMode(str, ValuesEnumMixin, enum.Enum):
class AutoExposureMode(ValuesEnumMixin, enum.StrEnum):
MANUAL = "manual"
AUTO = "auto"
NONE = "none"
Expand All @@ -544,7 +544,7 @@ class AutoExposureMode(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class FocusMode(str, ValuesEnumMixin, enum.Enum):
class FocusMode(ValuesEnumMixin, enum.StrEnum):
MANUAL = "manual"
AUTO = "auto"
NONE = "none"
Expand All @@ -553,7 +553,7 @@ class FocusMode(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class MountPosition(str, UnknownValuesEnumMixin, enum.Enum):
class MountPosition(UnknownValuesEnumMixin, enum.StrEnum):
CEILING = "ceiling"
WALL = "wall"
DESK = "desk"
Expand All @@ -562,33 +562,33 @@ class MountPosition(str, UnknownValuesEnumMixin, enum.Enum):


@enum.unique
class GeofencingSetting(str, ValuesEnumMixin, enum.Enum):
class GeofencingSetting(ValuesEnumMixin, enum.StrEnum):
OFF = "off"
ALL_AWAY = "allAway"


@enum.unique
class MotionAlgorithm(str, ValuesEnumMixin, enum.Enum):
class MotionAlgorithm(ValuesEnumMixin, enum.StrEnum):
STABLE = "stable"
ENHANCED = "enhanced"


@enum.unique
class AudioCodecs(str, ValuesEnumMixin, enum.Enum):
class AudioCodecs(ValuesEnumMixin, enum.StrEnum):
AAC = "aac"
VORBIS = "vorbis"
OPUS = "opus"


@enum.unique
class LowMedHigh(str, ValuesEnumMixin, enum.Enum):
class LowMedHigh(ValuesEnumMixin, enum.StrEnum):
LOW = "low"
MEDIUM = "medium"
HIGH = "high"


@enum.unique
class StorageType(str, UnknownValuesEnumMixin, enum.Enum):
class StorageType(UnknownValuesEnumMixin, enum.StrEnum):
DISK = "hdd"
RAID = "raid"
SD_CARD = "sdcard"
Expand All @@ -597,7 +597,7 @@ class StorageType(str, UnknownValuesEnumMixin, enum.Enum):


@enum.unique
class FirmwareReleaseChannel(str, ValuesEnumMixin, enum.Enum):
class FirmwareReleaseChannel(ValuesEnumMixin, enum.StrEnum):
INTERNAL = "internal"
ALPHA = "alpha"
BETA = "beta"
Expand All @@ -613,7 +613,7 @@ class ChimeType(int, enum.Enum):


@enum.unique
class LockStatusType(str, ValuesEnumMixin, enum.Enum):
class LockStatusType(ValuesEnumMixin, enum.StrEnum):
OPEN = "OPEN"
OPENING = "OPENING"
CLOSED = "CLOSED"
Expand All @@ -629,7 +629,7 @@ class LockStatusType(str, ValuesEnumMixin, enum.Enum):


@enum.unique
class PermissionNode(str, UnknownValuesEnumMixin, enum.Enum):
class PermissionNode(UnknownValuesEnumMixin, enum.StrEnum):
CREATE = "create"
READ = "read"
WRITE = "write"
Expand All @@ -651,14 +651,14 @@ def value(self) -> str:


@enum.unique
class HDRMode(str, UnknownValuesEnumMixin, enum.Enum):
class HDRMode(UnknownValuesEnumMixin, enum.StrEnum):
NONE = "none"
NORMAL = "normal"
ALWAYS_ON = "superHdr"


@enum.unique
class LensType(str, enum.Enum):
class LensType(enum.StrEnum):
NONE = "none"
FULL_360 = "360"
WIDE = "wide"
Expand Down
2 changes: 1 addition & 1 deletion src/uiprotect/data/websocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class WSPacketFrameHeader:


@enum.unique
class WSAction(str, enum.Enum):
class WSAction(enum.StrEnum):
ADD = "add"
UPDATE = "update"
REMOVE = "remove"
Expand Down
Loading