flexibility when you need it
Project description
ambiguous
flexibility when you need it
Install
pip install ambiguous
Usage
decorator: allow decorators to accept arguments
from ambiguous import decorator
@decorator
def power(fn, exponent=2):
'''take function results and raise to an exponent'''
return lambda x: fn(x) ** exponent
@power
def squared(x): return x
squared(2)
> 4
@power(exponent=3)
def cubed(x): return x
cubed(2)
> 8
thing_or_things: combine gets and multigets
from ambiguous import thing_or_things
@thing_or_things
def itself(args):
return { x : x for x in args }
itself(1)
> 1
itself([1, 2])
> { 1 : 1, 2 : 2 }
# specify which argument
@thing_or_things('args')
def prefix(prefix, args):
return { x : "%s_%s" % (prefix, x) for x in args }
prefix('abc', [1, 2])
> { 1 : 'abc_1', 2 : 'abc_2' }
optional parentheses (warning: still experimental)
import ambiguous
@ambiguous
def foo():
return 'foo'
# the usual
foo()
> 'foo'
# ?!?
foo
> 'foo'
foo + 'abc'
> 'fooabc'
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
ambiguous-0.5.0.tar.gz
(10.9 kB
view hashes)
Built Distribution
Close
Hashes for ambiguous-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4ea535362e95f0032521dc33a89d549d24208cf88988ad06d5de8f3fdc263e4 |
|
MD5 | acbf15ccccf5673df2dc35d5b56628ca |
|
BLAKE2b-256 | 417f99905cc12a3e8bd0a5172acfa1708a789b2c6fb57403f1f98cf1c15663d7 |