typing-utils
utils to inspect Python type annotations
Decision gist · record as of 2026-08-14
No, unless you are maintaining legacy code on Python 3.6–3.7. For Python 3.8+, use the standard library's typing.get_origin and typing.get_args instead. The package is abandoned (last commit November 2022, no releases since May 2021) and offers no advantages over maintained alternatives or built-in functionality. If you do need it for legacy support, the lack of security vulnerabilities and permissive license make it safe to use, but expect no future maintenance.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.6.1 or later.
- Many of these utilities are now available in the standard library (typing.get_origin, typing.get_args in Python 3.8+), so check whether you actually need this backport.
- Low install friction with no runtime dependencies.
License · maintenance · safety
Apache License 2.0 (permissive) — Licensed under Apache License 2.0, a permissive license. You may use, modify, and distribute the package freely in commercial and private projects, provided you include a copy of the license and state significant changes.
last release 2021-05-23 (1909 days) · last repo commit 2022-11-09 · 12 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,016,273 downloads/mo, #4,500 on PyPI
Alternatives
Verify before relying
pip install typing-utils
from typing_utils import issubtype, get_origin, get_args
import typing
# Check if list is a subtype of typing.Sequence
result = issubtype(list, typing.Sequence)
# Get the origin of a generic type
origin = get_origin(typing.List[int])
# Get type arguments
args = get_args(typing.Dict[str, int])- Whether issubtype handles all edge cases correctly for complex nested and recursive types in production use
- Compatibility with Python versions beyond 3.9 (last tested version in classifiers)
- Whether standard library equivalents in Python 3.8+ make this package redundant for your use case
What it is and what it does
typing-utils is a utility library for inspecting and validating Python type annotations. It provides four main functions: issubtype() checks whether one type is a subtype of another (including support for unions, nested types, and forward references); get_origin() extracts the unsubscripted base of a generic type; get_args() retrieves the type arguments from a parameterized type; and get_type_hints() resolves type hints while handling forward references and optional defaults.
The package was designed as a backport of typing utilities for Python 3.6 and 3.7, but many of its functions now exist in the standard library for Python 3.8+. It has no runtime dependencies and installs cleanly, but development stopped in 2021 and the repository is no longer maintained. Before adopting it, verify whether the standard library or a more actively maintained alternative meets your needs.
Use it for
- Validate that function argument types conform to expected type hierarchies in runtime type-checking frameworks
- Introspect generic types to extract their origin and arguments for dynamic type processing or serialization
- Resolve forward references in type hints when working with recursive or mutually-referential type definitions
- Support type checking on Python 3.6–3.7 where standard library typing utilities are incomplete
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No, unless you are maintaining legacy code on Python 3.6–3.7.
For Python 3.8+, use the standard library's typing.get_origin and typing.get_args instead. The package is abandoned (last commit November 2022, no releases since May 2021) and offers no advantages over maintained alternatives or built-in functionality. If you do need it for legacy support, the lack of security vulnerabilities and permissive license make it safe to use, but expect no future maintenance.
Install
typing-utils on PyPI
Before you install
Low install friction with no runtime dependencies. However, the package is abandoned—last commit was 2022-11-09 and no releases since 2021-05-23. Consider whether its functionality is already available in your target Python version's standard library before adopting.
Requires Python 3.6.1 or later. Many of these utilities are now available in the standard library (typing.get_origin, typing.get_args in Python 3.8+), so check whether you actually need this backport.
License in practice
Licensed under Apache License 2.0, a permissive license. You may use, modify, and distribute the package freely in commercial and private projects, provided you include a copy of the license and state significant changes.
Quickstart
pip install typing-utils
from typing_utils import issubtype, get_origin, get_args
import typing
# Check if list is a subtype of typing.Sequence
result = issubtype(list, typing.Sequence)
# Get the origin of a generic type
origin = get_origin(typing.List[int])
# Get type arguments
args = get_args(typing.Dict[str, int])
Verify before relying
- Whether issubtype handles all edge cases correctly for complex nested and recursive types in production use
- Compatibility with Python versions beyond 3.9 (last tested version in classifiers)
- Whether standard library equivalents in Python 3.8+ make this package redundant for your use case
Package facts
| License | Apache License 2.0 permissive |
| Python support | Supports the current Python release >=3.6.1 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 1,909 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,016,273 / month, #4,500 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 2 - Pre-AlphaOperating System :: OS IndependentProgramming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPython |
Evidence: typing_utils-0.1.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “issubtype type checking”
- typing-utilsProvides utilities to inspect and validate Python type annotations,…
- typeguardPerforms run-time type checking for Python functions and objects…
- types-grpcio-health-checkingProvides type stubs for grpcio-health-checking, enabling static type…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also annotated-types · eval-type-backport · type-enforced · typing-inspect · typish · typing-inspection · inspect2 · flake8-type-checking · typing-json · sigtools