pyeonclient on PyPI

pyeonclient is a separate PyPI project from eon-akmc. Distribution follows the torch model: wheels and sdist on PyPI; optional fat Metatomic builds against PyPI torch, not a conda-forge gate.

Project

Import

Contents

eon-akmc

eon

Server (AKMC)

pyeonclient

pyeonclient

Client core: Matter, Parameters, Potential, Jobs, NEB, RGPOT

Wheel variants

Variant

Meson

Torch in wheel NEEDED?

Use

base (default CI)

with_rgpot=true, with_metatomic=false

No

LJ/EMT/… + RGPOT (dlopen engines)

metatomic

with_metatomic=true, with_rgpot=true

Yes (links libtorch stack)

Fat Metatomic pot + engine

pip install pyeonclient                 # base
pip install 'pyeonclient[metatomic]'    # runtime torch stack (extras only)
# fat linked extension:
PYEONCLIENT_VARIANT=metatomic ./scripts/pyeonclient_build_wheel.sh

Probes::

import pyeonclient as pyec
pyec.built_with_rgpot()
pyec.built_with_metatomic()

Matrix (GIL + free-threaded)

Artifact

Tag

Stable ABI base

cp312-abi3-manylinux_*

Free-threaded 3.13t

cp313t-manylinux_*

Free-threaded 3.14t

cp314t-manylinux_*

Metatomic (optional CI)

same abi3 tag, built with pip install torch in manylinux

Files

File

Role

pyproject-pyeonclient.toml

Package identity, extras, default meson args

scripts/pyeonclient_prepare_pyproject.sh

Swap root pyproject for builds

scripts/pyeonclient_build_wheel.sh

Local base/metatomic wheel build

.github/workflows/pyeonclient-wheels.yml

CI wheels + sdist + publish

Release

  1. Bump version in pyproject-pyeonclient.toml and client/python/bind/module.cpp __version__ (lockstep). Pin pyeonclient[models]eon-schema floor if schema public API changed.

  2. Tag: git tag -s pyeonclient-v0.3.3 -m "pyeonclient 0.3.3"

  3. Push tag → pyeonclient-wheels.yml builds and publishes (CI publish job).

Cookbook / RGPOT metatomic

  • Fat: built_with_metatomic() True → potential = Metatomic.

  • Thin host: base wheel + potential = RGPOT, backend = metatomic, engine_path / RGPOT_METATOMIC_ENGINElibmetatomic_engine.so (engine may be produced by a metatomic-variant build).

Neither path requires conda-forge.