Metadata-Version: 2.5
Name: tinax
Version: 0.2.1
Summary: Reliable productivity primitives for the JAX ecosystem
Project-URL: Homepage, https://tinax.org/
Project-URL: Documentation, https://docs.tinax.org/
Project-URL: Source, https://github.com/machine-moon/tinax
Project-URL: Issues, https://github.com/machine-moon/tinax/issues
Project-URL: Changelog, https://github.com/machine-moon/tinax/blob/main/CHANGES
Project-URL: Security, https://github.com/machine-moon/tinax/security/policy
Author: Tarek Ibrahim
Maintainer: Tarek Ibrahim
License-Expression: Apache-2.0
License-File: COPYING
License-File: LICENSE
License-File: NOTICE
Keywords: chex,flax,grain,jax,optax,orbax,safetensors
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.12
Requires-Dist: chex==0.1.92
Requires-Dist: flax==0.12.12
Requires-Dist: grain==0.2.18
Requires-Dist: jax==0.12.0.1
Requires-Dist: matplotlib==3.11.2
Requires-Dist: numpy==2.5.4
Requires-Dist: optax==0.2.8
Requires-Dist: orbax-checkpoint==0.12.8
Requires-Dist: pyarrow==26.0.0
Requires-Dist: safetensors==0.8.0
Requires-Dist: wandb==0.31.0
Provides-Extra: cpu
Requires-Dist: jax[cpu]==0.12.0.1; extra == 'cpu'
Provides-Extra: cuda12
Requires-Dist: jax[cuda12]==0.12.0.1; extra == 'cuda12'
Requires-Dist: nvidia-ml-py==13.615.71; extra == 'cuda12'
Provides-Extra: cuda12-local
Requires-Dist: jax[cuda12-local]==0.12.0.1; extra == 'cuda12-local'
Requires-Dist: nvidia-ml-py==13.615.71; extra == 'cuda12-local'
Provides-Extra: cuda13
Requires-Dist: jax[cuda13]==0.12.0.1; extra == 'cuda13'
Requires-Dist: nvidia-ml-py==13.615.71; extra == 'cuda13'
Provides-Extra: cuda13-local
Requires-Dist: jax[cuda13-local]==0.12.0.1; extra == 'cuda13-local'
Requires-Dist: nvidia-ml-py==13.615.71; extra == 'cuda13-local'
Provides-Extra: oneapi
Requires-Dist: jax[oneapi]==0.12.0.1; extra == 'oneapi'
Requires-Dist: pyzes==0.1.4; extra == 'oneapi'
Provides-Extra: rocm7-local
Requires-Dist: amdsmi==7.0.2; extra == 'rocm7-local'
Requires-Dist: jax-rocm7-plugin==0.12.0; extra == 'rocm7-local'
Requires-Dist: jax==0.12.0.1; extra == 'rocm7-local'
Provides-Extra: tpu
Requires-Dist: jax[tpu]==0.12.0.1; extra == 'tpu'
Requires-Dist: tpu-info==0.14.2; extra == 'tpu'
Description-Content-Type: text/markdown

# Tinax

Tinax is a small, typed library of explicit productivity primitives for JAX, Flax NNX, Optax, Orbax, Grain, Chex, and Safetensors workflows.

It provides stable policies for array and RNG ownership, trace-budgeted compilation and batching, hardened autodiff, bounded debug observation, NNX graph copies, explicit stdlib application boundaries, deterministic input pipelines, complete checkpoints, multi-device parallelism, weight interchange, validated metrics, a Weights & Biases run lifecycle, one explicit training loop, and headless explicit-lifecycle plotting. Tested ecosystem recipes live under `examples/` without stable API guarantees.

## Requirements

- Python 3.12, 3.13, or 3.14

## Install

```bash
pip install tinax
```

Install a JAX accelerator distribution when needed. Extra names match JAX's own extras:

```bash
pip install "tinax[cuda12]"        # NVIDIA CUDA 12, bundled pip wheels
pip install "tinax[cuda13]"        # NVIDIA CUDA 13, bundled pip wheels
pip install "tinax[cuda12-local]"  # NVIDIA CUDA 12, self-installed CUDA
pip install "tinax[cuda13-local]"  # NVIDIA CUDA 13, self-installed CUDA
pip install "tinax[rocm7-local]"   # AMD ROCm 7
pip install "tinax[tpu]"           # Google Cloud TPU
pip install "tinax[oneapi]"        # Intel GPU through oneAPI
```

See the [installation guide](https://tinax.org/installation/) for platform support, `tinax[cpu]`, and accelerator details.

## Quick Start

```python
import numpy as np

from tinax.array import from_numpy, inspect_array, to_numpy

host = np.arange(8, dtype=np.float32)
device = from_numpy(host, copy=True)
info = inspect_array(device)
round_trip = to_numpy(device, writable=False)
```

Importing `tinax` alone is inert. Import the module that owns the behavior you need.

## Documentation

- [Documentation](https://tinax.org/)
- [Changelog](CHANGES)
- [Contributing](docs/contributing.md)
- [Security policy](docs/security.md)
- [Release guide](docs/releases.md)

## License

Apache-2.0. See [LICENSE](LICENSE).
