Skip to main content

manykinds

The typed data-kind vocabulary for the latent-reasoning stack.

A kind is a self-describing data object that guards its own structure — it validates on construction and refuses an op that demands structure it lacks, instead of being a bare array whose axes you have to trust. manykinds is the small, shared package that defines that vocabulary so independent tools can interoperate through it without depending on each other.

It's the same pattern as anndata in single-cell or the Array API standard for array libraries: one light package everyone agrees on, rather than each tool inventing (or embedding) its own data contract.

What's in it

  • Kind — a @runtime_checkable structural protocol (provenance, require, tagged). Orchestrators type their ops against it; a concrete kind is substitutable iff it offers the three members — no inheritance required. Lives in manykinds.base and imports without the array stack.
  • LabeledArray — an xarray.DataArray with named dims + dim-aligned coords. The canonical kind for cell×gene matrices and embeddings. Dense and sparse.COO-backed arrays both serialize to zarr (validating on read).
  • SparseGraph — a graph as numpy arrays (an E×2 integer edge list + node ids, plus optional edge_weights for weighted/signed graphs like GRNs). .npz.
  • FileArtifact — an opaque reference to a file a tool produced (path + format + checksum). The escape hatch for outputs the vocabulary doesn't model structurally: carry the file through a pipeline unchanged.
  • Table — heterogeneous columnar data (a pandas DataFrame) for mixed-dtype tables like AnnData obs/var. Parquet persistence (manykinds[table] extra).
  • Sequence — biological sequences over an alphabet (DNA/protein), with optional ids. .npz.
  • KindSpec — a data-free structural signature (kind name + dims + coords). spec_a.satisfies(spec_b) is the plan-time mirror of Kind.require, so an orchestrator can type an op's inputs/outputs and check a chain is valid before running it. A concrete kind reports its own signature via .spec().

Usage

import xarray as xr, numpy as np
from manykinds import Kind, LabeledArray

la = LabeledArray(
    xr.DataArray(
        np.random.randn(100, 2000),
        dims=("cell", "gene"),
        coords={"time": ("cell", np.zeros(100, dtype=int))},
    )
)

isinstance(la, Kind)                       # True — structural, no inheritance
la.require("cell", "gene", coords=("time",))   # precondition gate; raises if absent
la = la.tagged("pca")                      # append to the immutable provenance trail
la.serialize("embedding.zarr")             # dense or sparse; validates on load

Who depends on it

  • Producers (dataset adapters like manylatents-omics, model wrappers, tool shims) construct kinds from their own formats.
  • Orchestrators (e.g. an op registry / planner) type their ops against Kind and chain a producer's output into a consumer's require.

The vocabulary is deliberately small and stable — it changes far more slowly than the tools that speak it.

License

MIT

Metadata

Release files for manykinds 0.1.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 manykinds 0.1.1
File Size Uploaded Provenance
manykinds-0.1.1.tar.gz 16.5 kB With provenance Details

Built distribution (wheel)

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

Total release size: 31.6 kB

Release files / manykinds-0.1.1.tar.gz

Download URL manykinds-0.1.1.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
154e0f9a3bf008b01a3ba5b161e423d678f493d5cb582532ffe9527c18bb0de5
BLAKE2b-256 checksum
How to use checksums
74858cd4d08c6a31f9c1c08ce80e78f62950709c52bceaf4d1f40f3fbf92f77d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

Release files / manykinds-0.1.1-py3-none-any.whl

Download URL manykinds-0.1.1-py3-none-any.whl
Size 15.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5efbb8874b86857dbcee5d06706c73dfdfee3285d0acb5dc68261c151eb20742
BLAKE2b-256 checksum
How to use checksums
b8e8f6f1660e6dda86db23fcd4d060680b2f71b9a7bcbd942f9e17ac7a853158
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

Security for manykinds 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for manykinds-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

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