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