Cython implementation of the toolz
_ package, which provides high performance utility functions for iterables, functions, and dictionaries.
toolz
is a pure Python package that borrows heavily from contemporary functional languanges. It is designed to interoperate seamlessly with other libraries including itertools
, functools
, and third party libraries. High performance functional data analysis is possible with builtin types like list
and dict
, and user-defined data structures; and low memory usage is achieved by using the iterator protocol and returning iterators whenever possible.
cytoolz
implements the same API as toolz
. The main differences are that cytoolz
is faster (typically 2-5x faster with a few spectacular exceptions) and cytoolz
offers a C API that is accessible to other projects developed in Cython. Since toolz
is able to process very large (potentially infinite) data sets, the performance increase gained by using cytoolz
can be significant.
See the PyToolz documentation at https://toolz.readthedocs.io and the full API Documentation for more details.
New BSD. See License File.
cytoolz
is on the Python Package Index (PyPI):
pip install cytoolz
cytoolz
supports Python 2.6+ and Python 3.2+ with a common codebase. It is developed in Cython, but requires no dependecies other than CPython and a C compiler. Like toolz
, it is a light weight dependency.
toolz
(and cytoolz
) 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 and encourage users to scrape their util.py
files for functions that are broadly useful.
Please take a look at our issue pages for toolz and cytoolz for contribution ideas.
See our mailing list. We're friendly.