Skip to main content

Bearshape

Python 3.10-3.14 Coverage 91% Docs

Runtime shape and dtype checking for NumPy, JAX, PyTorch, CuPy, and tree-structured containers, powered by beartype.

from beartype import beartype
from bearshape import N, C
from bearshape.numpy import F32


@beartype
def normalize(x: F32[N, C]) -> F32[N, C]:
  return x / x.sum(axis=1, keepdims=True)

Bearshape turns annotations such as F32[N, C], F32Like[~B, C], F32[Value("size")], and Tree[F32[N], T] into runtime-validated contracts. Named dimensions are shared within a function call, so mismatched shapes fail at the boundary instead of later in array code.

Install

pip install bearshape

Bearshape keeps the root import lightweight. Install the array backend packages you use explicitly:

pip install bearshape numpy
pip install bearshape numpy torch
pip install bearshape numpy jax
pip install bearshape numpy cupy
pip install bearshape numpy optree

What It Checks

  • strict array type, dtype, and shape contracts
  • backend-aware Like[...] conversion checks
  • scalar-like values and constrained runtime Value(...) dimensions
  • tree leaf and structure annotations through JAX or OpTree
  • annotation syntax exercised by pyright, mypy, and ty fixtures

Public Surface

Import dimensions, Value, Scalar, DtypeSpec, check, and check_context from bearshape.

Import backend aliases from backend modules:

from bearshape.numpy import F32, F32Like
from bearshape.jax import Tree
from bearshape.torch import I64

The root package does not import NumPy or any backend. Backend modules require their own runtime dependencies.

Development

uv sync
uv run prek run -a
uv run pytest -n auto tests/
uv run pytest -n auto tests/test_typecheck.py
uv run pyright src tests/typing
uv run mypy src tests/typing
uv run ty check src tests/typing

CuPy runtime tests require a CUDA-capable environment and are deferred on CPU-only machines.

See the documentation site for the full user guide and API reference.

Metadata

Release files for bearshape 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bearshape 0.0.1
File Size Uploaded
bearshape-0.0.1.tar.gz 37.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bearshape 0.0.1
File Interpreter ABI Platform
bearshape-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 86.3 kB

Release files / bearshape-0.0.1.tar.gz

Download URL bearshape-0.0.1.tar.gz
Size 37.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f9ead28b049001e1134c0d9b79aa50579c8430b253651ce0691d446efb3e9055
BLAKE2b-256 checksum
How to use checksums
69f4128557b40f1c77fc45f1ddfe13a0c479be0a6b2b93e2206f08beaa2d84c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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 / bearshape-0.0.1-py3-none-any.whl

Download URL bearshape-0.0.1-py3-none-any.whl
Size 48.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3424e6a1b0ab1ed15ad2f6638852128328cd88b4aaa27aac649f0a114b815597
BLAKE2b-256 checksum
How to use checksums
ac7894c79d3b5e1713f8291704bf011abff89ac39d483a0e0aa23d68227caee8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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 history Release notifications | RSS feed

This release

0.0.1 This release

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