Classgen: make type order predictable
This commit is contained in:
@@ -10,24 +10,24 @@ from typing import Any
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class MachineDeploy:
|
class MachineDeploy:
|
||||||
targetHost: str | None = field(default = None)
|
targetHost: None | str = field(default = None)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Machine:
|
class Machine:
|
||||||
deploy: MachineDeploy
|
deploy: MachineDeploy
|
||||||
name: str
|
name: str
|
||||||
description: str | None = field(default = None)
|
description: None | str = field(default = None)
|
||||||
icon: str | None = field(default = None)
|
icon: None | str = field(default = None)
|
||||||
system: str | None = field(default = None)
|
system: None | str = field(default = None)
|
||||||
tags: list[str] = field(default_factory = list)
|
tags: list[str] = field(default_factory = list)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Meta:
|
class Meta:
|
||||||
name: str
|
name: str
|
||||||
description: str | None = field(default = None)
|
description: None | str = field(default = None)
|
||||||
icon: str | None = field(default = None)
|
icon: None | str = field(default = None)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -50,8 +50,8 @@ class ServiceBorgbackupMachine:
|
|||||||
@dataclass
|
@dataclass
|
||||||
class ServiceMeta:
|
class ServiceMeta:
|
||||||
name: str
|
name: str
|
||||||
description: str | None = field(default = None)
|
description: None | str = field(default = None)
|
||||||
icon: str | None = field(default = None)
|
icon: None | str = field(default = None)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -118,7 +118,7 @@ class ServicePackage:
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class SingleDiskConfig:
|
class SingleDiskConfig:
|
||||||
device: str | None = field(default = None)
|
device: None | str = field(default = None)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -160,7 +160,8 @@ def get_field_def(
|
|||||||
default_factory: str | None = None,
|
default_factory: str | None = None,
|
||||||
type_apendix: str = "",
|
type_apendix: str = "",
|
||||||
) -> str:
|
) -> str:
|
||||||
serialised_types = " | ".join(field_types) + type_apendix
|
sorted_field_types = sorted(field_types)
|
||||||
|
serialised_types = " | ".join(sorted_field_types) + type_apendix
|
||||||
if not default and not default_factory and not field_meta:
|
if not default and not default_factory and not field_meta:
|
||||||
return f"{field_name}: {serialised_types}"
|
return f"{field_name}: {serialised_types}"
|
||||||
field_init = "field("
|
field_init = "field("
|
||||||
@@ -242,7 +243,6 @@ def generate_dataclass(schema: dict[str, Any], class_name: str = root_class) ->
|
|||||||
|
|
||||||
assert field_types, f"Python type not found for {prop} {prop_info}"
|
assert field_types, f"Python type not found for {prop} {prop_info}"
|
||||||
|
|
||||||
# serialised_types = " | ".join(field_types)
|
|
||||||
field_meta = None
|
field_meta = None
|
||||||
if field_name != prop:
|
if field_name != prop:
|
||||||
field_meta = f"""{{"original_name": "{prop}"}}"""
|
field_meta = f"""{{"original_name": "{prop}"}}"""
|
||||||
|
|||||||
Reference in New Issue
Block a user