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

Uploaded Python 3

File details

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

File metadata

  • Download URL: imas_standard_names-0.8.5.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.5.tar.gz
Algorithm Hash digest
SHA256 2234f3ce337255e7bdf03c22e45ff8eaf76e0d76d21e8e359580456d48924a88
MD5 24b4c0b29db8b8088335c399d14ceae9
BLAKE2b-256 ce6ff68fd832c411459c53945213e5818fcff2e1f9eb205823a8f0796f3bda7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for imas_standard_names-0.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 84d4ca41f83c23e52c5d5c7e2017930c60699e3ea9f4f5316065fb2b539a79d7
MD5 b4f6ea966514c2ed6c994d960f5099e6
BLAKE2b-256 46547ad6ee5a73776d89e82c0f9ca636bfe9f7aabd71ef295a317275882e09bc

See more details on using hashes here.

Provenance

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