def __init__(self, state_machine, meta=None, load_meta_data=True): """Constructor """ MetaModel.__init__(self) # pass columns as separate parameters assert isinstance(state_machine, StateMachine) self.state_machine = state_machine self.state_machine_id = state_machine.state_machine_id root_state = self.state_machine.root_state if isinstance(root_state, ContainerState): self.root_state = ContainerStateModel( root_state, parent=self, load_meta_data=load_meta_data) else: self.root_state = StateModel(root_state, parent=self, load_meta_data=load_meta_data) if isinstance(meta, Vividict): self.meta = meta else: self.meta = Vividict() # ongoing_complex_actions is updated by ComplexActionObserver -> secure encapsulated observation # and made observable by state machine model here self.ongoing_complex_actions = {} self.complex_action_observer = ComplexActionObserver(self) self.meta_signal = Signal() self.state_meta_signal = Signal() self.action_signal = Signal() self.state_action_signal = Signal() self.sm_selection_changed_signal = Signal() self.destruction_signal = Signal() self.temp = Vividict() if load_meta_data: self.load_meta_data(recursively=False) self.selection = Selection(self.sm_selection_changed_signal) self.storage_lock = threading.Lock( ) # lock can not be substituted by the state machine lock -> maybe because it is a RLock self.history = None if global_gui_config.get_config_value('HISTORY_ENABLED'): from rafcon.gui.models.modification_history import ModificationsHistoryModel self.history = ModificationsHistoryModel(self) else: logger.info("The modification history is disabled") self.auto_backup = None if global_gui_config.get_config_value('AUTO_BACKUP_ENABLED'): from rafcon.gui.models.auto_backup import AutoBackupModel self.auto_backup = AutoBackupModel(self) self.root_state.register_observer(self) self.register_observer(self)
def __init__(self, state, parent=None, meta=None): if type(self) == AbstractStateModel: raise NotImplementedError MetaModel.__init__(self, meta) assert isinstance(state, State) self.is_start = False self.state = state self.parent = parent self.meta_signal = Signal() self.action_signal = Signal() self.destruction_signal = Signal() self.register_observer(self) self.input_data_ports = [] self.output_data_ports = [] self.outcomes = [] self._load_input_data_port_models() self._load_output_data_port_models() self._load_income_model() self._load_outcome_models()
def __init__(self, parent, meta=None): MetaModel.__init__(self, meta) self.parent = parent self.destruction_signal = Signal() # this class is an observer of its own properties: self.register_observer(self)