"""Output base class"""importtypingastimportnumpyasnpimportnumpy.typingasnptfromtaurex.logimportLoggerfromtaurex.typesimportAnyValType,ArrayType,ScalarTypeMetadataType=t.Dict[str,AnyValType]"""Type for metadata"""
[docs]classOutputGroup(Logger):"""Stores output data in a hierarchical structure."""def__init__(self,name:str):super().__init__(name)self._name=name
[docs]defcreate_group(self,group_name:str)->"OutputGroup":"""Create a group."""raiseNotImplementedError
[docs]defstore_dictionary(self,dictionary:t.Dict[str,t.Any],group_name:t.Optional[str]=None)->None:"""Store a dictionary in the output."""fromtaurex.utilimportrecursively_save_dict_contents_to_outputgroup=selfifgroup_nameisnotNone:group=self.create_group(group_name)recursively_save_dict_contents_to_output(group,dictionary)
[docs]classOutput(OutputGroup):"""Base calss for handling outputs from Taurex3"""def__init__(self,name:str)->None:"""Initialize output. Parameters ---------- name : str Name for logging purposes. """super().__init__(name)
[docs]defstore_dictionary(self,dictionary:t.Dict[str,t.Any],group_name:t.Optional[str]=None)->None:"""Store a dictionary in the output."""fromtaurex.utilimportrecursively_save_dict_contents_to_outputout=selfifgroup_nameisnotNone:out=self.create_group(group_name)recursively_save_dict_contents_to_output(out,dictionary)