code: async def untilTrue(condition, *args, timeout=5) -> bool:
      
      result = False
      start = time.perf_counter()
      elapsed = 0
      while elapsed < timeout:
          result = condition(*args)
          if result:
              break
          await asyncio.sleep(.1)
          elapsed = time.perf_counter() - start
      return result
docs: Keep checking the condition till it is true or a timeout is reached
  
      :param condition: the condition to check (a function that returns bool)
      :param args: the arguments to the condition
      :return: True if the condition is met in the given timeout, False otherwise