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.4

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.4
File Size Uploaded Provenance Actions
rekursiv_ai_typings-0.1.4.tar.gz 2.3 MB Without provenance Details for rekursiv_ai_typings-0.1.4.tar.gz

Built distribution (wheel)

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

Total release size: 7.1 MB

Release files / rekursiv_ai_typings-0.1.4.tar.gz

Download URL rekursiv_ai_typings-0.1.4.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
a5ab336eb8911ddf3e8f0d210d9f94cb8e83a49aa3931bb180708e3f699a8548
BLAKE2b-256 checksum
How to use checksums
d21ca777b59d98ea222a1d61fc8daceb3c7bff00f30ee4c4039e7c80055a68bd
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.4-py3-none-any.whl

Download URL rekursiv_ai_typings-0.1.4-py3-none-any.whl
Size 4.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
43a76606fa02ffa517041e85ddd496e039a3bfe55e83145b9fac2e46f87b7656
BLAKE2b-256 checksum
How to use checksums
b3e7243ab70a223e613cf802525c034c58e353541444c25b10fc6a70a11ac94c
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.4

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