Skip to main content

pre-commit Ruff Python versions CI/CD status Coverage status Documentation

IMAS Standard Names

Grammar library for IMAS Standard Names — a controlled vocabulary for fusion data variables.

This repository owns the grammar: the controlled vocabulary, the parser and renderer, catalog validation, and the documentation site. AI-assistant tools over standard names are served by imas-codex.

Quick Start

pip install imas-standard-names

Python Library

from imas_standard_names import StandardNameIR, compose, parse
from imas_standard_names.repository import StandardNameCatalog

catalog = StandardNameCatalog()
entry = catalog.get("electron_temperature")
print(f"{entry.name}: {entry.unit}{entry.description}")

# Strict parsing is the validity oracle for both flat names and recursive
# operator expressions.
result = parse("square_of_inverse_of_pressure", strict=True)
assert isinstance(result.ir, StandardNameIR)
assert [operator.op for operator in result.ir.operators] == ["square", "inverse"]
assert compose(result.ir) == "square_of_inverse_of_pressure"

Installation

The tools and catalog are distributed separately:

Package Purpose
imas-standard-names Grammar library, parser, validation
imas-standard-names-catalog Standard names catalog (YAML + SQLite)

Basic Installation

# Tools + catalog (recommended)
pip install imas-standard-names[catalog]

# Tools only
pip install imas-standard-names

Catalog Options

The catalog can be accessed in several ways:

# Option 1: Install catalog package (recommended)
pip install imas-standard-names-catalog

# Option 2: Download pre-built database
wget https://github.com/iterorganization/imas-standard-names-catalog/releases/latest/download/catalog.db
export STANDARD_NAMES_CATALOG_DB=./catalog.db

# Option 3: Clone catalog repository (for development)
git clone https://github.com/iterorganization/imas-standard-names-catalog.git
export STANDARD_NAMES_CATALOG_ROOT=./imas-standard-names-catalog/standard_names

Development Setup

git clone https://github.com/iterorganization/imas-standard-names.git
cd imas-standard-names
uv sync

Architecture

This project uses a two-repository architecture:

Name generation is handled by imas-codex, which uses ISN's grammar API to mint candidates.

This separation allows independent versioning — catalog content, tooling, and generation logic evolve separately.

Documentation

Full documentation: iterorganization.github.io/IMAS-Standard-Names

Python API

Entry point Purpose
imas_standard_names.parse(name, strict=True) Authoritative validation for flat and recursively ordered grammar
imas_standard_names.parse(name) Diagnostic parse into a lossless StandardNameIR
imas_standard_names.compose Render a StandardNameIR into its canonical spelling
imas_standard_names.StandardNameIR Public recursive representation; operator lists are outermost first
imas_standard_names.grammar.model.parse_standard_name Strict-validating projection into the flat StandardName facade; may reject a valid ordered tree it cannot represent
imas_standard_names.validate_round_trip Diagnostic parse/render drift check; not a validity test
imas_standard_names.grammar.context.get_grammar_context Grammar rules and vocabulary for LLM pipelines
imas_standard_names.repository.StandardNameCatalog Query the catalog
imas_standard_names.canonical_unit Canonical unit authority
standard-names (CLI) Build, search, and serve the catalog site
validate_catalog (CLI) Check catalog integrity and grammar compliance

Tools that expose these over the Model Context Protocol live in imas-codex.

License

MIT

Download files

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

Source Distribution

imas_standard_names-0.8.8.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

imas_standard_names-0.8.8-py3-none-any.whl (356.1 kB view details)

Uploaded Python 3

File details

Details for the file imas_standard_names-0.8.8.tar.gz.

File metadata

  • Download URL: imas_standard_names-0.8.8.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for imas_standard_names-0.8.8.tar.gz
Algorithm Hash digest
SHA256 d491fb72ee42f7af8487240381b6cda9b4f94a00ee4d90959ad61fba38cfb295
MD5 99d5a8e8c3f8512fc808b33178b95f4c
BLAKE2b-256 c5ed786b657402b185aa10dfe3579101ff6a3723eec78002f6fb409cfccee1fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for imas_standard_names-0.8.8.tar.gz:

Publisher: release.yml on iterorganization/IMAS-Standard-Names

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file imas_standard_names-0.8.8-py3-none-any.whl.

File metadata

File hashes

Hashes for imas_standard_names-0.8.8-py3-none-any.whl
Algorithm Hash digest
SHA256 61b0ee6186c301c86f8b1ce88636bb5d5393efd6e5c1710c71273f294f4aab3e
MD5 d1a51001cec810244a1bc65151374418
BLAKE2b-256 fe6c91cd9738a72783a8e1945cc9326f9bbb83fb6aff9fb93fd5a4570dd37197

See more details on using hashes here.

Provenance

The following attestation bundles were made for imas_standard_names-0.8.8-py3-none-any.whl:

Publisher: release.yml on iterorganization/IMAS-Standard-Names

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.
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