Fix scaffolding generations (#138820)

This commit is contained in:
Steven Hartland
2025-02-19 19:23:29 +00:00
committed by GitHub
parent bc5146db3c
commit 4ed4c2cc5c
4 changed files with 105 additions and 42 deletions

View File

@@ -1,6 +1,7 @@
"""Utility functions for the scaffold script."""
import argparse
from typing import Any
from .const import COMPONENT_DIR
@@ -13,3 +14,23 @@ def valid_integration(integration):
)
return integration
_MANIFEST_SORT_KEYS = {"domain": ".domain", "name": ".name"}
def _sort_manifest_keys(key: str) -> str:
"""Sort manifest keys."""
return _MANIFEST_SORT_KEYS.get(key, key)
def sort_manifest(manifest: dict[str, Any]) -> bool:
"""Sort manifest."""
keys = list(manifest)
if (keys_sorted := sorted(keys, key=_sort_manifest_keys)) != keys:
sorted_manifest = {key: manifest[key] for key in keys_sorted}
manifest.clear()
manifest.update(sorted_manifest)
return True
return False