docs: async def wait_until_ready(
          self, timeout: Optional[float] = None, no_raise: bool = False
      ) -> bool:
          """
          Waits for the underlying node to become ready.
  
          If no_raise is set, returns false when a timeout occurs instead of propogating TimeoutError.
          A timeout of None means to wait indefinitely.
          """
          if self.node.ready.is_set():
              return True
  
          try:
              return await self.node.wait_until_ready(timeout=timeout)
          except asyncio.TimeoutError:
              if no_raise:
                  return False
              else:
                  raise