Source code for eotransform.transformers.map

from typing import Iterator, Sequence, TypeVar

from eotransform.protocol.transformer import Transformer

MapInT = TypeVar('MapInT')
MapOutT = TypeVar('MapOutT')


[docs]class Map(Transformer[Sequence[MapInT], Iterator[MapOutT]]): """ Applying a transformation to a sequence of input data, i.e.: >>> class PlusOne(Transformer[int, int]): ... def __call__(self, x): ... return x + 1 ... >>> list(Map(PlusOne())([0, 1, 2])) [1, 2, 3] """ def __init__(self, map_transformer: Transformer[MapInT, MapOutT]): """ :param map_transformer: Transformer applied to each element in the sequence """ self._map_transformer = map_transformer def __call__(self, x: Sequence[MapInT]) -> Iterator[MapOutT]: return map(self._map_transformer, x)