clan.cli: convert dataclasses into TypedDict using classgen

This commit is contained in:
Johannes Kirschbauer
2024-12-06 18:29:06 +01:00
parent f018f4e68e
commit 4038439bf8

View File

@@ -5,37 +5,32 @@
# ruff: noqa: N806
# ruff: noqa: F401
# fmt: off
from dataclasses import dataclass, field
from typing import Any, Literal
from typing import Any, Literal, TypedDict, NotRequired
@dataclass
class MachineDeploy:
targetHost: None | str = field(default = None)
class MachineDeploy(TypedDict):
targetHost: NotRequired[str]
@dataclass
class Machine:
deploy: MachineDeploy
class Machine(TypedDict):
deploy: NotRequired[MachineDeploy]
description: NotRequired[str]
icon: NotRequired[str]
name: NotRequired[str]
tags: NotRequired[list[str]]
class Meta(TypedDict):
name: str
description: None | str = field(default = None)
icon: None | str = field(default = None)
tags: list[str] = field(default_factory = list)
@dataclass
class Meta:
name: str
description: None | str = field(default = None)
icon: None | str = field(default = None)
description: NotRequired[str]
icon: NotRequired[str]
Service = dict[str, Any]
@dataclass
class Inventory:
meta: Meta
machines: dict[str, Machine] = field(default_factory = dict)
modules: dict[str, str] = field(default_factory = dict)
services: dict[str, Service] = field(default_factory = dict)
tags: dict[str, list[str]] = field(default_factory = dict)
class Inventory(TypedDict):
machines: NotRequired[dict[str, Machine]]
meta: NotRequired[Meta]
modules: NotRequired[dict[str, str]]
services: NotRequired[dict[str, Service]]
tags: NotRequired[dict[str, list[str]]]