Returns the current tracker state as an object.
(
self, event_verbosity: EventVerbosity = EventVerbosity.NONE
)
| 231 | # Public tracker interface |
| 232 | ### |
| 233 | def current_state( |
| 234 | self, event_verbosity: EventVerbosity = EventVerbosity.NONE |
| 235 | ) -> Dict[Text, Any]: |
| 236 | """Returns the current tracker state as an object.""" |
| 237 | events = self._events_for_verbosity(event_verbosity) |
| 238 | events_as_dict = [e.as_dict() for e in events] if events is not None else None |
| 239 | latest_event_time = None |
| 240 | if len(self.events) > 0: |
| 241 | latest_event_time = self.events[-1].timestamp |
| 242 | |
| 243 | return { |
| 244 | "sender_id": self.sender_id, |
| 245 | "slots": self.current_slot_values(), |
| 246 | "latest_message": self._latest_message_data(), |
| 247 | "latest_event_time": latest_event_time, |
| 248 | FOLLOWUP_ACTION: self.followup_action, |
| 249 | "paused": self.is_paused(), |
| 250 | "events": events_as_dict, |
| 251 | "latest_input_channel": self.get_latest_input_channel(), |
| 252 | ACTIVE_LOOP: ( |
| 253 | dataclasses.asdict(self.active_loop) if self.active_loop else {} |
| 254 | ), |
| 255 | "latest_action": self.latest_action, |
| 256 | "latest_action_name": self.latest_action_name, |
| 257 | } |
| 258 | |
| 259 | def _events_for_verbosity( |
| 260 | self, event_verbosity: EventVerbosity |