<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def Sleep(self, seconds):
 """Sleep a given time in 1 second intervals. When a machine is suspended during a time.sleep(n) call for more than n seconds, sometimes the sleep is interrupted and all threads wake up at the same time. This leads to race conditions between the threads issuing the heartbeat and the one checking for it. By sleeping in small intervals, we make sure that even if one sleep call is interrupted, we do not check for the heartbeat too early. Args: seconds: Number of seconds to sleep. Raises: MemoryError: if the process exceeds memory quota. """

    time.sleep(seconds - int(seconds))
    for _ in range(int(seconds)):
      time.sleep(1)
      # Check that we do not exceeded our memory allowance.
      if self.GetMemoryUsage() > self.memory_quota:
        raise MemoryError("Exceeded memory allowance.")
      if not self.running:
        break