forked from Suor/funcy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
236 lines (209 loc) · 7.47 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
1.5
- added rcompose()
- added i?tree_leaves()
- added pluck_attr() (Marcus McCurdy)
- added set_in() and update_in()
- added get_in() (Swaroop)
- fixed bug with flatten() follow not passed deep
1.4
- added rpartial() and rcurry()
- support arguments in print_(calls|exits)
- made print_(errors|durations) work both with and without arguments
- made (log|print)_errors() work as context manager
- made (log|print)_durations() work as context managers
- pass func docstring to @cached_property
1.3
- added with_next()
- added timeout argument to @retry() (rocco66)
- support kwargs in @memoize'd functions (Lukasz Dobrzanski)
- do not cut result repr in @(log|print)_calls() and @(log|print)_exits
1.2
- support pypy3
- added @contextmanager, ContextDecorator
- added @(log|print)_(enters|exits)
- print stack trace in @(log|print)_(calls|errors)
- added label argument for tap()
- better formatted call signatures in debug utilities
- added itervalues()
- exposed empty(), iteritems()
- exposed @wraps and unwrap()
- slightly optimized last() and nth()
- fixed signatures of functions wrapped with @wrap_(mapper|selector)
1.1
- added merge_with() and join_with()
- added @once, @once_per_args and @once_per()
- added suppress() context manager
- added is_set()
- added name argument to @monkey
- decorators created with @decorator now set __original__ attribute
- optimized @decorator
- optimized nth() and last()
- lzip() is now exported by default from/for py3
Backward incompatible fixes:
- made pluck(), where() and invoke() return interators in python 3
- __wrapped__ attribute added by decorators now correctly refers to immediate wrapped not innermost
1.0.0
- @silent, @ignore() and decorators created with @decorator will now work
with method_descriptors and other non-wrappable callables.
- chained decorators now have access to arguments by name
- exposed cut_prefix() and cut_suffix()
- optimized re_tester()
- fixed @retry in python 3
Backward incompatible changes:
- function made from dict will now use __getitem__ instead of get.
Means possible KeyErrors for dicts and factory function calls for defaultdict.
Use `a_dict.get` instead of just `a_dict` for old behaviour.
- reverted imap(None, seq) to default strange behaviour.
0.10.1
- optimized @decorator
0.10
- added is_tuple()
- raiser() can now be called without arguments, defaults to Exception
- support del @cached_property
- optimized and cleaned up @cached_property
- optimized i?split(), split_at() and split_by()
- optimized @memoize
- optimized zipdict()
Backward incompatible changes:
- split(), split_at() and split_by() now return a tuple of two lists instead of list of them
- @cached_property no longer uses _name to store cached value
- partial() is now an alias to functools.partial, use func_partial() for old behaviour
0.9
- added experimental python 3 support
- added python 2.6 support
- added autocurry()
- published idistinct(), isplit(), isplit_at(), isplit_by()
- some optimizations
0.8
- added raiser()
- added idistinct()
- added key argument to i?distinct()
- added key argument to is_distinct()
- added group_by_keys()
Backward incompatible changes:
- walk_values() now updates defaultdict item factory to composition of mapper and old one
- izip_dicts() now packs values in tuple separate from key
- @decorator raises AttributeError not NameError when non-existent argument is accessed by name
0.7
- added i?flatten()
- added pairwise()
- added nth()
- added is_seqcont()
- greatly optimized @decorator
- added @log_durations and @print_durations
- @logs_calls and @print_calls now provide call signature on return
- @logs_calls and @print_calls now log errors, optional for @log_calls
- better call signature stringification for @(log|print)_(calls|errors)
- fixed i?partition() and i?chunks() with xrange()
Backward incompatible changes:
- is_iter() now returns False given xrange() object
0.6.0
- added izip_values() and izip_dicts()
- added last() and butlast()
- added isnone() and notnone() primitives
- added extended fn semantics to group_by(), count_by() and i?partition_by()
- added fill argument to with_prev()
- optimized ilen()
0.5.6
- fixed installation issue
0.5.5
- added count_by()
- added i?partition_by()
0.5.4
- added @post_processing() flow utility
- partition() and chunks() can handle iterators now
- added ipartition() and ichunks()
0.5.3
- fixed decorators produced with @decorator over non-functions
- optimized @ignore and @silent
0.5.2
- added i?without()
- more and better docs
Backward incompatible changes:
- compact() now strips all falsy values not just None
0.5.1
- added ints and slices to extended fn semantics
- added extended semantics to *_fn(), compose(), complement and i?juxt()
- can now @monkey() patch modules
- cached properties can now be set
0.5.0
- added type testing utilities
- added @monkey
- added cut_prefix() and cut_suffix() privately
- added @silent_lookuper
- exported @retry directly from from funcy
- better support for arg introspection in @decorator
Backward incompatible changes:
- removed defaults for log_calls() and log_errors()
- @make_lookuper decorated functions now will raise LookupError on memory miss,
use @silent_lookuper for old behavior
- call object in @decorator access to func, args and kwargs
is now done through _func, _args and _kwargs
0.4.1
- decorators created with @decorator are now able to pass additional args and kwargs
- @collecting, @joining() and @limit_error_rate() now exported directly from funcy
- @tap(), @log_calls and @log_errors() now exported directly from funcy
- added @print_calls and @print_errors
- better handling passing None to optional parameter
- docs for debugging utilities
Backward incompatible changes:
- @log renamed to @log_calls
0.4.0
- extended predicate/mapping semantics for seq and coll utils
- added str_join()
- added @collecting and @joining()
- added sums() and isums()
- better docs
0.3.4
- added with_prev()
- added iterable()
- support iterators in walk*(), select*(), empty() and project()
- reexport itertools.chain()
- faster curry
- more docs
0.3.3
- added compact(), i?reductions()
- added default argument to @ignore()
- added tap() experimental debug utility
- @make_lookuper() now works on functions with arguments
- exposed ilen() publicly
- added default argument to @ignore()
- fix: join() and merge() now correctly fail when receive [None, ...]
- better docs
Backward incompatible changes:
- renamed @memoize.lookup() to @make_lookuper()
0.3.2
- added ilen()
- added some object helpers: namespace base class and @cached_property
- more docs
0.3.1
- added @memoize.lookup()
- more and better docs
Backward incompatible changes:
- removed generator based @decorator version
- pluck() now accepts key as first parameter
0.3.0
- partial docs
- added where(), pluck() and invoke() inspired by underscore
- added split_by()
- second() made public
- reexport itertools.cycle()
- walk() and select() work with strings now
Backward incompatible changes:
- renamed groupby() to group_by()
- separated split_at() from split()
- automatically unpack one-element tuples returned from re_*()
- join() now returns None on empty input instead of TypeError
- made fallback() accept multiple arguments
Bugfixes:
- fixed join() swallowing first coll from iterator of colls
0.2.1
- one argument keep()
- fallback() flow
0.2
- added curry() to funcs
- added re_test(), re_tester() and re_finder() to strings
- added second() to seqs
- added one() and one_fn() to colls and funcolls
- support defaultdicts in walk*(), select*(), project(), empty()
- one argument and uncallable default in iffy()