Skip to main content

toolz-stubs

CI basedpyright pyright

Type stubs for toolz and tlz - Python functional programming libraries.

Installation

pip install toolz-stubs

This installs type stubs for both toolz and tlz.

Usage

Once installed, type checkers like mypy, pyright, or basedpyright will automatically use these stubs:

import toolz

bills = {"Alice": [20, 15, 30], "Bob": [10, 35]}
totals = toolz.valmap(sum, bills)  # dict[str, int]

even_entries = toolz.keyfilter(lambda k: k % 2 == 0, {1: "a", 2: "b", 3: "c"})  # dict[int, str]

names = ["Alice", "Bob", "Charlie", "Anna"]
grouped = toolz.groupby(lambda s: s[0], names)  # dict[str, list[str]]

Using with cytoolz

When you pip install toolz, you also get a second package called tlz. It's a thin auto-selecting wrapper: if cytoolz (the C-accelerated version) is installed, tlz imports from it; otherwise it falls back to pure-Python toolz. The API is identical either way.

If you use cytoolz, you can switch your imports to tlz to get the same performance with type checking support and a graceful fallback:

# before
from cytoolz.dicttoolz import merge, valmap
from cytoolz.functoolz import curry, compose, pipe

# after — same performance, now with type stubs
from tlz.dicttoolz import merge, valmap
from tlz.functoolz import curry, compose, pipe

What's Included

This package provides type stubs (.pyi files) for:

  • toolz: The pure Python functional programming library
  • tlz: The auto-selecting wrapper (uses cytoolz if installed, otherwise falls back to toolz)

Modules covered:

  • toolz.functoolz / tlz.functoolz - Function manipulation (curry, compose, pipe, etc.)
  • toolz.itertoolz / tlz.itertoolz - Iterator utilities (groupby, partition, sliding_window, etc.)
  • toolz.dicttoolz / tlz.dicttoolz - Dictionary operations (merge, valmap, keyfilter, etc.)
  • toolz.curried / tlz.curried - Pre-curried versions of all functions
  • toolz.recipes / tlz.recipes - Common recipes (countby, partitionby)
  • toolz.sandbox / tlz.sandbox - Experimental utilities

Development

make sync    # Install dependencies
make check   # Run type checker
make test    # Run tests
make lint    # Run linter
make format  # Check formatting
make build   # Build wheel

If manually running commands, be sure to specify --no-editable or hatchling will mispackage toolz & tlz packages.

Tests

The tests in tests/ serve a few purposes:

  • they verify runtime behavior with pytest.
  • they verify that these stubs genuinely improve the developer experience in an IDE.
  • they are type-checked by basedpyright. This ensures the stubs match actual library behavior.

Contributing

Contributions are welcome! Areas that could use improvement:

  1. More precise generic types
  2. Additional overloads for functions with variable signatures
  3. Improved curry and composition typing
  4. Protocol types for duck-typed parameters

License

BSD 3-Clause (same as toolz)

Metadata

Release files for toolz-stubs 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for toolz-stubs 0.4.1
File Size Uploaded
toolz_stubs-0.4.1.tar.gz 65.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for toolz-stubs 0.4.1
File Interpreter ABI Platform
toolz_stubs-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 133.5 kB

Release files / toolz_stubs-0.4.1.tar.gz

Download URL toolz_stubs-0.4.1.tar.gz
Size 65.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e6fc55936adb699f03934ad4789f62b823e3e41fbd1673b8dd5e950be3b3107e
BLAKE2b-256 checksum
How to use checksums
50b884bdb65e9a88ff978f99dcff09e3f33aa20eeedcec2a6705b7744b4de524
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.

Transparency log

Release files / toolz_stubs-0.4.1-py3-none-any.whl

Download URL toolz_stubs-0.4.1-py3-none-any.whl
Size 68.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c86f61616ea2a0a369641f0b2665d09d03cb0da18afa79703c2c2e27da898a7
BLAKE2b-256 checksum
How to use checksums
54f3aa2303b515b881699ce38ac4bf4573857187f06b49420b17792aa8784bbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page