Skip to main content

typetoolbox

typetoolbox provides runtime utilities for inspecting Python generics and resolving TypeVar bindings.

Installation

uv add typetoolbox

Core APIs

  • GenericTypeMap: map TypeVar names to concrete runtime types for a generic class/alias.
  • get_generic_mapping(obj_or_type): build a GenericTypeMap from a class, alias, or object instance.
  • resolve_typevars(tp, mapping_source, strict=False): recursively resolve TypeVars in nested type expressions.
  • find_specializations(base_generic, where=None): find subclasses that fully close a base generic.
  • inspect_specializations(base_generic, include_generic=False, where=None): inspect subclasses with rich mapping metadata.
  • find_specializations_by_args(base_generic, args): return exact-arg specializations.
  • build_specialization_index(base_generic): map resolved arg tuples to implementations.
  • try_to_map_generic_args_to_specialization(generic_type, specialization_type): map generic args onto a concrete specialization.

Example

from typing import Generic, TypeVar

from typetoolbox import GenericTypeMap, find_specializations, resolve_typevars

X = TypeVar("X")
Y = TypeVar("Y")


class Pair(Generic[X, Y]):
    pass


class IntStrPair(Pair[int, str]):
    pass


mapping = GenericTypeMap(IntStrPair)
assert resolve_typevars(dict[X, list[Y]], mapping) == dict[int, list[str]]
assert find_specializations(Pair) == [IntStrPair]

Metadata

Release files for typetoolbox 0.4.0

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

Source distribution (sdist)

Source distribution for typetoolbox 0.4.0
File Size Uploaded
typetoolbox-0.4.0.tar.gz 61.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for typetoolbox 0.4.0
File Interpreter ABI Platform
typetoolbox-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 73.1 kB

Release files / typetoolbox-0.4.0.tar.gz

Download URL typetoolbox-0.4.0.tar.gz
Size 61.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2d72b2b24389e2d23ab8d1ba4132285493fc3884afd006950ba525fe9d3357c4
BLAKE2b-256 checksum
How to use checksums
ff259b1fbd56714cad55eac2ad541aa7e4eca621010f242defc1596b866d8b7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / typetoolbox-0.4.0-py3-none-any.whl

Download URL typetoolbox-0.4.0-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5435b992632535f519b55b9df6498cb1fd1e1b9e71b4120615c77c81cc3901e9
BLAKE2b-256 checksum
How to use checksums
3dc329efcdf05fcd70472fcee5b3c002834929ce2f5db1f6e5072dcbcd3cf650
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

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