(self, msg: "UserMessage", broadcast_level: int = 1)
| 258 | |
| 259 | @extension.extensible |
| 260 | def communicate(self, msg: "UserMessage", broadcast_level: int = 1): |
| 261 | self.paused = False # unpause if paused |
| 262 | |
| 263 | current_agent = self.get_agent() |
| 264 | |
| 265 | if self.task and self.task.is_alive(): |
| 266 | # set intervention messages to agent(s): |
| 267 | intervention_agent = current_agent |
| 268 | while intervention_agent and broadcast_level != 0: |
| 269 | intervention_agent.intervention = msg |
| 270 | broadcast_level -= 1 |
| 271 | intervention_agent = intervention_agent.data.get( |
| 272 | Agent.DATA_NAME_SUPERIOR, None |
| 273 | ) |
| 274 | else: |
| 275 | self.task = self.run_task(self._process_chain, current_agent, msg) |
| 276 | |
| 277 | return self.task |
| 278 | |
| 279 | @extension.extensible |
| 280 | def run_task( |
no test coverage detected