ja_sentence_segmenter.common.pipeline

simple pipeline generator.

 1"""simple pipeline generator."""
 2import functools
 3from typing import Callable, Generator
 4
 5
 6def make_pipeline(*funcs: Callable[..., Generator[str, None, None]]) -> Callable[..., Generator[str, None, None]]:
 7    """Make pipeline of generators.
 8
 9    Parameters
10    ----------
11    *funcs : Callable[..., Generator[str, None, None]]
12        generator you want to add pipeline.
13
14    Returns
15    -------
16    Callable[..., Generator[str, None, None]]
17        pipeline of generators.
18    """
19
20    def composite(
21        func1: Callable[..., Generator[str, None, None]], func2: Callable[..., Generator[str, None, None]]
22    ) -> Callable[..., Generator[str, None, None]]:
23        return lambda x: func2(func1(x))
24
25    return functools.reduce(composite, funcs)
def make_pipeline( *funcs: Callable[..., Generator[str, NoneType, NoneType]]) -> Callable[..., Generator[str, NoneType, NoneType]]:
 7def make_pipeline(*funcs: Callable[..., Generator[str, None, None]]) -> Callable[..., Generator[str, None, None]]:
 8    """Make pipeline of generators.
 9
10    Parameters
11    ----------
12    *funcs : Callable[..., Generator[str, None, None]]
13        generator you want to add pipeline.
14
15    Returns
16    -------
17    Callable[..., Generator[str, None, None]]
18        pipeline of generators.
19    """
20
21    def composite(
22        func1: Callable[..., Generator[str, None, None]], func2: Callable[..., Generator[str, None, None]]
23    ) -> Callable[..., Generator[str, None, None]]:
24        return lambda x: func2(func1(x))
25
26    return functools.reduce(composite, funcs)

Make pipeline of generators.

Parameters
  • *funcs (Callable[..., Generator[str, None, None]]): generator you want to add pipeline.
Returns
  • Callable[..., Generator[str, None, None]]: pipeline of generators.