Skip to main content

Python strong typing suite, along with Typed NumPy: Static shape typing and runtime shape validation.

Project description

typingkit

Ruff

Python strong typing suite, along with Typed NumPy: Static shape typing and runtime shape validation.

[!WARNING] Experimental & WIP. See USAGE.md for more details.

Installation

Install uv (optional, recommended)

Install uv, if not already. Check here for installation instructions.

It is recommended to use uv, as it will automatically install the dependencies in a virtual environment. If you don't want to use uv, skip to the next step.

TL;DR: Just run

curl -LsSf https://astral.sh/uv/install.sh | sh
Install the package

The dependencies are listed in the pyproject.toml file. At present, the only required dependency is numpy.

Install the package from the PyPI release:

# Using uv
uv add typingkit

# Or with pip
pip3 install typingkit

To install from the latest commit:

uv add git+https://github.com/AshrithSagar/typingkit.git@main

Usage

from typing import TypeVar

from typingkit._typed.ndarray import TypedNDArray

# Shape variables are just regular TypeVar's
N = TypeVar("N", bound=int, default=int)
M = TypeVar("M", bound=int, default=int)

# Create aliases such as these, or use TypedNDArray directly
Vector = TypedNDArray[tuple[N]]
Matrix = TypedNDArray[tuple[M, N]]

v1 = Vector([1, 2, 3])  # Passes
v2 = Vector([4, 5, 6, 7])  # Also passes

v3 = TypedNDArray[tuple[int]]([[8, 9]])
# Fails, since expected 1D array but passed in a 2D array

See USAGE.md for more details.

License

This project falls under the MIT License.

Project details


Download files

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

Source Distribution

typingkit-0.2.8.tar.gz (29.5 kB view details)

Uploaded Source

Built Distribution

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

typingkit-0.2.8-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

File details

Details for the file typingkit-0.2.8.tar.gz.

File metadata

  • Download URL: typingkit-0.2.8.tar.gz
  • Upload date:
  • Size: 29.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for typingkit-0.2.8.tar.gz
Algorithm Hash digest
SHA256 76f276d2e3baff1e2e1f41fde7fab3b1ef984b8ee7de8604676d272a5c54b883
MD5 bba78857d2822c8ac69624291415a9b7
BLAKE2b-256 77547ed6c571cb959ca33e71672b6a8bd7077b8d98b07d547df401bfe06e49ce

See more details on using hashes here.

File details

Details for the file typingkit-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: typingkit-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 37.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for typingkit-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 9150c7b29bffce3ecd2601e91f06745e5ab6d4d9386635051709aeb269a1093e
MD5 263979b65a0fce77a2ea50136eb6cc49
BLAKE2b-256 ca02d58394a92865674e08e626805588bb8d19428a054de1587038543e5f5bf5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page