Source code for api.simulation.data_tables.data_table_setup
""" This is the base class for data table setup objects. Particular implementations can be found in the :ref:`data table setup implementations documentation <data_tables>` """fromabcimportABCfrommore.api.exceptions.api_exceptionimportNameNotUniqueErrorfrommore.api.utils.change_duplicate_nameimportchange_duplicate_name
[docs]classDataTableSetup(ABC):def__init__(self,item):self.transient_data_table=itemself._data_table=itemdef_get_wrapped_object(self):returnself._data_tabledefset_name(self,name:str,resolve_duplicate_name:bool=False)->'DataTableSetup':ifnotisinstance(name,str):raiseTypeError("The given name: \"{}\" is not a string, but a \"{}\"".format(name,type(name)))created_names=[dt.namefordtinself._data_table.parent.elements]ifnameincreated_names:ifnotresolve_duplicate_name:raiseNameNotUniqueError(f'The given name: \"{name}\" is already given in the list: \"{created_names}\"')else:name=change_duplicate_name(name=name,names_list=created_names)self._data_table.name=namereturnselfdefget_name(self)->str:returnself._data_table.namedef__enter__(self):returnselfdef__exit__(self,exc_type,exc_val,exc_tb):pass