def sleep(self, seconds):
if seconds < <NUM_LIT:0>:<EOL><INDENT>raise IOError("<STR_LIT>")<EOL><DEDENT>target = self._now + seconds<EOL>if target < self._next:<EOL><INDENT>self._now = target<EOL>return<EOL><DEDENT>self._now = target<EOL>for step in self._chronology:<EOL><INDENT>self._next += step<EOL>if self._next > target:<EOL><INDENT>return<EOL><DEDENT><DEDENT>raise BaseException("<STR_LIT>")<EOL>
Sleep for this many fictitious seconds.

        The world will update accordingly.

        Args:
          seconds: how many seconds to pretend sleep for.

        Raises:
          IOError: for negative delays (matches time.sleep).
          BaseException: at the end of times, to detect infinite loop bugs
        and the like.