Source code for eotransform.protocol.transformer

from abc import abstractmethod
from typing import TypeVar, Generic

TransformerT = TypeVar('TransformerT')
TransformerU = TypeVar('TransformerU')


[docs]class Transformer(Generic[TransformerT, TransformerU]): @abstractmethod def __call__(self, x: TransformerT) -> TransformerU: ...
PredicatedTransformerKey = TypeVar('PredicatedTransformerKey') PredicatedTransformerIn = TypeVar('PredicatedTransformerIn') PredicatedTransformerOut = TypeVar('PredicatedTransformerOut')
[docs]class PredicatedTransformer(Generic[PredicatedTransformerKey, PredicatedTransformerIn, PredicatedTransformerOut]): @abstractmethod def is_applicable(self, k: PredicatedTransformerKey) -> bool: ... @abstractmethod def apply(self, k: PredicatedTransformerKey, x: PredicatedTransformerIn) -> PredicatedTransformerOut: ...