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.4.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.4-py3-none-any.whl (353.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: imas_standard_names-0.8.4.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.4.tar.gz
Algorithm Hash digest
SHA256 419f18e858cddc9a8933591bd74fcbf16272c08700418f8a3055b6205245a6e7
MD5 a53ce7142700c9abd372d2beb2b8c669
BLAKE2b-256 6bdc1995c8a7a7640d6271283f274924d5911e7316cb83aba69056198d9b45c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for imas_standard_names-0.8.4.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.4-py3-none-any.whl.

File metadata

File hashes

Hashes for imas_standard_names-0.8.4-py3-none-any.whl
Algorithm Hash digest
SHA256 716f6853a3b96f509ed567972a92805f81e2b571db81a3e4ee94139757c591b2
MD5 7300649158fe13929402a83cee88ddcb
BLAKE2b-256 9e7fc54b4e41126373128f9a0965121435a1ea5f83d8fab4761dca44c203d72d

See more details on using hashes here.

Provenance

The following attestation bundles were made for imas_standard_names-0.8.4-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