No project description provided
Make Python code cooler. 100% coverage. Use and enjoy this code!
pip install cool
Or fetch from github
pip install git+https://firstname.lastname@example.org
Note: as fast as you didn't use F!
Use pipeline to pass data as a positional parameter to the next function.
from cool import F assert range(10) | F(filter, lambda x: x % 2) | F(sum) == 25
Or you need to pass multiple parameters through the pipeline. Note that
FF can only accept one parameter, and it must be an iterable object.
from cool import FF assert (1, 2) | FF(lambda x, y: x + y) == 3
You can use
... as a placeholder. This is useful when you need to pass non-continuous parameters to create a partial function.
from functools import reduce from cool import F assert range(10) | F(reduce, lambda x, y: x + y) == 45 assert range(10) | F(reduce, lambda x, y: x + y, ..., 10) == 55 square = F(pow, ..., 2) assert range(10) | F(map, square) | F(sum) == 285
range(10) | F(reduce, lambda x, y: x + y, ..., 10) is equivalent to
reduce(lambda x, y: x + y, range(10), 10).
Just like the redirection symbol in
Shell, you can redirect the output to a specified file or
TextIO object through
R inherits from
from pathlib import PurePath from cool import R # Redirect output to specified filepath R(print, "hello") > PurePath("your-filepath") # Append mode R(print, "world") >> PurePath("your-filepath")
Redirect to opened file or other streams.
from io import StringIO from cool import R with open("filepath", "a+", encoding="utf8") as file: R(print, "hello") >> file out = StringIO("") R(print, "hello") > out out.seek(0, 0) assert out.read() == "hello\n"
Maybe you also want to block the output, just like
from cool import R R(print, "hello") > None # Or R(print, "hello") >> None
Note that after the calculation is over,
R will faithfully return the return value of your function. Try the following example.
from pathlib import PurePath from cool import F, R def func(num): return range(num) | F(map, lambda x: print(x) or x) | F(sum) print(R(func, 10) > PurePath("filepath"))
Maybe you don't want to use
from cool import F in every file of the entire project, you can use the following code to set it as a global function, just like
import cool cool.set_global(cool.F, cool.FF)
Maybe you also want to expose
functools.reduce to the world, just like
import functools import cool cool.set_global(cool.F, cool.FF, functools.reduce)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.