Pypartial is a simple Python library that allows the use of partial function application notation in native Python. It is extremely useful when trying to write concise and clear code, and extends the ease offered by Python's functional programming features.
Example:
import pypartial #use <_ notation to partial apply functions
binary = int<_(base=2) #you can pass keyword arguemnts
print(binary('101010100101'))
import random
dice=random.randint<_(1, 6) #you can also pass non-keywords
print(dice())
print(dice())
up_to_ten = range<_(_, 11) #you can leave args blank with '_'
print(list(up_to_ten(5)))
import operator
double = operator.mul<_(2)
print(double(7))
class Foo(object):
def bar(self, a, b):
print([a,b])
def egg(self, a, b, c=9):
print([a,b,c])
foo=Foo()
bar7 = foo.bar<_(_, b=7) #works with methods too
bar7(2)
egg1 = foo.egg<_(_, 5)
egg2 = egg1<_(c=9) #you can partially apply multiple times
egg2(6)
print(egg2) #nice string representation