from abc import abstractmethod from typing import Generator from .partition import PostgresPartition class PostgresPartitioningStrategy: """Base class for implementing a partitioning strategy for a partitioned table.""" @abstractmethod def to_create( self, ) -> Generator[PostgresPartition, None, None]: """Generates a list of partitions to be created.""" @abstractmethod def to_delete( self, ) -> Generator[PostgresPartition, None, None]: """Generates a list of partitions to be deleted.""" __all__ = ["PostgresPartitioningStrategy"]