Skip to main content

Python bindings for Apollo FFT

Project description

apollo-python

PyO3 bindings for the Apollo workspace.

Distribution

GitHub Releases tagged apollo-fft-v<version> build locked Linux, Windows, and universal macOS wheels, install and import each artifact, attach the validated wheel set and SHA-256 checksums to the release, and publish the same wheels to apollo-fft on PyPI through OIDC Trusted Publishing. The tag version must equal the apollo-python Cargo package version; Python metadata reads that Cargo version rather than maintaining a second version field.

Architecture

src/
  domain/          Python-facing domain boundary marker
  application/     binding orchestration boundary marker
  infrastructure/  host/runtime integration boundary marker
  lib.rs           PyO3 module, class, and function exports

apollo-python is an adapter crate. It owns Python type conversion, contiguity validation, error translation into PyValueError, and PyO3 module registration. The mathematical single sources of truth remain in the owning Rust crates:

  • apollo-fft owns CPU FFT plans, precision profiles, full-spectrum 1D/2D/3D execution, and real-to-complex helpers.
  • apollo-fft owns WGPU backend capability discovery surfaced through available_backends() and backend_capabilities().
  • apollo-nufft owns exact and fast NUFFT execution.

The binding layer does not implement transform kernels. It validates Python array layout, maps precision strings to Apollo PrecisionProfile values, and delegates computation to the owning crate APIs.

Mathematical Contract

FFT bindings preserve Apollo's normalization convention: forward transforms are unnormalized and inverse transforms divide by the transformed volume. The rfft3 and irfft3 functions expose Apollo's full-spectrum real transform contract rather than a half-spectrum NumPy compatibility surface.

NUFFT bindings preserve the owning crate's uniform-domain contracts. Positions, values, grid spacing, output shape, and kernel width are validated before delegation; invalid contracts are returned as Python value errors.

Precision Contract

Python callers select precision with:

  • high_accuracy: f64/complex128 storage and f64 compute.
  • low_precision: f32/complex64 storage and f32 compute.
  • mixed_precision: f32 Python input converted to f16 storage for Apollo's mixed f16/f32 path where exposed by the owning FFT plan.

Storage/profile mismatches are rejected before transform execution. WGPU capability metadata reports the backend precision profiles that are actually available on the host.

Verification

This crate is verified through workspace checks and the PyO3 unit target:

  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace --all-targets

The workspace tests cover Python binding compilation, backend capability metadata shape, full-spectrum rfft3/irfft3 value semantics, contiguity rejection paths, and delegated CPU/WGPU/NUFFT API compatibility.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

apollo_fft-0.2.0-cp38-abi3-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.8+Windows x86-64

apollo_fft-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

apollo_fft-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (8.2 MB view details)

Uploaded CPython 3.8+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file apollo_fft-0.2.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: apollo_fft-0.2.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for apollo_fft-0.2.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4eef82e6a1fb1f5e94be3c25a970b52e04cea7be069b91d5211e23935acef4f8
MD5 ff60d72a219685481d04b340bc676bc6
BLAKE2b-256 2c6cc68e35f14a8180624d589af6dfa7f34df14fbefada6bef873315da92d7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for apollo_fft-0.2.0-cp38-abi3-win_amd64.whl:

Publisher: python-release.yml on ryancinsight/apollo

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

File details

Details for the file apollo_fft-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for apollo_fft-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 245d5f6ed5842f573da9ea8a8d68fcb4cf47d43e28693fe5cc488f7940776b0a
MD5 ac1e2599fd7b5a58eb5a8b988ed01370
BLAKE2b-256 422999d1ce658701e4b094293fb6c4fd56c8a62d5c0d1c844f1a3ea6274bba28

See more details on using hashes here.

Provenance

The following attestation bundles were made for apollo_fft-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: python-release.yml on ryancinsight/apollo

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

File details

Details for the file apollo_fft-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for apollo_fft-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 6db8dec05067e3d1b55a109f5d715b891aced05494c58cdbe99d0f8f3ecdcac9
MD5 309ce748b88427e9be3721265aac534a
BLAKE2b-256 491f8d8deed7696cf308b8c151142e182e4bcad61584ee7d7af2f8919f463b2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for apollo_fft-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: python-release.yml on ryancinsight/apollo

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