typingkit
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.
Metadata
Release files for typingkit 0.2.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| typingkit-0.2.8.tar.gz | 29.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| typingkit-0.2.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.5 kB
Release files / typingkit-0.2.8.tar.gz
| Download URL | typingkit-0.2.8.tar.gz |
|---|---|
| Size | 29.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
76f276d2e3baff1e2e1f41fde7fab3b1ef984b8ee7de8604676d272a5c54b883
|
|
BLAKE2b-256 checksum How to use checksums |
77547ed6c571cb959ca33e71672b6a8bd7077b8d98b07d547df401bfe06e49ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / typingkit-0.2.8-py3-none-any.whl
| Download URL | typingkit-0.2.8-py3-none-any.whl |
|---|---|
| Size | 37.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9150c7b29bffce3ecd2601e91f06745e5ab6d4d9386635051709aeb269a1093e
|
|
BLAKE2b-256 checksum How to use checksums |
ca02d58394a92865674e08e626805588bb8d19428a054de1587038543e5f5bf5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|