code: def take_at_least_n_seconds(time_s):
    
    timeout = PolledTimeout(time_s)
    yield
    while not timeout.has_expired():
      time.sleep(timeout.remaining)
docs: A context manager which ensures it takes at least time_s to execute.
  
    Example:
      with take_at_least_n_seconds(5):
        do.Something()
        do.SomethingElse()
      # if Something and SomethingElse took 3 seconds, the with block with sleep
      # for 2 seconds before exiting.
    Args:
      time_s: The number of seconds this block should take.  If it doesn't take at
        least this time, then this method blocks during __exit__.
    Yields:
      To do some actions then on completion waits the remaining time.