isqx
Units and quantity kinds defined by ISO/IEC 80000 and other subfields.
Decision gist · record as of 2026-08-14
Yes, if you work with scientific or engineering code and want to document physical units in type annotations without runtime cost. The zero-dependency design (at annotation time) and optional utilities make it suitable for both pure documentation and runtime unit conversion. Active maintenance and MIT licensing add confidence. Not necessary for projects that don't deal with physical quantities or already use heavier wrapper libraries.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; type annotations are ignored at runtime, so static type checkers are needed to validate unit correctness.
- Low install friction with a single lightweight runtime dependency (typing-extensions).
- Active maintenance with recent releases; currently at Alpha status (Development Status :: 3).
License · maintenance · safety
permissive license (permissive) — MIT license (permissive); no restrictions on commercial or private use, modification, or distribution.
last release 2025-12-16 (241 days) · last repo commit 2026-03-31 · 2 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 97,669 downloads/mo, #13,135 on PyPI
Alternatives
Verify before relying
pip install isqx
from typing import Annotated, TypeVar
import isqx
_T = TypeVar("_T")
M = Annotated[_T, isqx.M]
def calculate_distance(height: M[float]) -> M[float]:
return height * 2- Whether the package's interactive visualizer and documentation examples work reliably across all supported Python versions.
- Performance characteristics when used with large numpy arrays or in JAX/functional transformation pipelines at scale.
- Adoption and stability of the ISQ/ISO 80000 standard implementation—whether all quantity kinds are correctly defined.
What it is and what it does
isqx is a metadata-only library for documenting physical units and quantity kinds in Python code using type annotations. It defines units (kg, knots, pascal) and quantity kinds (mass, velocity, static pressure) based on the International System of Quantities, allowing developers to attach semantic meaning to function arguments and dataclass fields without wrapping numerical types at runtime. Because annotations are metadata only, Annotated[np.ndarray, isqx.M] is treated as np.ndarray by Python and external libraries, ensuring zero performance overhead and full interoperability.
The library is designed primarily for code documentation via PEP 593 type hints, but also includes optional runtime utilities: unit conversion (with dimension checking and exact arithmetic support), simplification of unit expressions into canonical form, and extensible formatting. It has a single lightweight runtime dependency and can be used as an optional dependency in downstream projects by placing imports in TYPE_CHECKING blocks.
Use it for
- Annotate scientific function signatures with physical units to catch dimensional mismatches at type-check time without runtime overhead.
- Document dataclass fields with quantity kinds (e.g., GEOPOTENTIAL_ALTITUDE, STATIC_PRESSURE) to encode domain-specific metadata in type hints.
- Convert between compatible unit systems (e.g., feet per minute to meters per second) with dimension validation and exact or approximate arithmetic.
- Simplify complex unit expressions into flat canonical form to compute dimensions and verify dimensional consistency.
- Use as an optional typing dependency in libraries, allowing downstream users to inspect unit metadata at runtime without hard-depending on isqx.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with scientific or engineering code and want to document physical units in type annotations without runtime cost.
The zero-dependency design (at annotation time) and optional utilities make it suitable for both pure documentation and runtime unit conversion. Active maintenance and MIT licensing add confidence. Not necessary for projects that don't deal with physical quantities or already use heavier wrapper libraries.
Install
isqx on PyPI
Before you install
Low install friction with a single lightweight runtime dependency (typing-extensions). Active maintenance with recent releases; currently at Alpha status (Development Status :: 3).
Requires Python 3.9 or later; type annotations are ignored at runtime, so static type checkers are needed to validate unit correctness.
License in practice
MIT license (permissive); no restrictions on commercial or private use, modification, or distribution.
Quickstart
pip install isqx
from typing import Annotated, TypeVar
import isqx
_T = TypeVar("_T")
M = Annotated[_T, isqx.M]
def calculate_distance(height: M[float]) -> M[float]:
return height * 2
Verify before relying
- Whether the package's interactive visualizer and documentation examples work reliably across all supported Python versions.
- Performance characteristics when used with large numpy arrays or in JAX/functional transformation pipelines at scale.
- Adoption and stability of the ISQ/ISO 80000 standard implementation—whether all quantity kinds are correctly defined.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetyping-extensions |
| Maintenance | Actively maintained 241 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 97,669 / month, #13,135 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Typing :: Typed |
Evidence: isqx-0.1.2-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 › “physical units type annotations”
- isqxisqx provides type-annotation-friendly metadata objects for physical…
- typedunitsImplements unit of measurement arithmetic with static type checking…
- quantitiesQuantities handles arithmetic and unit conversions for physical…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
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.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also quantities · ansys-units · Pint-Pandas · Pint · measurement · typedunits · quantulum3 · ucumvert · pint-xarray · binary