<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def take_at_least_n_seconds(time_s):
 """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. """

  timeout = PolledTimeout(time_s)
  yield
  while not timeout.has_expired():
    time.sleep(timeout.remaining)