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.9.0.tar.gz (1.4 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.9.0-py3-none-any.whl (362.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: imas_standard_names-0.9.0.tar.gz
  • Upload date:
  • Size: 1.4 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.9.0.tar.gz
Algorithm Hash digest
SHA256 8f71d9c45333b1f0481c4d98c9a50e125a22c33de81d95440c03b400166e90f6
MD5 d47913365220dcbd9e16249e3a24482d
BLAKE2b-256 37d751f302e9b44ff2dcefc88ca25c0b54dbe797cbab4b7a9de703bceaf3b961

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for imas_standard_names-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1bd9f1e6d3c92c2db2ab402baae30d64d43a282ba25b5ef265300b859a02dd02
MD5 86acf7f8f56bf75ffb2beb67ddf0edfb
BLAKE2b-256 784ab4ab8ee54308421d5dc45a81f7df75fc71a93e47473a35832efc08faa569

See more details on using hashes here.

Provenance

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