cytoolz
Cython implementation of Toolz: High performance functional utilities
Description
CyToolz ======= |Build Status| |Version Status| Cython implementation of the |literal toolz|_ `package, <https://pypi.python.org/pypi/toolz/>`__ which provides high performance utility functions for iterables, functions, and dictionaries. .. |literal toolz| replace:: ``toolz`` .. _literal toolz: https://github.com/pytoolz/toolz ``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 <https://toolz.readthedocs.io/en/latest/api.html>`__ for more details. *CyToolz has experimental support for Python free-threading introduced in Python 3.13 and provides wheels for free-threaded Python. CyToolz has not yet been developed or tested for thread-safety, so use at your own risk! If you encounter any issues, please* `let us know <https://github.com/pytoolz/cytoolz/issues>`__. LICENSE ------- New BSD. See `License File <https://github.com/pytoolz/cytoolz/blob/master/LICENSE.txt>`__. Install ------- ``cytoolz`` is on the Python Package Index (PyPI): :: pip install cytoolz Dependencies ------------ ``cytoolz`` supports Python 3.9+ 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. Contributions Welcome --------------------- ``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 <https://github.com/pytoolz/toolz/issues>`__ and `cytoolz <https://github.com/pytoolz/cytoolz/issues>`__ for contribution ideas. Community --------- See our `mailing list <https://groups.google.com/forum/#!forum/pytoolz>`__. We're friendly. .. |Build Status| image:: https://github.com/pytoolz/cytoolz/actions/workflows/test.yml/badge.svg?branch=master :target: https://github.com/pytoolz/cytoolz/actions .. |Version Status| image:: https://badge.fury.io/py/cytoolz.svg :target: http://badge.fury.io/py/cytoolz
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 1.1.0 | Imported from PyPI (1.1.0) | Low | 4/21/2026 |
| 1.1.0a2 | _**This is a pre-release**_ - Add support for Python 3.14 - Drop support for Python 3.8 - Update to match `toolz` 1.1.0 - Package, tooling, infrastructure modernization Full release notes will be included for 1.1.0 | Low | 10/17/2025 |
| 1.1.0a1 | _**This is a pre-release**_ - Add support for Python 3.14 - Drop support for Python 3.8 - Update to match `toolz` 1.1.0 - Package, tooling, infrastructure modernization Full release notes will be included for 1.1.0 | Low | 10/17/2025 |
| 1.1.0a0 | _**This is a pre-release**_ - Add support for Python 3.14 - Drop support for Python 3.8 - Update to match `toolz` 1.1.0 - Package, tooling, infrastructure modernization Full release notes will be included for 1.1.0 | Low | 10/17/2025 |
| 1.0.1 | - Add support for Python 3.13 by @eriknw in #216 | Low | 12/13/2024 |
| 1.0.0 | ## What's Changed * Test fixes for Python 3.13 by @opoplawski in https://github.com/pytoolz/cytoolz/pull/206 * Drop Python 3.7 by @jrbourbeau in https://github.com/pytoolz/cytoolz/pull/207 * Bump ``cibuildwheel`` in CI by @jrbourbeau in https://github.com/pytoolz/cytoolz/pull/208 ## New Contributors * @opoplawski made their first contribution in https://github.com/pytoolz/cytoolz/pull/206 * @jrbourbeau made their first contribution in https://github.com/pytoolz/cytoolz/pull/207 **Full | Low | 10/4/2024 |
| 0.12.3 | - Add support for Python 3.12, PyPy 3.9, and PyPy 3.10 - Update to match `toolz` 0.12.1 | Low | 1/25/2024 |
| 0.12.3a2 | _**This is a pre-release**_ - Support Python 3.12 - Match `toolz` 0.12.1 - Fix docstring to match `toolz` - Don't run "release" tests on PyPy when building wheels | Low | 1/24/2024 |
| 0.12.3a1 | _**This is a pre-release**_ - Support Python 3.12 - Match `toolz` 0.12.1 - Fix docstring to match `toolz` | Low | 1/24/2024 |
| 0.12.3a0 | _**This is a pre-release**_ - Support Python 3.12 - Match `toolz` 0.12.1 | Low | 1/24/2024 |
| 0.12.2 | - Support Cython 3.0 (#199) - Stop building wheels for PyPy 3.9 and PyPy 3.10, which stopped working for some reason (#199) | Low | 7/21/2023 |
| 0.12.1 | - Support Python 3.11 (including wheels) - Drop Python 3.5 support | Low | 12/23/2022 |
| 0.12.0 | - Update to `toolz` 0.12.0 (#170) - See `toolz` release notes: https://github.com/pytoolz/toolz/releases/tag/0.12.0 - Build wheels automatically with cibuildwheel! (#167, #168, #169, #170) - Support newer Python versions (#165, don't use `inspect.getargspec` in tests) - Improve import times - Use versioneer.py to manage versions - `__version__` and `__toolz_version__` are no longer available from `cytoolz._version`--use `cython.__toolz_version__` instead. This is the first relea | Low | 7/11/2022 |
| 0.11.2 | - Support Python 3.10 | Low | 11/6/2021 |
