Pipe#

Pipe module.

Contains pipe function including necessary overloads to get the type-hints right.

Example

>>> from expression import pipe
>>>
>>> v = 1
>>> fn = lambda x: x + 1
>>> gn = lambda x: x * 2
>>>
>>> assert pipe(v, fn, gn) == gn(fn(v))
class PipeMixin#

A pipe mixin class that enabled a class to use pipe fluently.

pipe(__fn1: Callable[[_A], _B]) _B#
pipe(__fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C]) _C
pipe(__fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D]) _D
pipe(__fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E]) _E
pipe(__fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E], __fn5: Callable[[_E], _F]) _F
pipe(__fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E], __fn5: Callable[[_E], _F], __fn6: Callable[[_F], _G]) _G

Pipe the left side object through the given functions.

pipe(__value: _A) _A#
pipe(__value: _A, __fn1: Callable[[_A], _B]) _B
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C]) _C
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D]) _D
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E]) _E
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E], __fn5: Callable[[_E], _F]) _F
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E], __fn5: Callable[[_E], _F], __fn6: Callable[[_F], _G]) _G
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E], __fn5: Callable[[_E], _F], __fn6: Callable[[_F], _G], __fn7: Callable[[_G], _H]) _H
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E], __fn5: Callable[[_E], _F], __fn6: Callable[[_F], _G], __fn7: Callable[[_G], _H], __fn8: Callable[[_H], _T]) _T
pipe(__value: _A, __fn1: Callable[[_A], _B], __fn2: Callable[[_B], _C], __fn3: Callable[[_C], _D], __fn4: Callable[[_D], _E], __fn5: Callable[[_E], _F], __fn6: Callable[[_F], _G], __fn7: Callable[[_G], _H], __fn8: Callable[[_H], _T], __fn9: Callable[[_T], _J]) _J

Functional pipe (|>).

Allows the use of function argument on the left side of the function.

Example

>>> pipe(x, fn) == __fn(x)  # Same as x |> fn
>>> pipe(x, fn, gn) == gn(fn(x))  # Same as x |> fn |> gn
...
starpipe(args: tuple[Any, ...], *fns: Callable[[...], Any])#

Functional pipe_n (||>, ||>, |||>, etc).

Allows the use of function arguments on the left side of the function. Calls the function with tuple arguments unpacked.

Example

>>> starpipe((x, y), __fn) == __fn(x, y)  # Same as (x, y) ||> __fn
>>> starpipe((x, y), __fn, gn) == gn(fn(x))  # Same as (x, y) ||> __fn |> gn
...