Shared eOn L0 Cap'n Proto SSoT, L1 job-config pydantic models, and L2 API specs for eon-akmc + pyeonclient
Project description
eon-schema
Shared schema package for both eon-akmc and pyeonclient. One home for:
| Layer | Module | Role |
|---|---|---|
| L0 | eon_schema.ssot |
Cap’n Proto field graph (vendored from monorepo schema/) |
| 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.schemare-exports L1 for Sphinx / legacy imports. - pyeonclient —
pyeonclient[models]pullseon-schema;pyeonclient.modelsre-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
from eon_schema.ssot import capnp_path, load_catalog
# 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(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 Cap'n Proto + catalog
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eon_schema-0.2.2.tar.gz.
File metadata
- Download URL: eon_schema-0.2.2.tar.gz
- Upload date:
- Size: 40.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5065f03b0504d7b5738c5f28abd18f1defad76858dd04ef35cbc231b59056248
|
|
| MD5 |
e8cf3b540be5fac7a017e7ec6ca3dee4
|
|
| BLAKE2b-256 |
c69ad9bdb36ef1519e507558082188fda4b30ba59e691f1c5c3c63989e09b5d2
|
Provenance
The following attestation bundles were made for eon_schema-0.2.2.tar.gz:
Publisher:
eon-schema-publish.yml on TheochemUI/eOn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eon_schema-0.2.2.tar.gz -
Subject digest:
5065f03b0504d7b5738c5f28abd18f1defad76858dd04ef35cbc231b59056248 - Sigstore transparency entry: 2190576040
- Sigstore integration time:
-
Permalink:
TheochemUI/eOn@5303d56b8a592a49a8b3b7e09a828ac9ca2e2d43 -
Branch / Tag:
refs/heads/release/eon-schema-0.2.2 - Owner: https://github.com/TheochemUI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
eon-schema-publish.yml@5303d56b8a592a49a8b3b7e09a828ac9ca2e2d43 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file eon_schema-0.2.2-py3-none-any.whl.
File metadata
- Download URL: eon_schema-0.2.2-py3-none-any.whl
- Upload date:
- Size: 42.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fa42f895e81de7011f3354df90269547b9d5e528744d95b7a6e462f1664abfe
|
|
| MD5 |
9d19818c1314c52ec7c99302e93f1476
|
|
| BLAKE2b-256 |
ba0ea23db94a1f7df1f23f06fe61b2dbbf74e1ff28fe172439f3ec833374a130
|
Provenance
The following attestation bundles were made for eon_schema-0.2.2-py3-none-any.whl:
Publisher:
eon-schema-publish.yml on TheochemUI/eOn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eon_schema-0.2.2-py3-none-any.whl -
Subject digest:
5fa42f895e81de7011f3354df90269547b9d5e528744d95b7a6e462f1664abfe - Sigstore transparency entry: 2190576078
- Sigstore integration time:
-
Permalink:
TheochemUI/eOn@5303d56b8a592a49a8b3b7e09a828ac9ca2e2d43 -
Branch / Tag:
refs/heads/release/eon-schema-0.2.2 - Owner: https://github.com/TheochemUI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
eon-schema-publish.yml@5303d56b8a592a49a8b3b7e09a828ac9ca2e2d43 -
Trigger Event:
workflow_dispatch
-
Statement type: