Skip to main content

List processing tools and functional utilities

Project description

Build Status Coverage Status Version Status

A set of utility functions for iterators, functions, and dictionaries.

See the PyToolz documentation at https://toolz.readthedocs.io

LICENSE

New BSD. See License File.

Install

toolz is on the Python Package Index (PyPI):

pip install toolz

Structure and Heritage

toolz is implemented in three parts:

itertoolz, for operations on iterables. Examples: groupby, unique, interpose,

functoolz, for higher-order functions. Examples: memoize, curry, compose,

dicttoolz, for operations on dictionaries. Examples: assoc, update-in, merge.

These functions come from the legacy of functional languages for list processing. They interoperate well to accomplish common complex tasks.

Read our API Documentation for more details.

Example

This builds a standard wordcount function from pieces within toolz:

>>> def stem(word):
...     """ Stem word to primitive form """
...     return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")

>>> from toolz import compose, frequencies, partial
>>> from toolz.curried import map
>>> wordcount = compose(frequencies, map(stem), str.split)

>>> sentence = "This cat jumped over this other cat!"
>>> wordcount(sentence)
{'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}

Dependencies

toolz supports Python 3.5+ with a common codebase. It is pure Python and requires no dependencies beyond the standard library.

It is, in short, a lightweight dependency.

CyToolz

The toolz project has been reimplemented in Cython. The cytoolz project is a drop-in replacement for the Pure Python implementation. See CyToolz GitHub Page for more details.

See Also

  • Underscore.js: A similar library for JavaScript

  • Enumerable: A similar library for Ruby

  • Clojure: A functional language whose standard library has several counterparts in toolz

  • itertools: The Python standard library for iterator tools

  • functools: The Python standard library for function tools

Contributions Welcome

toolz aims to be a repository for utility functions, particularly those that come from the functional programming and list processing traditions. We welcome contributions that fall within this scope.

We also try to keep the API small to keep toolz manageable. The ideal contribution is significantly different from existing functions and has precedent in a few other functional systems.

Please take a look at our issue page for contribution ideas.

Community

See our mailing list. We’re friendly.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kitoolz-0.0.8.tar.gz (70.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kitoolz-0.0.8-py2.py3-none-any.whl (61.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file kitoolz-0.0.8.tar.gz.

File metadata

  • Download URL: kitoolz-0.0.8.tar.gz
  • Upload date:
  • Size: 70.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for kitoolz-0.0.8.tar.gz
Algorithm Hash digest
SHA256 e105bd3fce8814341417016d80e5fbb670bfb29fe1957151db96b05cda3cd871
MD5 5d60c6c0fe0a044a29d432af5a327065
BLAKE2b-256 2528e239650e635249c1a0719581b6e1b7c02fc6e4ff33733f8e06793882f244

See more details on using hashes here.

File details

Details for the file kitoolz-0.0.8-py2.py3-none-any.whl.

File metadata

  • Download URL: kitoolz-0.0.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 61.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for kitoolz-0.0.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3b3f30d6a20b0215ce0f00eff5e4a3f2f86ce2f68128d092b02afbc2c28807dd
MD5 e4ea475075ccd593de5d88270857c8e5
BLAKE2b-256 7e06efc8f8b59154cb6e92c4bf4a833652865be4f3df34cb2823a7a0cca81215

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page