Pipefun
A simple, lightweighted, zero dependency python piping package.
Install
pip install pipefun
Usage
from pipefun import Pipable, out
from pipefun.Functionals import square
add_to = lambda a: lambda b: a + b # a curried **add** function
output = ~(x >> add_to(3) >> square)
print(output) # 36
The >> operator pushes a Pipable into a function and return a new Pipable with the return value of the function.
The ~ operator pulls the value in a Pipable
Note that Pipable is immutable, so the returned Pipable doesn't equal the input and is a new one
x_out = x >> add_to(3) >> square
print(x_out == x) # False
print(~x_out == ~x) # False
Pipe merging
In daily use case, it's very possible that functions take more than 1 arg. To handle this, Pipable can store more than 1 values and plug them into a function when needed.
We use the | operator to merge Pipables. In Python, it has lower priority than >>.
x = Pipable(3)
y = Pipable(5)
out = x >> square # Pipable(9)
# merge two Pipables together
out = out | y # Pipable(9, 5)
# plug the pipes into a two args function
out = out >> add # Pipable(14)
print(~out) # 14
Alternatively, in one line.
out = ( x >> square | y) >> add # Pipable(14)
print(~out) # 14
Let's discard the ~ operator
There is a special function in Pipable package that do nothing. If a Pipable is piped into it, same thing will happen with what the ~ operator do.
from pipefun import Pipable, out
x = Pipable(2)
y = x >> square >> out
print(y) # 4
Release files for pipefun 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pipefun-0.0.7.tar.gz | 3.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pipefun-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.3 kB
Release files / pipefun-0.0.7.tar.gz
| Download URL | pipefun-0.0.7.tar.gz |
|---|---|
| Size | 3.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5bc8a763d3b1b139a10ba89d3b09303ef3c2f936bf18dfadd9a3459291d35ed0
|
|
BLAKE2b-256 checksum How to use checksums |
e6ac0eb150254ec78355d060ae5fe4e705cee04b32bd24140ae0203e4030979f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0
|
Release files / pipefun-0.0.7-py3-none-any.whl
| Download URL | pipefun-0.0.7-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4e88e2209ab37d3fd38613e185eb55a2b9b3886da1bc5a41a499697b9d5ae3b8
|
|
BLAKE2b-256 checksum How to use checksums |
3aba8761df36f7ddf05a132e5572b46eb65710ea1db713404f7d2ce629b3fc92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0
|