1"""
2Alternate namespace for cytoolz such that all functions are curried
3
4Currying provides implicit partial evaluation of all functions
5
6Example:
7
8    Get usually requires two arguments, an index and a collection
9    >>> from cytoolz.curried import get
10    >>> get(0, ('a', 'b'))
11    'a'
12
13    When we use it in higher order functions we often want to pass a partially
14    evaluated form
15    >>> data = [(1, 2), (11, 22), (111, 222)]
16    >>> list(map(lambda seq: get(0, seq), data))
17    [1, 11, 111]
18
19    The curried version allows simple expression of partial evaluation
20    >>> list(map(get(0), data))
21    [1, 11, 111]
22
23See Also:
24    cytoolz.functoolz.curry
25"""
26import cytoolz
27from . import operator
28from cytoolz import (
29    apply,
30    comp,
31    complement,
32    compose,
33    compose_left,
34    concat,
35    concatv,
36    count,
37    curry,
38    diff,
39    first,
40    flip,
41    frequencies,
42    identity,
43    interleave,
44    isdistinct,
45    isiterable,
46    juxt,
47    last,
48    memoize,
49    merge_sorted,
50    peek,
51    pipe,
52    second,
53    thread_first,
54    thread_last,
55)
56from .exceptions import merge, merge_with
57
58accumulate = cytoolz.curry(cytoolz.accumulate)
59assoc = cytoolz.curry(cytoolz.assoc)
60assoc_in = cytoolz.curry(cytoolz.assoc_in)
61cons = cytoolz.curry(cytoolz.cons)
62countby = cytoolz.curry(cytoolz.countby)
63dissoc = cytoolz.curry(cytoolz.dissoc)
64do = cytoolz.curry(cytoolz.do)
65drop = cytoolz.curry(cytoolz.drop)
66excepts = cytoolz.curry(cytoolz.excepts)
67filter = cytoolz.curry(cytoolz.filter)
68get = cytoolz.curry(cytoolz.get)
69get_in = cytoolz.curry(cytoolz.get_in)
70groupby = cytoolz.curry(cytoolz.groupby)
71interpose = cytoolz.curry(cytoolz.interpose)
72itemfilter = cytoolz.curry(cytoolz.itemfilter)
73itemmap = cytoolz.curry(cytoolz.itemmap)
74iterate = cytoolz.curry(cytoolz.iterate)
75join = cytoolz.curry(cytoolz.join)
76keyfilter = cytoolz.curry(cytoolz.keyfilter)
77keymap = cytoolz.curry(cytoolz.keymap)
78map = cytoolz.curry(cytoolz.map)
79mapcat = cytoolz.curry(cytoolz.mapcat)
80nth = cytoolz.curry(cytoolz.nth)
81partial = cytoolz.curry(cytoolz.partial)
82partition = cytoolz.curry(cytoolz.partition)
83partition_all = cytoolz.curry(cytoolz.partition_all)
84partitionby = cytoolz.curry(cytoolz.partitionby)
85peekn = cytoolz.curry(cytoolz.peekn)
86pluck = cytoolz.curry(cytoolz.pluck)
87random_sample = cytoolz.curry(cytoolz.random_sample)
88reduce = cytoolz.curry(cytoolz.reduce)
89reduceby = cytoolz.curry(cytoolz.reduceby)
90remove = cytoolz.curry(cytoolz.remove)
91sliding_window = cytoolz.curry(cytoolz.sliding_window)
92sorted = cytoolz.curry(cytoolz.sorted)
93tail = cytoolz.curry(cytoolz.tail)
94take = cytoolz.curry(cytoolz.take)
95take_nth = cytoolz.curry(cytoolz.take_nth)
96topk = cytoolz.curry(cytoolz.topk)
97unique = cytoolz.curry(cytoolz.unique)
98update_in = cytoolz.curry(cytoolz.update_in)
99valfilter = cytoolz.curry(cytoolz.valfilter)
100valmap = cytoolz.curry(cytoolz.valmap)
101
102del exceptions
103del cytoolz
104