from abc import ABC, abstractmethod from typing import Any from ImageContainer import ImageContainer class ImageManipulation(ABC): """Abstract base class for image manipulation operations.""" @abstractmethod def manipulateImage(self, image: ImageContainer, parameters: Any) -> ImageContainer: """ Manipulate the given image using the provided parameters. Args: image: The image to manipulate parameters: Parameters for the manipulation Returns: The manipulated image """ pass @abstractmethod def getParameters(self) -> list[str]: """ Get the list of parameters required for this manipulation. Returns: List of parameter names """ pass @abstractmethod def getManipulationName(self) -> str: """ Get the name of this manipulation operation. Returns: The name of the manipulation """ pass