Upgrading¶
From v3.x.x to v4.0.0¶
Start by reading the full list of changes in v4.0.0
at the Changelog. There are a significant amount of backwards-incompatibilities that will likely need to be addressed:
All function aliases have been removed in favor of having a single named function for everything. This was done to make things less confusing by having only a single named function that performs an action vs. potentially using two different names for the same function.
A few functions have been removed whose functionality was duplicated by another function.
Some functions have been renamed for consistency and to align with Lodash.
Many functions have had their callback argument moved to another function to align with Lodash.
The generic
callback
argument has been renamed to eitheriteratee
,predicate
, orcomparator
. This was done to make it clearer what the callback is doing and to align more with Lodash’s naming conventions.
Once the shock of those backwards-incompatibilities has worn off, discover 72 new functions:
19 new array methods
6 new collection methods
pydash.collections.flat_depth()
pydash.collections.flatten_depth()
2 new function methods
12 new object methods
pydash.objects.udpate_with()
8 new numerical methods
4 new predicate methods
6 new string methods
15 new utility methods
From v2.x.x to v3.0.0¶
There were several breaking changes in v3.0.0
:
Make
to_string
convertNone
to empty string. (breaking change)Make the following functions work with empty strings and
None
: (breaking change)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
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)
And some potential breaking changes:
Move
arrays.join
tostrings.join
(possible breaking change).Rename
join
/implode
’s second parameter fromdelimiter
toseparator
. (possible breaking change)Rename
split
/explode
’s second parameter fromdelimiter
toseparator
. (possible breaking change)
Some notable new features/functions:
31 new string methods
pydash.strings.class_case()
pydash.strings.re_replace()
1 new array method
2 new function methods
1 new collection method:
pydash.collections.sort_by_all()
4 new object methods
pydash.objects.to_plain_object()
4 new predicate methods
pydash.predicates.is_builtin()
and aliaspydash.predicates.is_native()
1 new utility method
pydash.utilities.prop_of()
and aliaspydash.utilities.property_of()
6 new aliases:
pydash.predicates.is_bool()
forpydash.predicates.is_boolean()
pydash.predicates.is_dict()
forpydash.predicates.is_plain_object()
pydash.predicates.is_int()
forpydash.predicates.is_integer()
pydash.predicates.is_num()
forpydash.predicates.is_number()
pydash.strings.truncate()
forpydash.strings.trunc()
pydash.strings.underscore_case()
forpydash.strings.snake_case()
Chaining can now accept the root
value
argument late.Chains can be re-used with differnt initial values via
chain().plant
.New chains can be created using the chain’s computed value as the new chain’s initial value via
chain().commit
.Support iteration over class instance properties for non-list, non-dict, and non-iterable objects.
Late Value Chaining¶
The passing of the root value
argument for chaining can now be done “late” meaning that you can build chains without providing a value at the beginning. This allows you to build a chain and re-use it with different root values:
>>> from pydash import py_
>>> square_sum = py_().power(2).sum()
>>> [square_sum([1, 2, 3]), square_sum([4, 5, 6]), square_sum([7, 8, 9])]
[14, 77, 194]
See also
For more details on method chaining, check out Method Chaining.
For a full listing of changes in
v3.0.0
, check out the Changelog.
From v1.x.x to v2.0.0¶
There were several breaking and potentially breaking changes in v2.0.0
:
pydash.arrays.flatten()
is now shallow by default. Previously, it was deep by default. For deep flattening, use eitherflatten(..., is_deep=True)
orflatten_deep(...)
.pydash.predicates.is_number()
now returnsFalse
for booleanTrue
andFalse
. Previously, it returnedTrue
.Internally, the files located in
pydash.api
were moved topydash
. If you imported frompydash.api.<module>
, then it’s recommended to change your imports to pull frompydash
.The function
functions()
was renamed tocallables()
to avoid ambiguities with the modulefunctions.py
.
Some notable new features:
Callback functions no longer require the full call signature definition.
A new “_” instance was added which supports both method chaining and module method calling. See py_ Instance for more details.
See also
For a full listing of changes in v2.0.0
, check out the Changelog.