Lodash Differences#
Naming Conventions#
pydash adheres to the following conventions:
Function names use
snake_case
instead ofcamelCase
.Any Lodash function that shares its name with a reserved Python keyword will have an
_
appended after it (e.g.filter
in Lodash would befilter_
in pydash).Lodash’s
toArray()
is pydash’sto_list()
.Lodash’s
functions()
is pydash’scallables()
. This particular name difference was chosen in order to allow for thefunctions.py
module file to exist at root of the project. Previously,functions.py
existed inpydash/api/
but inv2.0.0
, it was decided to move everything inapi/
topydash/
. Therefore, to avoid import ambiguities, thefunctions()
function was renamed.Lodash’s
is_native()
is pydash’sis_builtin()
. This aligns better with Python’s builtins terminology.
Callbacks#
There are a few differences between extra callback style support:
Pydash has an explicit shallow property access of the form
['some_property']
as inpydash.map_([{'a.b': 1, 'a': {'b': 3}}, {'a.b': 2, 'a': {'b': 4}}], ['a.b'])
would evaulate to[1, 2]
and not[3, 4]
(as would be the case for'a.b'
).
Extra Functions#
In addition to porting Lodash, pydash contains functions found in lodashcontrib, lodashdeep, lodashmath, and underscorestring.
Function Behavior#
Some of pydash’s functions behave differently:
pydash.utilities.memoize()
uses all passed in arguments as the cache key by default instead of only using the first argument.
Templating#
pydash doesn’t have
template()
. See Templating for more details.