Skip to main content

typings🏷️

PyPI version CI Python 3.12+ License: Apache-2.0 Discord

Type stubs for third-party libraries, written by hand. Some of these libraries ship no types at all. Others ship types that basedpyright and ty reject in strict mode.

Quick Start

# Mac:
#   # Required for quick install.
#   brew install uv

# Ubuntu/Debian:
#   # Required for quick install.
#   sudo apt-get install -y curl
#   curl -LsSf https://astral.sh/uv/install.sh | sh

uv add --dev rekursiv-ai-typings

# Alternatively: python -m pip install rekursiv-ai-typings

There is nothing to configure. Each library's stubs install as a separate <pkg>-stubs package (the standard PEP 561 layout), and both checkers look for those automatically.

Example

import yaml

data = yaml.safe_load("a: 1")
reveal_type(data)  # object, not Any

Features

Override one library

If you want your own stubs for a library instead of ours, put them in your project and they take priority. Name the directory <pkg>-stubs:

typings/<pkg>-stubs/__init__.pyi

Then tell both checkers where to look:

[tool.basedpyright]
stubPath = "typings"

[tool.ty.environment]
extra-paths = ["typings"]

The -stubs suffix matters. If you name the directory <pkg>, ty ignores it and uses ours.

Partial stubs

Some stubs cover only part of a library: fastapi, starlette, lxml, curl_cffi, lark, optax, sklearn, and torch. Each of these is marked partial, so for any module we don't stub, the checkers fall back to the library's own types.

Triton on macOS

triton only installs on Linux. On macOS, basedpyright reports reportMissingModuleSource on every import triton. To fix that, this package also installs placeholder .py files for triton. Add their location to extraPaths:

[tool.basedpyright]
extraPaths = [".venv/share/rekursiv-ai-typings"]

The placeholders only make the import resolve. The types still come from our stubs.

Patched standard library

rekursiv-ai-typeshed, in typeshed/, is a separate package from this repo. It fixes the standard-library stubs so that x ** 0.5 is a float rather than Any. See typeshed/README.md.

Metadata

Release files for rekursiv-ai-typings 0.1.3

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

Source distribution (sdist)

Source distribution for rekursiv-ai-typings 0.1.3
File Size Uploaded Provenance Actions
rekursiv_ai_typings-0.1.3.tar.gz 2.3 MB Without provenance Details for rekursiv_ai_typings-0.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for rekursiv-ai-typings 0.1.3
File Interpreter ABI Platform Actions
rekursiv_ai_typings-0.1.3-py3-none-any.whl Python 3 none any Details for rekursiv_ai_typings-0.1.3-py3-none-any.whl

Total release size: 7.1 MB

Release files / rekursiv_ai_typings-0.1.3.tar.gz

Download URL rekursiv_ai_typings-0.1.3.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
0c7af5c299b34dc3745c0bcfdf5a4c01aba44da948d7475d986e415fa8f3b97f
BLAKE2b-256 checksum
How to use checksums
4afa9abb957c6091c9f9519af1d19d417f4c8e153c7cc7595a3da63fa9c57d31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / rekursiv_ai_typings-0.1.3-py3-none-any.whl

Download URL rekursiv_ai_typings-0.1.3-py3-none-any.whl
Size 4.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8604f75af291bb63d0be471fbff08494da31851cae653014f3ca9ec8e450a869
BLAKE2b-256 checksum
How to use checksums
d400a6d5acc28bae51893091fb1854f903d5c9bf9e3551b0c856469769c7d0fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for rekursiv-ai-typings 0.1.3

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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