What is Quadrants Typing?
A typing layer for the
quadrants, plus PEP 561 type
stubs for the quadrants package itself. Installing this one package gives
quadrants users both:
-
quadrants_typing— genericVec,Mat,NDArray, dimension, and dtype types for annotating quadrants kernels. Import it under the conventional alias:import quadrants_typing as qdt import quadrants as qd @qd.kernel def add( x: qdt.NDArray[qd.i32, qdt.Dim1], y: qdt.NDArray[qd.i32, qdt.Dim1], ) -> None: for i in range(x.shape[0]): x[i] = y[i]
-
Automatic
quadrantsstubs — type checkers (pyright, mypy) discover the bundledquadrants-stubspackage via PEP 561 with no configuration, soimport quadrantsis fully typed.
Quadrants Replacements
Type annotations replaces directly some quadrants functions, mostly from
qd.types. Here is a full table:
N,R,Cin{1,2,3,4,5,6,7,8}dtypen{qd.u8, qd.u16, qd.u32, ... etc.}
| Description | qdt version |
qd version |
Example |
|---|---|---|---|
| Concrete tensor type | qdt.NDArray[qd.<dtype>, Dim<N>] |
qd.types.NDArray[qd.<dtype>, <N>] |
qdt.NDArray[qd.i32, Dim3] |
| Templated tensor type | qdt.NDArray[T, DimAny] |
qd.types.ndarray(dtype=None, ndim=None) |
def f[T: (qd.i32, qd.f32)](arr: qdt.NDArray[T, DimAny]) |
| Vector type | qdt.Vec[qd.<dtype>, Dim<N>] |
qd.types.vector(<N>, qd.<dtype>) |
qdt.Vec[qd.f32, Dim3] |
| Matrix type | qdt.Mat[qd.<dtype>, Dim<R>, Dim<C>] |
qd.types.matrix(<R>, <C>, qd.<dtype>) |
qdt.Mat[qd.f32, Dim3, Dim4] |
| Compile-time value | qdt.Template[T] |
qd.template() |
qdt.Template[bool] |
If you would like to construct tensors with a rank greater than 8, or vectors
and matrices with any dimension longer than 8, you can. See weird_hacks
example for how to create the annotation, or use qd.types.vector or
qd.types.matrix if you only need a constructor (e.g. for a local array).
Examples
Runnable, annotated example programs live in examples/. Run one by name:
pixi run example init_ndarray
How Finished is This?
Not at all! There's lots of work still to be done :P. Please help!
Omissions
Names present in quadrants that we intentionally do not stub in qdt, with
the reason / recommended alternative:
Intentional
qd.types.struct: usedataclasses.dataclassqd.types.NDArray: superseded byqdt.NDArray[qd.<dtype>, Dim<N>]qd.types.ndarray: superseded byqdt.NDArray[T, DimAny]qd.types.Template: superseded byqdt.Template[T]qd.template: superseded byqdt.Template[T]
Todo
qd.types.ref: todo(real_func)qd.types.quant.*(int,float,fixed): todo(field)qd.types.sparse_matrix_builder: todo(sparse_matrix)quadrants.lang.simt.grid,.tile_slicing: todo(simt) —simt.block,.warp,.subgroup(incl. itsreductions/sortingre-exports) are stubbed
Release files for quadrants-typing 0.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quadrants_typing-0.2.6.tar.gz | 19.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quadrants_typing-0.2.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.5 kB
Release files / quadrants_typing-0.2.6.tar.gz
| Download URL | quadrants_typing-0.2.6.tar.gz |
|---|---|
| Size | 19.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b435c116c0cd4abaa3b0e679e75972d3884c11e3e02f9f827ed999514f77ec1
|
|
BLAKE2b-256 checksum How to use checksums |
43bd39425524231430aa95fd991dac1efcf90aaa2fd45185f67c1fd29c9cefce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / quadrants_typing-0.2.6-py3-none-any.whl
| Download URL | quadrants_typing-0.2.6-py3-none-any.whl |
|---|---|
| Size | 28.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef0b4446e99c175dc5e530bae1d49b014dd96b2c1a56ec7b323b441ce97442cb
|
|
BLAKE2b-256 checksum How to use checksums |
41f87cfc4eca49920234a16df862f80cdf87abd529b715ed0404031ec94230c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log