]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
modeling: parsing: data dump from instances of class 'Renamed'
authorAleš Mrázek <ales.mrazek@nic.cz>
Fri, 9 Feb 2024 15:04:07 +0000 (16:04 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Thu, 15 Feb 2024 09:51:05 +0000 (10:51 +0100)
manager/knot_resolver_manager/utils/modeling/parsing.py

index e33cca3a1a207a748154ca126a7e4cafaaea68f4..aaac6807795dc67ffd5f687702bd7310bad04515 100644 (file)
@@ -7,7 +7,7 @@ from yaml.constructor import ConstructorError
 from yaml.nodes import MappingNode
 
 from .exceptions import DataParsingError
-from .renaming import renamed
+from .renaming import Renamed, renamed
 
 
 # custom hook for 'json.loads()' to detect duplicate keys in data
@@ -63,11 +63,14 @@ class DataFormat(Enum):
         else:
             raise NotImplementedError(f"Parsing of format '{self}' is not implemented")
 
-    def dict_dump(self, data: Dict[str, Any]) -> str:
+    def dict_dump(self, data: Union[Dict[str, Any], Renamed], indent: Optional[int] = None) -> str:
+        if isinstance(data, Renamed):
+            data = data.original()
+
         if self is DataFormat.YAML:
-            return yaml.safe_dump(data)  # type: ignore
+            return yaml.safe_dump(data, indent=indent)  # type: ignore
         elif self is DataFormat.JSON:
-            return json.dumps(data)
+            return json.dumps(data, indent=indent)
         else:
             raise NotImplementedError(f"Exporting to '{self}' format is not implemented")