Skip to main content

C++ core rewrite of common Xponge workflows with a Python compatibility layer

Project description

XpongeCPP

Docs / 文档入口

XpongeCPP is a new C++ implementation of common Xponge workflows with a thin Python compatibility layer.

The original Xponge repository is used only as a reference implementation and regression baseline. This repository does not share the original Python object model internally.

Installation

PyPI-style installation target

The packaging target is:

pip install XpongeCPP

After installation, both of these should work:

import XpongeCPP
import Xponge

The wheel is configured to include both:

  • src/XpongeCPP
  • src/Xponge

so old Xponge package-name imports can continue to work after installation.

Automatic optional chemistry dependencies

The package now declares a practical default dependency set for pip users:

  • numpy
  • PubChemPy
  • MDAnalysis
  • rdkit
  • pyscf on non-Windows platforms
  • XpongeLib

Windows automatically skips pyscf through environment markers.

XpongeLib is included so legacy gaff.parmchk2_gaff(...) workflows can resolve the XpongeLib bridge automatically after installation.

See:

GitHub Actions packaging matrix

The repository CI currently builds packages on:

  • Linux x64: ubuntu-24.04
  • Linux arm64: ubuntu-24.04-arm
  • macOS Intel: macos-15-intel
  • macOS arm64: macos-15
  • Windows x64: windows-2025

Validation is split into two layers:

  • all platforms run a minimal wheel smoke test with numpy installed
  • Linux x64 additionally runs a full dependency install smoke test

This keeps wheel validation broad across operating systems and CPU architectures without making every matrix job depend on the full optional chemistry stack.

v1 Scope

  • Amber-first force-field workflows.
  • Flat C++ storage with Molecule, Residue, and ResidueType view semantics.
  • Common Python entry points such as load_pdb, load_mol2, Add_Solvent_Box, Set_Box_Padding, Save_SPONGE_Input, and Assign.
  • Numeric equivalence goals for SPONGE input, not byte-for-byte compatibility.

Development Environments

The lightweight development path still uses rtk uv:

rtk uv pip install -e . --force-reinstall --no-cache-dir
rtk uv run pytest -q

Full Assign validation needs optional chemistry backends. Use pixi for a reproducible environment with RDKit, PubChemPy, and PySCF:

pixi run install-dev
pixi run test-assign-full
pixi run test-resp
pixi run test

PubChem network tests remain opt-in through the test environment; default Pixi tests use local mocks or dependency checks and do not require live network access.

Documentation

Packaging roadmap note

The current repository uses a hand-written GitHub Actions workflow plus scripts/build_pypi.py for packaging validation. We are deliberately keeping this simpler workflow for now because it makes the Xponge/XpongeCPP dual package layout and the minimal-vs-full smoke split easy to audit.

cibuildwheel is still a good future option once the wheel matrix and release policy stabilize further, but it is not the current default.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xpongecpp-0.1.2.tar.gz (6.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xpongecpp-0.1.2-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

File details

Details for the file xpongecpp-0.1.2.tar.gz.

File metadata

  • Download URL: xpongecpp-0.1.2.tar.gz
  • Upload date:
  • Size: 6.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xpongecpp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e86ad63bac71d352320ee6097ea775426fe6ad8f1434770c019c056b29f1b0f1
MD5 0c46970187745b9cd3db74fc32fb0ec3
BLAKE2b-256 24b716fc3a7d0457a6119cbdfc615a1017a6a15c1de984f40dc1e102f438fcef

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.1.2.tar.gz:

Publisher: publish-pypi.yml on yuhaosimba/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: xpongecpp-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xpongecpp-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bf9ec268a3d8de96986dd41c2420edc2324cec168d6586809a3e8b4723f14536
MD5 7051fb4e7f62e40604bbf2475bd3febc
BLAKE2b-256 b75a5b838a09a34b58ccefd33340f9143a496644bc9e561ad92bbd3080f1abae

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on yuhaosimba/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 53a9431ba17935380005ea9c4f8995ea064ec63be9e41a4d0b65f6748a4df347
MD5 473850c5188cdddef0aaed2e8017862b
BLAKE2b-256 ff3bb75c67264f80b8ee61f6bbde41fafade6c6ffe06a439764bafabc2912abf

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on yuhaosimba/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6559782143c3a9056e26d19fe0bd167cad2f1b71af74c5527a63208a858ec0b5
MD5 6b4da5192d1ab79f0a3c70a472dad8f0
BLAKE2b-256 d764fb15a50a27d7e509d4d99cb7b079a96b6205bae60e4ea267f503b62836d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on yuhaosimba/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f1baa47f820083e53e4a78199302883d4396cb87d8adf285eee8f3f672a529f0
MD5 6f9e7811f7526989374b45fb391efd14
BLAKE2b-256 7f5c45dc51bb0d49832f4bb62f8060b8bef9b46898f0cdfacef0d1856eccb16b

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl:

Publisher: publish-pypi.yml on yuhaosimba/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 75341730b35c3e6d32529dfec246d5775dcd489fe4c268b17bb5d23276f08101
MD5 257649dcc78a43dd59c0e902f3d67201
BLAKE2b-256 40a63d3f0a5a072f0a842cb7bddf4225e94886ffb07baf44f6cd9b2b5060206e

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on yuhaosimba/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page