Skip to content

h4l/sortedcontainers-stubs

Repository files navigation

sortedcontainers-stubs

Community-maintained Python type stubs for the sortedcontainers Python library. sortedcontainers provides dict, set and list data structures that maintain the order of their elements by value (not by insertion order).

The sortedcontainers API has some differences and additional methods compared to regular Python dict, set and list types, and has additional requirements for keys/values on whether they need to be hashable or comparable. These type stubs allow type checkers to enforce these details, which makes sortedcontainers easier to use.

Install

$ pip install sortedcontainers-stubs

Once you've installed the package, mypy (or other tools) should automatically find the types without any configuration.

Usage Notes

sortedcontainers.sorteddict.SortedKeyDict and sortedcontainers.sortedset.SortedKeySet are stub-only subclasses of SortedDict and SortedSet — they don't exist at runtime. They exist as type stubs to describe the different return types of the SortedDict and SortedSet constructors, which vary depending if a key function is used or not.

However, sortedcontainers.sortedlist.SortedKeyList is a real type that exists at runtime.

Version numbers

The sortedcontainers-stubs major and minor versions correspond to major and minor versions of sortedcontainers. The patch number increments independently if required to fix an issue. So if you're using sortedcontainers 2.4.X, use the latest 2.4.X version of sortedcontainers-stubs.

Currently sortedcontainers-stubs version 2.4.0 has dependency metadata supporting sortedcontainers >=2,<3 as there are minimal API differences so far since 2.0.

Reporting Issues

Report issues with type stubs here, at the sortedcontainers-stubs issues, not at the sortedcontainers repo.

History

These stubs were initially offered to sortedcontainers in a PR. After some discussion, the sortedcontainers developer, Grant Jenkins, indicated they'd prefer to keep the sortedcontainers codebase without type annotations, and publish the type stubs in a separate package. This repo is based on the stubs from that PR.

About

Python type stubs for the sortedcontainers package.

Resources

License

Stars

Watchers

Forks

Packages

No packages published