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 |