Skip to main content

eon-schema

Shared schema package for both eon-akmc and pyeonclient. One home for:

Layer Module Role
L0 eon_schema.ssot Cap’n Proto params field graph (vendored from monorepo schema/)
L0 eon_schema.jobs Cap’n Proto JobRequest / JobResult / Geometry, results.dat adapters, Landfold trajectory manifests
L1 eon_schema.config Full job-config pydantic models (MainConfig, Metatomic, Config, …)
L2 eon_schema.api / fields In-process specs (DimerSpec, NebSpec, enums)

Consumers:

  • eon-akmc — depends on eon-schema; eon.schema re-exports L1 for Sphinx / legacy imports.
  • pyeonclient — pyeonclient[models] pulls eon-schema; pyeonclient.models re-exports L2.

Do not re-author job models under eon/ or duplicate L2 under pyeonclient/.

Fat tree vs this package

Fat monorepo tarball This PyPI package
Purpose conda-forge eon, full C++/server builds Shared Python schema for both clients
Cap’n Proto Full monorepo including schema/ Vendored under src/eon_schema/ssot/
L1 models Also present via eon.schema re-export Authoritative under eon_schema.config
Feedstock Uses fat tarball only Not required for 0.2.x

L0 authoring is monorepo schema/eon_params.capnp. After edits:

python tools/params_ssot/codegen.py
./packages/eon-schema/scripts/sync_ssot_into_package.sh

L1 authoring is packages/eon-schema/src/eon_schema/config/models.py. Keep field parity with L0 for covered sections (tests/test_params_ssot.py).

See PUBLISHING.md for fat vs split release trains.

Install

pip install eon-schema            # L0 + L1 + L2 (pydantic is a hard dep)
# monorepo:
pip install -e packages/eon-schema

Quick use

# L0 params
from eon_schema.ssot import capnp_path, load_catalog

# L0 job envelope
from eon_schema.jobs import job_result_capnp_path, results_dat_to_dict

# L1 (same objects as eon.schema.*)
from eon_schema.config import MainConfig, Metatomic, Config

# L2 (same objects as pyeonclient.models.*)
from eon_schema.api import DimerSpec
from eon_schema.fields import MinModeMethod, Accelerant

print(capnp_path())
print(job_result_capnp_path())
print(MainConfig().job)
print(DimerSpec(method=MinModeMethod.improved, accelerant=Accelerant.gp).core_kwargs())

eon-akmc / Sphinx still use:

from eon.schema import MainConfig, Metatomic  # re-export

pyeonclient still uses:

from pyeonclient.models import DimerSpec, NebSpec  # re-export

Layout

src/eon_schema/
  ssot/          # L0 vendored params Cap'n Proto + catalog
  jobs/          # L0 JobRequest/JobResult schema + results.dat adapters
  config/        # L1 job-config models (models.py)
  fields/        # enums
  api/           # L2 DimerSpec, NebSpec
  _deps.py

INI helpers (config write without eon-akmc)

from eon_schema.config import (
    MainConfig,
    PotentialConfig,
    DimerConfig,
    write_models_ini,
    write_ini,
    hydrate_ini,
    unknown_ini_keys,
    defaults_from_catalog,
)

# L1 models → config.ini (Dimer L1 prefixes mapped to INI keys)
write_models_ini(
    "config.ini",
    MainConfig(job="saddle_search"),
    PotentialConfig(potential="lj"),
    DimerConfig(dimer_improved=True),
    extra={"Debug": {"write_movies": True}},
    validate=True,
)

# Or raw sections (rgpycrumbs-style) with L0 hydrate + key check
user = {"Main": {"job": "minimization", "temperature": 400}}
cfg = hydrate_ini(user, base_sections=["Main", "Optimizer"])
assert not unknown_ini_keys(cfg)
write_ini("config.ini", cfg)

print(defaults_from_catalog("Main")["job"])

Downstream: rgpycrumbs should depend on eon-schema for write_eon_config / seed_dimers / MLflow log_params instead of full eon-akmc.

Metadata

Release files for eon-schema 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eon-schema 0.2.4
File Size Uploaded
eon_schema-0.2.4.tar.gz 63.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eon-schema 0.2.4
File Interpreter ABI Platform
eon_schema-0.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 130.7 kB

Release files / eon_schema-0.2.4.tar.gz

Download URL eon_schema-0.2.4.tar.gz
Size 63.9 kB
Tags Source
SHA-256 checksum
How to use checksums
70aedbf3fc514315a845c795d925f64f4767ac75602885a5394e40f167e48fee
BLAKE2b-256 checksum
How to use checksums
45e16d2273fa32b70714a3e14b3a4d1d397e94a288e2efb823a8dd61b7b92740
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 4, 2026.

Transparency log

Release files / eon_schema-0.2.4-py3-none-any.whl

Download URL eon_schema-0.2.4-py3-none-any.whl
Size 66.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87b5af17e0a01ac5d0714df49041ff9681e5bd2265e363edbb654aed64d5937a
BLAKE2b-256 checksum
How to use checksums
7955ca45612cae850465aafdce6341301f78e8f7d165550c997af70660e079f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

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