Changelog#
v0.5.3 (2021-10-14)#
Minor performance optimization in
pick
.
v0.5.2 (2020-12-24)#
Fix regression in
v0.5.1
that brokeget/has
for dictionaries and dot-delimited keys that reference integer dict-keys.
v0.5.1 (2020-12-14)#
Fix bug in
get/has
that causeddefaultdict
objects to get populated on key access.
v0.5.0 (2020-10-23)#
Fix bug in
intersection/intersectionby
anddifference/differenceby
where incorrect results could be returned when generators passed in as the sequences to compare with.Add support for Python 3.9.
Drop support for Python <= 3.5.
v0.4.0 (2019-01-23)#
Add functions:
differenceby
duplicatesby
intersectionby
unionby
v0.3.0 (2018-08-31)#
compose: Introduce new “partial” shorthand where instead of passing a callable, a
tuple
can be given which will then be converted to a callable usingfunctools.partial
. For example, instead offnc.compose(partial(fnc.filter, {'active': True}), partial(fnc.map, 'email'))
, one can dofnc.compose((fnc.filter, {'active': True}), (fnc.map, 'email'))
.
v0.2.0 (2018-08-24)#
Add functions:
negate
over
overall
overany
Rename functions: (breaking change)
ismatch -> conforms
matches -> conformance
Make
conforms/conformance
(formerlyismatch/matches
) accept callable dictionary values that act as predicates against comparison target. (breaking change)
v0.1.1 (2018-08-17)#
pick: Don’t return
None
for keys that don’t exist in source object. Instead offnc.pick(['a'], {}) == {'a': None}
, it’s nowfnc.pick(['a'], {}) == {}
.
v0.1.0 (2018-08-15)#
First release.