from abc import abstractmethod
from datetime import datetime
from typing import Iterator


class SleepDateIterator(Iterator[datetime]):
    @abstractmethod
    def __next__(self):
        raise NotImplementedError()

    @abstractmethod
    def sleep_for(self, seconds: float):
        raise NotImplementedError()
