A lightweight extension of functools.partial
Project description
impartial
A lightweight extension of functools.partial that allows modifying positional and keyword arguments in a functional style.
The main idea is that any impartial
function gets a method with_<keyword>(value)
for every keyword argument which returns a new impartial
function with that keyword being modified.
>>> import impartial
>>> @impartial
... def power(x, exponent):
... return x ** exponent
...
>>> power
impartial(<function power at 0x10d54e790>)
>>> square = power.with_exponent(2) # behaves like functools.partial(square, exponent=2)
>>> square
impartial(<function power at 0x10d54e790>, exponent=2)
>>> square(3)
9
Features:
- the
with_<keyword>(value)
methods can be arbitrarily chained impartial
functions are immutable: any "modification" of arguments returns a newimpartial
function- very lightweight (~50 LOC and no dependencies)
- fully compatible with functools.partial (
impartial
is a subclass offunctools.partial
) - can be used as a decorator
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
impartial-0.1.0.tar.gz
(6.7 kB
view hashes)
Built Distribution
impartial-0.1.0-py3-none-any.whl
(10.9 kB
view hashes)
Close
Hashes for impartial-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d6078e2ade289de2440fff61454fd7a0b55b754aa22c3f91699505f3256fdb9 |
|
MD5 | df6a7b6876a9c60bdf19a082864ca588 |
|
BLAKE2b-256 | 0ee189aa944d7e585cb067b38cc498bb8a7064cbc98b2f05e442923aac146009 |