docs: def gather_candidates(self):
          """Gather candidates from the slave environments.
  
          The candidates are stored in :attr:`candidates`, overriding any
          previous candidates.
          """
          async def slave_task(addr):
              r_manager = await self.env.connect(addr)
              return await r_manager.get_candidates()
  
          if self._single_env:
              self._candidates = self.env.candidates
          else:
              mgrs = self.get_managers()
              tasks = create_tasks(slave_task, mgrs)
              self._candidates = run(tasks)