from abc import ABC, abstractmethod from typing import Iterable, Set class Graph(ABC): @abstractmethod def get_column_identity(self, key: str) -> str: pass @abstractmethod def get_related_columns(self, key: str) -> Set[str]: pass @abstractmethod def iter_clusters(self) -> Iterable[Set[str]]: pass