Skip to main content

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 — generic Vec, 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 quadrants stubs — type checkers (pyright, mypy) discover the bundled quadrants-stubs package via PEP 561 with no configuration, so import quadrants is fully typed.

Quadrants Replacements

Type annotations replaces directly some quadrants functions, mostly from qd.types. Here is a full table:

  • N,R,C in {1,2,3,4,5,6,7,8}
  • dtype n {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: use dataclasses.dataclass
  • qd.types.NDArray: superseded by qdt.NDArray[qd.<dtype>, Dim<N>]
  • qd.types.ndarray: superseded by qdt.NDArray[T, DimAny]
  • qd.types.Template: superseded by qdt.Template[T]
  • qd.template: superseded by qdt.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. its reductions/sorting re-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)

Source distribution for quadrants-typing 0.2.6
File Size Uploaded
quadrants_typing-0.2.6.tar.gz 19.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quadrants-typing 0.2.6
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.6 This release

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

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