Hot function generators
Project description
library with some helper functions that make more functions for you.
check it out
make a plucker with pluck:
from fnny import pluck as p
from collections import namedtuple
G = namedtuple("G", ["a"])
guys = [G(i) for i in range(10)]
expected = sum(map(lambda x: x.a, guys))
actual = sum(map(p.a, guys))
assert expected == actual
call a method with method:
from fnny import method as m from test.test_it import _Argless() no_args = [_Argless() for a in range(10)] expected = list(map(lambda x: x.wow(), no_args)) actual = list(map(m.wow, no_args)) assert expected == actual
use a partially applied method with partial:
from fnny import partial as pa from test.test_it import _OneArg() has_args = [_OneArg() for a in range(10)] expected = list(map(lambda x: x.add(1), has_args)) actual = list(map(pa.add(1), has_args)) assert expected == actual
partial even supports kwargs:
from test.test_it import _OneKwarg() has_args = [_OneKwarg() for a in range(10)] expected = list(map(lambda x: x.derp(something="heyy"), has_args)) actual = list(map(pa.derp(something="heyy"), has_args)) assert expected == actual
but actually, python already has a way more idiomatic way to do all of the above:
guys = [G(i) for i in range(10)] assert sum(map(lambda x: x.a, guys)) == sum(g.a for g in guys) no_args = [_Argless() for a in range(10)] expected = list(map(lambda x: x.wow(), no_args)) actual = [argless.wow() for argless in no_args] assert expected == actual has_args = [_OneArg() for a in range(10)] expected = list(map(lambda x: x.add(1), has_args)) actual = [one.add(1) for one in has_args] assert expected == actual has_kwargs = [_OneKwarg() for a in range(10)] expected = list(map(lambda x: x.derp(something="heyy"), has_kwargs)) actual = [kw.derp(something="heyy") for kw in has_kwargs] assert expected == actual
But maybe there’s still a place for a discriptor-based lib for function generation.
I’ll add examples as soon as I think of them, I guess.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fnny-0.0.2.tar.gz
(2.5 kB
view details)
File details
Details for the file fnny-0.0.2.tar.gz.
File metadata
- Download URL: fnny-0.0.2.tar.gz
- Upload date:
- Size: 2.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2d83526439aa49f57467a0d6b0d1ff519f37225546fbbcbf06ae8e2327c8030
|
|
| MD5 |
48c34627ddef95c3d044cd359c8b6997
|
|
| BLAKE2b-256 |
b46c6934880cbee44f2c51ad316fac20f9a4aff751d48163b101723b42041f01
|