from typing import Protocol class SupportsClose(Protocol): def close(self) -> None: ... def close_safely(resource: SupportsClose) -> None: resource.close() class Connection: def close(self) -> None: print("closed") close_safely(Connection())