Source code for eotransform.transformers.compose

from typing import Iterable, TypeVar

from eotransform.protocol.transformer import Transformer

ComposedT = TypeVar('ComposedT')
ComposedU = TypeVar('ComposedU')


[docs]class Compose(Transformer[ComposedT, ComposedU]): """ Composing a sequence of transformations together >>> class PlusOne(Transformer[int, int]): ... def __call__(self, x): ... return x + 1 ... >>> Compose([PlusOne(), PlusOne()])(0) 2 """ def __init__(self, transformations: Iterable[Transformer]): """ :param transformations: Multiple transformations applied to the input data """ self._transformations = transformations def __call__(self, x: ComposedT) -> ComposedU: for t in self._transformations: x = t(x) return x