Lo-Dash Differences

Naming Conventions

pydash adheres to the following conventions:

  • Function names use snake_case instead of camelCase.
  • Any Lo-Dash function that shares its name with a reserved Python keyword will have an _ appended after it (e.g. filter in Lo-Dash would be filter_ in pydash.
  • Lo-Dash’s toArray() is pydash’s to_list().
  • Lo-Dash’s functions() is pydash’s callables(). This particular name difference was chosen in order to allow for the functions.py module file to exist at root of the project. Previously, functions.py existed in pydash/api/ but in v2.0.0, it was decided to move everything in api/ to pydash/. Therefore, In to avoid import ambiguities, the functions() function was renamed.

Callbacks

As of v2.0.0, callback functions no longer need to handle all possible arguments. Prior to v2.0.0, callbacks had to define all arguments or have star-args:

# Valid in v1
def mycallback(item, value, obj):
    pass

# Valid in v1
def mycallback(item, *args):
    pass

# Invalid in v1
def mycallback(item):
    pass

But in v2.0.0 partial callback signatures are handled properly:

# Valid in v2
def mycallback(item, value, obj):
    pass

# Valid in v2
def mycallback(item, *args):
    pass

# Valid in v2
def mycallback(item):
    pass

Extra Functions

In addition to porting Lo-Dash, pydash contains functions found in lodashcontrib, lodashdeep, and lodashmath.

The following functions exist in pydash but not in Lo-Dash:

Function Behavior

Some of pydash’s functions behave differently:

Templating

  • pydash doesn’t have template(). See Templating for more details.