Skip to main content

Hot function generators

Project description

https://travis-ci.org/cpdean/fnny.svg?branch=master

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


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)

Uploaded Source

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

Hashes for fnny-0.0.2.tar.gz
Algorithm Hash digest
SHA256 d2d83526439aa49f57467a0d6b0d1ff519f37225546fbbcbf06ae8e2327c8030
MD5 48c34627ddef95c3d044cd359c8b6997
BLAKE2b-256 b46c6934880cbee44f2c51ad316fac20f9a4aff751d48163b101723b42041f01

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page