code: def awaitTermination(self, timeout=None):
          
          if timeout is not None:
              if not isinstance(timeout, (int, float)) or timeout < 0:
                  raise ValueError("timeout must be a positive integer or float. Got %s" % timeout)
              return self._jsq.awaitTermination(int(timeout * 1000))
          else:
              return self._jsq.awaitTermination()
docs: Waits for the termination of `this` query, either by :func:`query.stop()` or by an
          exception. If the query has terminated with an exception, then the exception will be thrown.
          If `timeout` is set, it returns whether the query has terminated or not within the
          `timeout` seconds.
  
          If the query has terminated, then all subsequent calls to this method will either return
          immediately (if the query was terminated by :func:`stop()`), or throw the exception
          immediately (if the query has terminated with exception).
  
          throws :class:`StreamingQueryException`, if `this` query has terminated with an exception