from abc import abstractmethod, ABC class Subject(ABC): """ The Subject interface declares common operations for both RealSubject and the Proxy. As long as the client works with RealSubject using this interface, you'll be able to pass it a proxy instead of a real subject. """ @abstractmethod def request(self) -> None: pass