A lightweight extension of functools.partial
Project description
impartial
impartial is a lightweight extension of functools.partial that allows modifying positional and keyword arguments in a functional style.
The main idea is that any function wrapped with impartial gets a method with_<keyword>(value) for every keyword argument of that function.
Each with_<keyword>(value) method returns a new impartial function with that keyword being modified.
>>> from impartial 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 impartialfunctions are immutable: any "modification" of arguments returns a newimpartialfunction- very lightweight (~50 LOC and no dependencies)
- fully compatible with functools.partial (
impartialis a subclass offunctools.partial) - can be used as a decorator
To install this package, run:
pip install impartial
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file impartial-0.2.0.tar.gz.
File metadata
- Download URL: impartial-0.2.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
632bc680f4b9742ea37325392299a4f3022db6572e576166adae530d62512f62
|
|
| MD5 |
f5d4e5980ba525f698c015c2ddfba6c7
|
|
| BLAKE2b-256 |
79c615c938240cbf83cef52748477fc8f21c9a95eea1bcbcf439fc5415e1b53f
|
File details
Details for the file impartial-0.2.0-py3-none-any.whl.
File metadata
- Download URL: impartial-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95ec9e35c39384d13e09dd174299a4d4412124469ac9fdca94babab926d810d3
|
|
| MD5 |
3eb80bc0633d3e1c3528b78a982c1bef
|
|
| BLAKE2b-256 |
0de254170daeb833c63b0fccc8288adc9420e2d9b304ae73d537bca1e5b5b040
|