Skip to main content

A lightweight package that contains pipe operators and functional tools

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipefun-0.0.7.tar.gz (3.0 kB view hashes)

Uploaded Source

Built Distribution

pipefun-0.0.7-py3-none-any.whl (5.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page