The kitchen sink of Python utility libraries for doing "stuff" in a functional way. Based on the Lo-Dash Javascript library.
Project description
The kitchen sink of Python utility libraries for doing “stuff” in a functional way. Based on the Lo-Dash Javascript library.
Links
Project: https://github.com/dgilland/pydash
Documentation: http://pydash.readthedocs.org
TravisCI: https://travis-ci.org/dgilland/pydash
Changelog
v4.0.0 (2017-04-03)
New Features
Add assign_with.
Add clamp.
Add clone_deep_with.
Add clone_with.
Add cond. Thanks bharadwajyarlagadda!
Add conforms.
Add conforms_to.
Add default_to. Thanks bharadwajyarlagadda!
Add difference_by.
Add difference_with.
Add divide. Thanks bharadwajyarlagadda!
Add eq. Thanks bharadwajyarlagadda!
Add flat_map.
Add flat_map_deep.
Add flat_map_depth.
Add flatten_depth.
Add flip. Thanks bharadwajyarlagadda!
Add from_pairs. Thanks bharadwajyarlagadda!
Add intersection_by.
Add intersection_with.
Add invert_by.
Add invoke_map.
Add is_equal_with. Thanks bharadwajyarlagadda!
Add is_match_with.
Add is_set. Thanks bharadwajyarlagadda!
Add lower_case. Thanks bharadwajyarlagadda!
Add lower_first. Thanks bharadwajyarlagadda!
Add max_by.
Add mean_by.
Add merge_with.
Add min_by.
Add multiply. Thanks bharadwajyarlagadda!
Add nth. Thanks bharadwajyarlagadda!
Add nth_arg. Thanks bharadwajyarlagadda!
Add omit_by.
Add over. Thanks bharadwajyarlagadda!
Add over_every. Thanks bharadwajyarlagadda!
Add over_some. Thanks bharadwajyarlagadda!
Add pick_by.
Add pull_all. Thanks bharadwajyarlagadda!
Add pull_all_by.
Add pull_all_with.
Add range_right. Thanks bharadwajyarlagadda!
Add sample_size. Thanks bharadwajyarlagadda!
Add set_with.
Add sorted_index_by.
Add sorted_index_of. Thanks bharadwajyarlagadda!
Add sorted_last_index_by.
Add sorted_last_index_of.
Add sorted_uniq. Thanks bharadwajyarlagadda!
Add sorted_uniq_by.
Add stub_list. Thanks bharadwajyarlagadda!
Add stub_dict. Thanks bharadwajyarlagadda!
Add stub_false. Thanks bharadwajyarlagadda!
Add stub_string. Thanks bharadwajyarlagadda!
Add stub_true. Thanks bharadwajyarlagadda!
Add subtract. Thanks bharadwajyarlagadda!
Add sum_by.
Add to_integer.
Add to_lower. Thanks bharadwajyarlagadda!
Add to_path. Thanks bharadwajyarlagadda!
Add to_upper. Thanks bharadwajyarlagadda!
Add unary.
Add union_by. Thanks bharadwajyarlagadda!
Add union_with. Thanks bharadwajyarlagadda!
Add uniq_by.
Add uniq_with.
Add unset.
Add update.
Add update_with.
Add upper_case. Thanks bharadwajyarlagadda!
Add upper_first. Thanks bharadwajyarlagadda!
Add xor_by.
Add xor_with.
Add zip_object_deep.
Make function returned by constant ignore extra arguments when called.
Make get support attribute access within path.
Make iteratee treat an integer argument as a string path (i.e. iteratee(1) is equivalent to iteratee('1') for creating a path accessor function).
Make intersection work with unhashable types.
Make range_ support decrementing when start argument is greater than stop argument.
Make xor maintain sort order of supplied arguments.
Bug Fixes
Fix find_last_key so that it iterates over object in reverse.
Backwards-Incompatibilities
Make add only support two argument addition. (breaking change)
Make difference return duplicate values from first argument and maintain sort order. (breaking change)
Make invoke work on objects instead of collections. Use invoke_map for collections. (breaking change)
Make set_ support mixed list/dict defaults within a single object based on whether key or index path substrings used. (breaking change)
Make set_ modify object in place. (breaking change)
Only use merge callback result if result is not None. Previously, result from callback (if provided) was used unconditionally. (breaking change)
Remove functions: (breaking change)
mapiter (no alternative)
pluck and deep_pluck (use map_)
update_path (use update or update_with)
set_path (use set_ or set_with)
Remove aliases: (breaking change)
all_ (use every)
any_ (use some)
append (use push)
average and avg (use mean or mean_by)
callback (use iteratee)
cat (use concat)
collect (use map_)
contains (use includes)
curve (use round_)
deep_get and get_path (use get)
deep_has and has_path (use has)
deep_prop (use property_deep)
deep_set (use set_)
detect and find_where (use find)
each (use for_each)
each_right (use for_each_right)
escape_re (use escape_reg_exp)
explode (use split)
extend (use assign)
first (use head)
foldl (use reduce)
foldr (use reduce_right)
for_own (use for_each)
for_own_right (use for_each_right)
implode (use join)
is_bool (use is_boolean)
is_int (use is_integer)
is_native (use is_builtin)
is_num (use is_number)
is_plain_object (use is_dict)
is_re (use is_reg_exp)
js_match (use reg_exp_js_match)
js_replace (use reg_exp_js_replace)
keys_in (use keys)
moving_average and moving_avg (use moving_mean)
object_ (use zip_object)
pad_left (use pad_start)
pad_right (use pad_end)
pipe (use flow)
pipe_right and compose (use flow_right)
prop (use property_)
prop_of (use property_of)
pow_ (use power)
re_replace (use reg_exp_replace)
rest (use tail)
select (use filter_)
sigma (use std_deviation)
sort_by_all and sort_by_order (use order_by)
trim_left (use trim_start)
trim_right (use trim_right)
trunc (use truncate)
underscore_case (use snake_case)
unique (use uniq)
values_in (use values)
where (use filter_)
Rename functions: (breaking change)
deep_map_values to map_values_deep
deep_property to property_deep
include to includes
index_by to key_by
mod_args to over_args
moving_average to moving_mean
pairs to to_pairs
Remove callback argument from: (breaking change)
assign. Moved to assign_with.
clone and clone_deep. Moved to clone_with and clone_deep_with.
is_match. Moved to is_match_with.
max_ and min_. Moved to max_by and min_by.
omit. Moved to omit_by.
pick. Moved to pick_by.
sorted_index. Moved to sorted_index_by.
sum_. Moved to sum_by.
uniq/unique. Moved to uniq_by.
Renamed callback argument to predicate: (breaking change)
drop_right_while
drop_while
every
filter_
find
find_key
find_last
find_index
find_last_index
find_last_key
partition
reject
remove
some
take_right_while
take_while
Renamed callback argument to iteratee: (breaking change)
count_by
duplicates
for_each
for_each_right
for_in
for_in_right
group_by
key_by
map_
map_keys
map_values
map_values_deep
mapcat
median
reduce_
reduce_right
reductions
reductions_right
sort_by
times
transform
unzip_with
zip_with
zscore
Rename comparison argument in sort to comparator.
Rename index and how_many arguments in splice to start and count.
Remove multivalue argument from invert. Feature moved to invert_by. (breaking change)
v3.4.8 (2017-01-05)
Make internal function inspection methods work with Python 3 annotations. Thanks tgriesser!
v3.4.7 (2016-11-01)
Fix bug in get where an iterable default was iterated over instead of being returned when an object path wasn’t found. Thanks urbnjamesmi1!
v3.4.6 (2016-10-31)
Fix bug in get where casting a string key to integer resulted in an uncaught exception instead of the default value being returned instead. Thanks urbnjamesmi1!
v3.4.5 (2016-10-16)
Add optional default parameter to min_ and max_ functions that is used when provided iterable is empty.
Fix bug in is_match where comparison between an empty source argument returned None instead of True.
v3.4.4 (2016-09-06)
Shallow copy each source in assign/extend instead of deep copying.
Call copy.deepcopy in merge instead of the more resource intensive clone_deep.
v3.4.3 (2016-04-07)
Fix minor issue in deep path string parsing so that list indexing in paths can be specified as foo[0][1].bar instead of foo.[0].[1].bar. Both formats are now supported.
v3.4.2 (2016-03-24)
Fix bug in start_case where capitalized characters after the first character of a word where mistakenly cast to lower case.
v3.4.1 (2015-11-03)
Fix Python 3.5, inspect, and pytest compatibility issue with py_ chaining object when doctest run on pydash.__init__.py.
v3.4.0 (2015-09-22)
Optimize callback system for performance.
Explicitly store arg count on callback for pydash generated callbacks where the arg count is known. This avoids the costly inspect.getargspec call.
Eliminate usage of costly guess_builtin_argcount which parsed docstrings, and instead only ever pass a single argument to a builtin callback function.
Optimize get/set so that regex parsing is only done when special characters are contained in the path key whereas before, all string paths were parsed.
Optimize is_builtin by checking for BuiltinFunctionType instance and then using dict look up table instead of a list look up.
Optimize is_match by replacing call to has with a try/except block.
Optimize push/append by using a native loop instead of callback mapping.
v3.3.0 (2015-07-23)
Add ceil.
Add defaults_deep.
Add floor.
Add get.
Add gt.
Add gte.
Add is_iterable.
Add lt.
Add lte.
Add map_keys.
Add method.
Add method_of.
Add mod_args.
Add set_.
Add unzip_with.
Add zip_with.
Make add support adding two numbers if passed in positionally.
Make get main definition and get_path its alias.
Make set_ main definition and deep_set its alias.
v3.2.2 (2015-04-29)
Catch AttributeError in helpers.get_item and return default value if set.
v3.2.1 (2015-04-29)
Fix bug in reduce_right where collection was not reversed correctly.
v3.2.0 (2015-03-03)
Add sort_by_order as alias of sort_by_all.
Fix is_match to not compare obj and source types using type and instead use isinstance comparisons exclusively.
Make sort_by_all accept an orders argument for specifying the sort order of each key via boolean True (for ascending) and False (for descending).
Make words accept a pattern argument to override the default regex used for splitting words.
Make words handle single character words better.
v3.1.0 (2015-02-28)
Add fill.
Add in_range.
Add matches_property.
Add spread.
Add start_case.
Make callbacks support matches_property style as [key, value] or (key, value).
Make callbacks support shallow property style callbacks as [key] or (key,).
v3.0.0 (2015-02-25)
Add ary.
Add chars.
Add chop.
Add chop_right.
Add clean.
Add commit method to chain that returns a new chain with the computed chain.value() as the initial value of the chain.
Add count_substr.
Add decapitalize.
Add duplicates.
Add has_substr.
Add human_case.
Add insert_substr.
Add is_blank.
Add is_bool as alias of is_boolean.
Add is_builtin, is_native.
Add is_dict as alias of is_plain_object.
Add is_int as alias of is_integer.
Add is_match.
Add is_num as alias of is_number.
Add is_tuple.
Add join as alias of implode.
Add lines.
Add number_format.
Add pascal_case.
Add plant method to chain that returns a cloned chain with a new initial value.
Add predecessor.
Add property_of, prop_of.
Add prune.
Add re_replace.
Add rearg.
Add replace.
Add run as alias of chain.value.
Add separator_case.
Add series_phrase.
Add series_phrase_serial.
Add slugify.
Add sort_by_all.
Add strip_tags.
Add substr_left.
Add substr_left_end.
Add substr_right.
Add substr_right_end.
Add successor.
Add swap_case.
Add title_case.
Add truncate as alias of trunc.
Add to_boolean.
Add to_dict, to_plain_object.
Add to_number.
Add underscore_case as alias of snake_case.
Add unquote.
Fix deep_has to return False when ValueError raised during path checking.
Fix pad so that it doesn’t over pad beyond provided length.
Fix trunc/truncate so that they handle texts shorter than the max string length correctly.
Make the following functions work with empty strings and None: (breaking change) Thanks k7sleeper!
camel_case
capitalize
chars
chop
chop_right
class_case
clean
count_substr
decapitalize
ends_with
join
js_replace
kebab_case
lines
quote
re_replace
replace
series_phrase
series_phrase_serial
starts_with
surround
Make callback invocation have better support for builtin functions and methods. Previously, if one wanted to pass a builtin function or method as a callback, it had to be wrapped in a lambda which limited the number of arguments that would be passed it. For example, _.each([1, 2, 3], array.append) would fail and would need to be converted to _.each([1, 2, 3], lambda item: array.append(item). That is no longer the case as the non-wrapped method is now supported.
Make capitalize accept strict argument to control whether to convert the rest of the string to lower case or not. Defaults to True.
Make chain support late passing of initial value argument.
Make chain not store computed value(). (breaking change)
Make drop, drop_right, take, and take_right have default n=1.
Make is_indexed return True for tuples.
Make partial and partial_right accept keyword arguments.
Make pluck style callbacks support deep paths. (breaking change)
Make re_replace accept non-string arguments.
Make sort_by accept reverse parameter.
Make splice work with strings.
Make to_string convert None to empty string. (breaking change)
Move arrays.join to strings.join. (breaking change)
Rename join/implode’s second parameter from delimiter to separator. (breaking change)
Rename split/explode’s second parameter from delimiter to separator. (breaking change)
Reorder function arguments for after from (n, func) to (func, n). (breaking change)
Reorder function arguments for before from (n, func) to (func, n). (breaking change)
Reorder function arguments for times from (n, callback) to (callback, n). (breaking change)
Reorder function arguments for js_match from (reg_exp, text) to (text, reg_exp). (breaking change)
Reorder function arguments for js_replace from (reg_exp, text, repl) to (text, reg_exp, repl). (breaking change)
Support iteration over class instance properties for non-list, non-dict, and non-iterable objects.
v2.4.2 (2015-02-03)
Fix remove so that array is modified after callback iteration.
v2.4.1 (2015-01-11)
Fix kebab_case so that it casts string to lower case.
v2.4.0 (2015-01-07)
v2.3.2 (2014-12-10)
Fix merge and assign/extend so they apply clone_deep to source values before assigning to destination object.
Make merge accept a callback as a positional argument if it is last.
v2.3.1 (2014-12-07)
Add pipe and pipe_right as aliases of flow and flow_right.
Fix merge so that trailing {} or [] don’t overwrite previous source values.
Make py_ an alias for _.
v2.3.0 (2014-11-10)
Support type callbacks (e.g. int, float, str, etc.) by only passing a single callback argument when invoking the callback.
Drop official support for Python 3.2. Too many testing dependencies no longer work on it.
v2.2.0 (2014-10-28)
Add append.
Add deep_get.
Add deep_has.
Add deep_map_values.
Add deep_set.
Add deep_pluck.
Add deep_property.
Add join.
Add pop.
Add push.
Add reverse.
Add shift.
Add sort.
Add splice.
Add unshift.
Add url.
Fix bug in snake_case that resulted in returned string not being converted to lower case.
Fix bug in chaining method access test which skipped the actual test.
Make _ instance alias method access to methods with a trailing underscore in their name. For example, _.map() becomes an alias for map_().
Make deep_prop an alias of deep_property.
Make has work with deep paths.
Make has_path an alias of deep_has.
Make get_path handle escaping the . delimiter for string keys.
Make get_path handle list indexing using strings such as '0.1.2' to access 'value' in [[0, [0, 0, 'value']]].
Make concat an alias of cat.
v2.1.0 (2014-09-17)
Add add, sum_.
Add average, avg, mean.
Add mapiter.
Add median.
Add moving_average, moving_avg.
Add power, pow_.
Add round_, curve.
Add scale.
Add slope.
Add std_deviation, sigma.
Add transpose.
Add variance.
Add zscore.
v2.0.0 (2014-09-11)
Add _ instance that supports both method chaining and module method calling.
Add cat.
Add conjoin.
Add deburr.
Add disjoin.
Add explode.
Add flatten_deep.
Add flow.
Add flow_right.
Add get_path.
Add has_path.
Add implode.
Add intercalate.
Add interleave.
Add intersperse.
Add is_associative.
Add is_even.
Add is_float.
Add is_decreasing.
Add is_increasing.
Add is_indexed.
Add is_instance_of.
Add is_integer.
Add is_json.
Add is_monotone.
Add is_negative.
Add is_odd.
Add is_positive.
Add is_strictly_decreasing.
Add is_strictly_increasing.
Add is_zero.
Add iterated.
Add js_match.
Add js_replace.
Add juxtapose.
Add mapcat.
Add reductions.
Add reductions_right.
Add rename_keys.
Add set_path.
Add split_at.
Add thru.
Add to_string.
Add update_path.
Add words.
Make callback function calling adapt to argspec of given callback function. If, for example, the full callback signature is (item, index, obj) but the passed in callback only supports (item), then only item will be passed in when callback is invoked. Previously, callbacks had to support all arguments or implement star-args.
Make chain lazy and only compute the final value when value called.
Make compose an alias of flow_right.
Make flatten shallow by default, remove callback option, and add is_deep option. (breaking change)
Make is_number return False for boolean True and False. (breaking change)
Make invert accept multivalue argument.
Make result accept default argument.
Make slice_ accept optional start and end arguments.
Move files in pydash/api/ to pydash/. (breaking change)
Move predicate functions from pydash.api.objects to pydash.api.predicates. (breaking change)
Rename create_callback to iteratee. (breaking change)
Rename functions to callables in order to allow functions.py to exist at the root of the pydash module folder. (breaking change)
Rename private utility function _iter_callback to itercallback. (breaking change)
Rename private utility function _iter_list_callback to iterlist_callback. (breaking change)
Rename private utility function _iter_dict_callback to iterdict_callback. (breaking change)
Rename private utility function _iterate to iterator. (breaking change)
Rename private utility function _iter_dict to iterdict. (breaking change)
Rename private utility function _iter_list to iterlist. (breaking change)
Rename private utility function _iter_unique to iterunique. (breaking change)
Rename private utility function _get_item to getitem. (breaking change)
Rename private utility function _set_item to setitem. (breaking change)
Rename private utility function _deprecated to deprecated. (breaking change)
Undeprecate tail and make alias of rest.
v1.1.0 (2014-08-19)
Add attempt.
Add before.
Add camel_case.
Add capitalize.
Add chunk.
Add curry_right.
Add drop_right.
Add drop_right_while.
Add drop_while.
Add ends_with.
Add escape_reg_exp and escape_re.
Add is_error.
Add is_reg_exp and is_re.
Add kebab_case.
Add keys_in as alias of keys.
Add negate.
Add pad.
Add pad_left.
Add pad_right.
Add partition.
Add pull_at.
Add repeat.
Add slice_.
Add snake_case.
Add sorted_last_index.
Add starts_with.
Add take_right.
Add take_right_while.
Add take_while.
Add trim.
Add trim_left.
Add trim_right.
Add trunc.
Add values_in as alias of values.
Create pydash.api.strings module.
Deprecate tail.
Modify drop to accept n argument and remove as alias of rest.
Modify take to accept n argument and remove as alias of first.
Move escape and unescape from pydash.api.utilities to pydash.api.strings. (breaking change)
Move range_ from pydash.api.arrays to pydash.api.utilities. (breaking change)
v1.0.0 (2014-08-05)
Add Python 2.6 and Python 3 support.
Add after.
Add assign and extend. Thanks nathancahill!
Add callback and create_callback.
Add chain.
Add clone.
Add clone_deep.
Add compose.
Add constant.
Add count_by. Thanks nathancahill!
Add curry.
Add debounce.
Add defaults. Thanks nathancahill!
Add delay.
Add escape.
Add find_key. Thanks nathancahill!
Add find_last. Thanks nathancahill!
Add find_last_index. Thanks nathancahill!
Add find_last_key. Thanks nathancahill!
Add for_each. Thanks nathancahill!
Add for_each_right. Thanks nathancahill!
Add for_in. Thanks nathancahill!
Add for_in_right. Thanks nathancahill!
Add for_own. Thanks nathancahill!
Add for_own_right. Thanks nathancahill!
Add functions_ and methods. Thanks nathancahill!
Add group_by. Thanks nathancahill!
Add has. Thanks nathancahill!
Add index_by. Thanks nathancahill!
Add identity.
Add inject.
Add invert.
Add invoke. Thanks nathancahill!
Add is_list. Thanks nathancahill!
Add is_boolean. Thanks nathancahill!
Add is_empty. Thanks nathancahill!
Add is_equal.
Add is_function. Thanks nathancahill!
Add is_none. Thanks nathancahill!
Add is_number. Thanks nathancahill!
Add is_object.
Add is_plain_object.
Add is_string. Thanks nathancahill!
Add keys.
Add map_values.
Add matches.
Add max_. Thanks nathancahill!
Add memoize.
Add merge.
Add min_. Thanks nathancahill!
Add noop.
Add now.
Add omit.
Add once.
Add pairs.
Add parse_int.
Add partial.
Add partial_right.
Add pick.
Add property_ and prop.
Add pull. Thanks nathancahill!
Add random.
Add reduce_ and foldl.
Add reduce_right and foldr.
Add reject. Thanks nathancahill!
Add remove.
Add result.
Add sample.
Add shuffle.
Add size.
Add sort_by. Thanks nathancahill!
Add tap.
Add throttle.
Add times.
Add transform.
Add to_list. Thanks nathancahill!
Add unescape.
Add unique_id.
Add values.
Add wrap.
Add xor.
v0.0.0 (2014-07-22)
Add all_.
Add any_.
Add at.
Add bisect_left.
Add collect.
Add collections.
Add compact.
Add contains.
Add detect.
Add difference.
Add drop.
Add each.
Add each_right.
Add every.
Add filter_.
Add find.
Add find_index.
Add find_where.
Add first.
Add flatten.
Add head.
Add include.
Add index_of.
Add initial.
Add intersection.
Add last.
Add last_index_of.
Add map_.
Add object_.
Add pluck.
Add range_.
Add rest.
Add select.
Add some.
Add sorted_index.
Add tail.
Add take.
Add union.
Add uniq.
Add unique.
Add unzip.
Add where.
Add without.
Add zip_.
Add zip_object.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pydash-4.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cc4d5d86cb64b133f74e6aaba646e67d029dbdba588e628c336f327b1dcdf76 |
|
MD5 | 0a36e4f3a764a22a66821b3992c67d7c |
|
BLAKE2b-256 | 9425822b8dccc3d2033534f9364d8ba72f0dad0e5a93db41a164af7c7e7ef831 |