From bfaaa2e0383a9421f8a33e6d7211205c9f08dafc Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Fri, 19 Jul 2024 18:49:16 +0200 Subject: [PATCH] Classgen: make type order predictable --- pkgs/clan-cli/clan_cli/inventory/classes.py | 18 +++++++++--------- pkgs/classgen/main.py | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/inventory/classes.py b/pkgs/clan-cli/clan_cli/inventory/classes.py index a6d506be5..7712932a3 100644 --- a/pkgs/clan-cli/clan_cli/inventory/classes.py +++ b/pkgs/clan-cli/clan_cli/inventory/classes.py @@ -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 diff --git a/pkgs/classgen/main.py b/pkgs/classgen/main.py index 4ad1104f9..a4537c276 100644 --- a/pkgs/classgen/main.py +++ b/pkgs/classgen/main.py @@ -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}"}}"""