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!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quadrants_typing-0.1.0.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quadrants_typing-0.1.0-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file quadrants_typing-0.1.0.tar.gz.

File metadata

  • Download URL: quadrants_typing-0.1.0.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quadrants_typing-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e843800bd94d8f4bc2f02aeb3c86284d01d46d9be9962de09d149394382e957
MD5 3477094be06d576ed06b9501c65fc0e7
BLAKE2b-256 b8e0bc98d2ad4e1c4db34b82543635eec92db221f9c63d49f2f289c2a994cd07

See more details on using hashes here.

Provenance

The following attestation bundles were made for quadrants_typing-0.1.0.tar.gz:

Publisher: publish.yml on D0liphin/quadrants-typing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quadrants_typing-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for quadrants_typing-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 707647a774a386b6051bb22759f1c2360cafe4b06b11d238a990f6aa9cd7c8c1
MD5 00f9d2b714c23422084e400e9b1214aa
BLAKE2b-256 c1e449dbdda7fb8d4576571c0ac5fbe9f8baf779df9ce8399969bfcf488044f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for quadrants_typing-0.1.0-py3-none-any.whl:

Publisher: publish.yml on D0liphin/quadrants-typing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.0 This release

2 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