Classgen: make type order predictable

This commit is contained in:
Johannes Kirschbauer
2024-07-19 18:49:16 +02:00
parent 5c18f67fed
commit 6d441a1494
2 changed files with 11 additions and 11 deletions

View File

@@ -10,24 +10,24 @@ from typing import Any
@dataclass
class MachineDeploy:
targetHost: str | None = field(default = None)
targetHost: None | str = field(default = None)
@dataclass
class Machine:
deploy: MachineDeploy
name: str
description: str | None = field(default = None)
icon: str | None = field(default = None)
system: str | None = field(default = None)
description: None | str = field(default = None)
icon: None | str = field(default = None)
system: None | str = field(default = None)
tags: list[str] = field(default_factory = list)
@dataclass
class Meta:
name: str
description: str | None = field(default = None)
icon: str | None = field(default = None)
description: None | str = field(default = None)
icon: None | str = field(default = None)
@dataclass
@@ -50,8 +50,8 @@ class ServiceBorgbackupMachine:
@dataclass
class ServiceMeta:
name: str
description: str | None = field(default = None)
icon: str | None = field(default = None)
description: None | str = field(default = None)
icon: None | str = field(default = None)
@dataclass
@@ -118,7 +118,7 @@ class ServicePackage:
@dataclass
class SingleDiskConfig:
device: str | None = field(default = None)
device: None | str = field(default = None)
@dataclass

View File

@@ -160,7 +160,8 @@ def get_field_def(
default_factory: str | None = None,
type_apendix: 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:
return f"{field_name}: {serialised_types}"
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}"
# serialised_types = " | ".join(field_types)
field_meta = None
if field_name != prop:
field_meta = f"""{{"original_name": "{prop}"}}"""