Welcome to Functional Pipeline's Documentation!
Documentation: | https://functional-pipeline.readthedocs.io/ |
---|---|
Source Code: | https://gitlab.com/mc706/functional-pipeline |
Issue Tracker: | https://gitlab.com/mc706/functional-pipeline/issues |
PyPI: | https://pypi.org/project/functional-pipeline/ |
Functional languages like Haskell, Elixir, and Elm have pipe functions that allow the results of one function to be passed to the next function.
Using functions from functools
, we can build composition in python, however it is not
nearly as elegant as a well thought out pipeline.
This library is designed to make the creation of a functional pipeline easier in python.
from operators import add, multiply
from functional_pipeline import pipeline, tap
result = pipeline(
10,
[
(add, 1),
(multiply, 2)
]
)
print(result) # 22
This pattern can be extended for easily dealing with lists or generators.
from functional_pipeline import pipeline, String, join
names = [
"John",
"James",
"Bill",
"Tiffany",
"Jamie",
]
result = pipeline(
names,
[
(filter, String.startswith('J')),
(map, lamdba x: x + " Smith")
join(", ")
]
)
print(result) # "John Smith, James Smith, Jamie Smith"
Installation
This project is distributed via pip
. To get started:
pip install functional-pipeline