本文整理汇总了Python中toolz.curry函数的典型用法代码示例。如果您正苦于以下问题:Python curry函数的具体用法?Python curry怎么用?Python curry使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了curry函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: compute_up
def compute_up(expr, data, **kwargs):
leaf = expr._leaves()[0]
chunk = symbol('chunk', DataShape(*(tuple(map(first, data.chunks)) +
(leaf.dshape.measure,))))
(chunk, chunk_expr), (agg, agg_expr) = split(expr._child, expr,
chunk=chunk)
inds = tuple(range(ndim(leaf)))
dtype = expr.dshape.measure.to_numpy_dtype()
tmp = atop(
curry(compute_it, chunk_expr, [chunk], **kwargs),
inds,
data,
inds,
dtype=dtype,
)
return atop(
compose(
curry(compute_it, agg_expr, [agg], **kwargs),
curry(_concatenate2, axes=expr.axis),
),
tuple(i for i in inds if i not in expr.axis),
tmp,
inds,
dtype=dtype,
)
开发者ID:blaze,项目名称:blaze,代码行数:27,代码来源:dask.py
示例2: test_introspect_curry_py3
def test_introspect_curry_py3():
if not PY3:
return
f = toolz.curry(make_func(''))
assert num_required_args(f) == 0
assert is_arity(0, f)
assert has_varargs(f) is False
assert has_keywords(f) is False
f = toolz.curry(make_func('x'))
assert num_required_args(f) == 0
assert is_arity(0, f) is False
assert is_arity(1, f) is False
assert has_varargs(f) is False
assert has_keywords(f) # A side-effect of being curried
f = toolz.curry(make_func('x, y, z=0'))
assert num_required_args(f) == 0
assert is_arity(0, f) is False
assert is_arity(1, f) is False
assert is_arity(2, f) is False
assert is_arity(3, f) is False
assert has_varargs(f) is False
assert has_keywords(f)
f = toolz.curry(make_func('*args, **kwargs'))
assert num_required_args(f) == 0
assert has_varargs(f)
assert has_keywords(f)
开发者ID:marcosptf,项目名称:fedora,代码行数:29,代码来源:test_inspect_args.py
示例3: fold
def fold(self, binop, combine=None, initial=no_default, split_every=None):
""" Parallelizable reduction
Fold is like the builtin function ``reduce`` except that it works in
parallel. Fold takes two binary operator functions, one to reduce each
partition of our dataset and another to combine results between
partitions
1. ``binop``: Binary operator to reduce within each partition
2. ``combine``: Binary operator to combine results from binop
Sequentially this would look like the following:
>>> intermediates = [reduce(binop, part) for part in partitions] # doctest: +SKIP
>>> final = reduce(combine, intermediates) # doctest: +SKIP
If only one function is given then it is used for both functions
``binop`` and ``combine`` as in the following example to compute the
sum:
>>> def add(x, y):
... return x + y
>>> b = from_sequence(range(5))
>>> b.fold(add).compute() # doctest: +SKIP
10
In full form we provide both binary operators as well as their default
arguments
>>> b.fold(binop=add, combine=add, initial=0).compute() # doctest: +SKIP
10
More complex binary operators are also doable
>>> def add_to_set(acc, x):
... ''' Add new element x to set acc '''
... return acc | set([x])
>>> b.fold(add_to_set, set.union, initial=set()).compute() # doctest: +SKIP
{1, 2, 3, 4, 5}
See Also
--------
Bag.foldby
"""
token = tokenize(self, binop, combine, initial)
combine = combine or binop
a = 'foldbinop-{0}-{1}'.format(funcname(binop), token)
b = 'foldcombine-{0}-{1}'.format(funcname(combine), token)
initial = quote(initial)
if initial is not no_default:
return self.reduction(curry(_reduce, binop, initial=initial),
curry(_reduce, combine),
split_every=split_every)
else:
from toolz.curried import reduce
return self.reduction(reduce(binop), reduce(combine),
split_every=split_every)
开发者ID:rla3rd,项目名称:dask,代码行数:59,代码来源:core.py
示例4: test_normalize_function
def test_normalize_function():
def f1(a, b, c=1):
pass
def f2(a, b=1, c=2):
pass
def f3(a):
pass
assert normalize_function(f2)
f = lambda a: a
assert normalize_function(f)
assert (normalize_function(partial(f2, b=2)) ==
normalize_function(partial(f2, b=2)))
assert (normalize_function(partial(f2, b=2)) !=
normalize_function(partial(f2, b=3)))
assert (normalize_function(partial(f1, b=2)) !=
normalize_function(partial(f2, b=2)))
assert (normalize_function(compose(f2, f3)) ==
normalize_function(compose(f2, f3)))
assert (normalize_function(compose(f2, f3)) !=
normalize_function(compose(f2, f1)))
assert normalize_function(curry(f2)) == normalize_function(curry(f2))
assert normalize_function(curry(f2)) != normalize_function(curry(f1))
assert (normalize_function(curry(f2, b=1)) ==
normalize_function(curry(f2, b=1)))
assert (normalize_function(curry(f2, b=1)) !=
normalize_function(curry(f2, b=2)))
开发者ID:datastark,项目名称:dask,代码行数:34,代码来源:test_base.py
示例5: test_EqualityHashKey_callable_key
def test_EqualityHashKey_callable_key():
# Common simple hash key functions.
EqualityHashLen = curry(EqualityHashKey, len)
EqualityHashType = curry(EqualityHashKey, type)
EqualityHashId = curry(EqualityHashKey, id)
EqualityHashFirst = curry(EqualityHashKey, first)
data1 = [[], [1], (), (1,), {}, {1: 2}]
data2 = [[1, 2], (1, 2), (1, 3), [1, 3], [2, 1], {1: 2}]
assert list(unique(data1*3, key=EqualityHashLen)) == data1
assert list(unique(data2*3, key=EqualityHashLen)) == data2
assert list(unique(data1*3, key=EqualityHashType)) == data1
assert list(unique(data2*3, key=EqualityHashType)) == data2
assert list(unique(data1*3, key=EqualityHashId)) == data1
assert list(unique(data2*3, key=EqualityHashId)) == data2
assert list(unique(data2*3, key=EqualityHashFirst)) == data2
开发者ID:AndrewWalker,项目名称:toolz,代码行数:15,代码来源:test_core.py
示例6: compute_down
def compute_down(expr, data, chunksize=2**20, map=map, **kwargs):
leaf = expr._leaves()[0]
# If the bottom expression is a projection or field then want to do
# compute_up first
children = set(e for e in expr._traverse()
if isinstance(e, Expr)
and any(i is expr._leaves()[0] for i in e._inputs))
if len(children) == 1 and isinstance(first(children), (Field, Projection)):
raise NotImplementedError()
chunk = symbol('chunk', chunksize * leaf.schema)
(chunk, chunk_expr), (agg, agg_expr) = split(leaf, expr, chunk=chunk)
data_parts = partitions(data, chunksize=(chunksize,))
parts = list(map(curry(compute_chunk, data, chunk, chunk_expr),
data_parts))
if isinstance(parts[0], np.ndarray):
intermediate = np.concatenate(parts)
elif isinstance(parts[0], pd.DataFrame):
intermediate = pd.concat(parts)
elif isinstance(parts[0], Iterable):
intermediate = list(concat(parts))
else:
raise TypeError(
"Don't know how to concatenate objects of type %s" % type(parts[0]))
return compute(agg_expr, {agg: intermediate})
开发者ID:leolujuyi,项目名称:blaze,代码行数:31,代码来源:bcolz.py
示例7: map
def map(self, func):
name = next(names)
if takes_multiple_arguments(func):
func = curry(apply, func)
dsk = dict(((name, i), (list, (map, func, (self.name, i))))
for i in range(self.npartitions))
return Bag(merge(self.dask, dsk), name, self.npartitions)
开发者ID:kastnerkyle,项目名称:dask,代码行数:7,代码来源:core.py
示例8: wrap_func_size_as_kwarg
def wrap_func_size_as_kwarg(func, *args, **kwargs):
"""
Transform np.random function into blocked version
"""
if 'shape' in kwargs and 'size' not in kwargs:
kwargs['size'] = kwargs.pop('shape')
if 'size' not in kwargs:
args, size = args[:-1], args[-1]
else:
size = kwargs.pop('size')
if not isinstance(size, (tuple, list)):
size = (size,)
chunks = kwargs.pop('chunks', None)
chunks = normalize_chunks(chunks, size)
name = kwargs.pop('name', None)
dtype = kwargs.pop('dtype', None)
if dtype is None:
kw = kwargs.copy(); kw['size'] = (0,)
dtype = func(*args, **kw).dtype
name = name or next(names)
keys = product([name], *[range(len(bd)) for bd in chunks])
sizes = product(*chunks)
if not kwargs:
vals = ((func,) + args + (size,) for size in sizes)
else:
vals = ((curry(func, *args, size=size, **kwargs),) for size in sizes)
dsk = dict(zip(keys, vals))
return Array(dsk, name, chunks, dtype=dtype)
开发者ID:OspreyX,项目名称:dask,代码行数:34,代码来源:wrap.py
示例9: wrap_func_shape_as_first_arg
def wrap_func_shape_as_first_arg(func, *args, **kwargs):
"""
Transform np.random function into blocked version
"""
if 'shape' not in kwargs:
shape, args = args[0], args[1:]
else:
shape = kwargs.pop('shape')
if not isinstance(shape, (tuple, list)):
shape = (shape,)
chunks = kwargs.pop('chunks', None)
chunks = normalize_chunks(chunks, shape)
name = kwargs.pop('name', None)
dtype = kwargs.pop('dtype', None)
if dtype is None:
dtype = func(shape, *args, **kwargs).dtype
name = name or next(names)
keys = product([name], *[range(len(bd)) for bd in chunks])
shapes = product(*chunks)
func = curry(func, dtype=dtype, **kwargs)
vals = ((func,) + (s,) + args for s in shapes)
dsk = dict(zip(keys, vals))
return Array(dsk, name, chunks, dtype=dtype)
开发者ID:OspreyX,项目名称:dask,代码行数:29,代码来源:wrap.py
示例10: wrap_func_size_as_kwarg
def wrap_func_size_as_kwarg(func, *args, **kwargs):
"""
Transform np.random function into blocked version
"""
if 'shape' in kwargs and 'size' not in kwargs:
kwargs['size'] = kwargs.pop('shape')
if 'size' not in kwargs:
args, size = args[:-1], args[-1]
else:
size = kwargs.pop('size')
if not isinstance(size, (tuple, list)):
size = (size,)
blockshape = kwargs.pop('blockshape', None)
blockdims = kwargs.pop('blockdims', None)
name = kwargs.pop('name', None)
if not blockdims and blockshape:
blockdims = blockdims_from_blockshape(size, blockshape)
name = name or next(names)
keys = product([name], *[range(len(bd)) for bd in blockdims])
sizes = product(*blockdims)
if not kwargs:
vals = ((func,) + args + (size,) for size in sizes)
else:
vals = ((curry(func, *args, size=size, **kwargs),) for size in sizes)
dsk = dict(zip(keys, vals))
return Array(dsk, name, shape=size, blockdims=blockdims)
开发者ID:kastnerkyle,项目名称:dask,代码行数:31,代码来源:wrap.py
示例11: get
def get(self):
# type: () -> PluginType
"""Return the currently active plugin."""
if self._options:
return curry(self._active, **self._options)
else:
return self._active
开发者ID:mcleonard,项目名称:tufty,代码行数:7,代码来源:plugin_registry.py
示例12: test_EqualityHashKey_default_key
def test_EqualityHashKey_default_key():
EqualityHashDefault = curry(EqualityHashKey, None)
L1 = [1]
L2 = [2]
data1 = [L1, L1, L2, [], [], [1], [2], {}, ()]
set1 = set(map(EqualityHashDefault, data1))
set2 = set(map(EqualityHashDefault, [[], [1], [2], {}, ()]))
assert set1 == set2
assert len(set1) == 5
# Test that ``EqualityHashDefault(item)`` is distinct from ``item``
T0 = ()
T1 = (1,)
data2 = list(map(EqualityHashDefault, [T0, T0, T1, T1, (), (1,)]))
data2.extend([T0, T1, (), (1,)])
set3 = set(data2)
assert set3 == set([(), (1,), EqualityHashDefault(()),
EqualityHashDefault((1,))])
assert len(set3) == 4
assert EqualityHashDefault(()) in set3
assert EqualityHashDefault((1,)) in set3
# Miscellaneous
E1 = EqualityHashDefault(L1)
E2 = EqualityHashDefault(L2)
assert str(E1) == '=[1]='
assert repr(E1) == '=[1]='
assert E1 != E2
assert not (E1 == E2)
assert E1 == EqualityHashDefault(L1)
assert not (E1 != EqualityHashDefault(L1))
assert E1 != L1
assert not (E1 == L1)
开发者ID:AndrewWalker,项目名称:toolz,代码行数:33,代码来源:test_core.py
示例13: load_all_users
def load_all_users():
''' Returns a pd.DataFrame with the information of all the users'''
map = tlz.curry(map)
dataset = tlz.pipe(users, map(parse_exp03_filename), map(user_pipe),
accumulate_users)
dataset.insert(0, 'user', sorted(users * 3))
return dataset
开发者ID:VGonPa,项目名称:datasets-poses2012,代码行数:7,代码来源:user_data_loader.py
示例14: reduction
def reduction(x, chunk, aggregate, axis=None, keepdims=None, dtype=None):
""" General version of reductions
>>> reduction(my_array, np.sum, np.sum, axis=0, keepdims=False) # doctest: +SKIP
"""
if axis is None:
axis = tuple(range(x.ndim))
if isinstance(axis, int):
axis = (axis,)
chunk2 = partial(chunk, axis=axis, keepdims=True)
aggregate2 = partial(aggregate, axis=axis, keepdims=keepdims)
inds = tuple(range(x.ndim))
tmp = atop(chunk2, next(names), inds, x, inds)
inds2 = tuple(i for i in inds if i not in axis)
result = atop(compose(aggregate2, curry(_concatenate2, axes=axis)),
next(names), inds2, tmp, inds, dtype=dtype)
if keepdims:
dsk = result.dask.copy()
for k in flatten(result._keys()):
k2 = (k[0],) + insert_many(k[1:], axis, 0)
dsk[k2] = dsk.pop(k)
blockdims = insert_many(result.blockdims, axis, [1])
return Array(dsk, result.name, blockdims=blockdims, dtype=dtype)
else:
return result
开发者ID:kastnerkyle,项目名称:dask,代码行数:30,代码来源:reductions.py
示例15: test_check_curry_1
def test_check_curry_1():
# Ensure the decorator works when curried
_func_sig = check(REQUIRE, data=[str, str])(func_sig)
fc = toolz.curry(_func_sig,
**{REQUIRE: {'data': ['nir', 'red']},
OUTPUT: {'data': ['ndvi']}})
fc({})
开发者ID:valpasq,项目名称:yatsm,代码行数:7,代码来源:test__task_validation.py
示例16: pickle_apply_async
def pickle_apply_async(apply_async, func, args=(), kwds={},
func_loads=None, func_dumps=None):
dumps = func_dumps or _globals.get('func_dumps') or _dumps
sfunc = dumps(func)
sargs = dumps(args)
skwds = dumps(kwds)
return apply_async(curry(apply_func, loads=func_loads),
args=[sfunc, sargs, skwds])
开发者ID:datastark,项目名称:dask,代码行数:8,代码来源:multiprocessing.py
示例17: elemwise_array
def elemwise_array(expr, *data, **kwargs):
leaves = expr._inputs
expr_inds = tuple(range(ndim(expr)))[::-1]
return atop(
curry(compute_it, expr, leaves, **kwargs),
expr_inds,
*concat((dat, tuple(range(ndim(dat))[::-1])) for dat in data)
)
开发者ID:Webs234,项目名称:blaze,代码行数:8,代码来源:dask.py
示例18: rowterator
def rowterator(sel, chunksize=chunksize):
with sel.bind.connect() as conn:
result = conn.execute(sel)
yield result.keys()
for rows in iter_except(curry(result.fetchmany, size=chunksize),
sa.exc.ResourceClosedError):
yield rows
开发者ID:Will-So,项目名称:odo,代码行数:8,代码来源:sql.py
示例19: test_EqualityHashKey_index_key
def test_EqualityHashKey_index_key():
d1 = {'firstname': 'Alice', 'age': 21, 'data': {}}
d2 = {'firstname': 'Alice', 'age': 34, 'data': {}}
d3a = {'firstname': 'Bob', 'age': 56, 'data': {}}
d3b = {'firstname': 'Bob', 'age': 56, 'data': {}}
EqualityHashFirstname = curry(EqualityHashKey, 'firstname')
assert list(unique(3*[d1, d2, d3a, d3b],
key=EqualityHashFirstname)) == [d1, d2, d3a]
EqualityHashFirstnameAge = curry(EqualityHashKey, ['firstname', 'age'])
assert list(unique(3*[d1, d2, d3a, d3b],
key=EqualityHashFirstnameAge)) == [d1, d2, d3a]
list1 = [0] * 10
list2 = [0] * 100
list3a = [1] * 10
list3b = [1] * 10
EqualityHash0 = curry(EqualityHashKey, 0)
assert list(unique(3*[list1, list2, list3a, list3b],
key=EqualityHash0)) == [list1, list2, list3a]
开发者ID:AndrewWalker,项目名称:toolz,代码行数:18,代码来源:test_core.py
示例20: elemwise_array
def elemwise_array(expr, *data, **kwargs):
leaves = expr._inputs
expr_inds = tuple(range(ndim(expr)))[::-1]
return atop(
curry(compute_it, expr, leaves, **kwargs),
expr_inds,
*concat((dat, tuple(range(ndim(dat))[::-1])) for dat in data),
dtype=expr.dshape.measure.to_numpy_dtype()
)
开发者ID:blaze,项目名称:blaze,代码行数:9,代码来源:dask.py
注:本文中的toolz.curry函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论