Skip to main content

EML-Spectral

v1.3.0 · The physics-and-algebra companion to eml-math. Pure Python core, zero required dependencies, optional Rust acceleration and C API.

Python 3.11+ License: MIT

EML-tree representations of:

  • Clifford algebras Cl(p, q) with the geometric product, rotors, and the sandwich product
  • Octonions — 8-component non-associative normed division algebra (Fano-plane multiplication)
  • Exceptional algebrasFreudenthalTripleSystem (J₃(𝕆), 27D), E7_56 (56D rep), E8_248 (adjoint), E8xE8 (heterotic)
  • Lorentz-invariant operations on EMLPoints (functional spacetime namespace)
  • Named GR metricsMetricTensor.flat / schwarzschild / flrw / ads5_x_s5 / calabi_yau_3 / klebanov_strassler / heterotic_e8x8 / g2_holonomy
  • Lattices — E₈ root lattice, Leech lattice, Planck-scale discrete helpers
  • Spectral flow — the discrete Φ operator, racetrack fixed points, the (b₃/24)·χ_eff topological invariant

Install

pip install eml-spectral

This pulls in eml-math >= 1.3.0 automatically. Zero other required deps.

Optional extras:

pip install eml-spectral[ext]        # + numpy, sympy
pip install eml-spectral[precision]  # + mpmath
pip install eml-spectral[rust]       # + maturin (to build the Rust extension)
pip install eml-spectral[dev]        # + pytest, ruff, mypy, maturin

Quickstart

from eml_math import EMLPoint
from eml_spectral import (
    EMLPair, EMLMultivector, Octonion, basis_octonion,
    FreudenthalTripleSystem, E7_56, E8_248, E8xE8,
    MetricTensor, EMLNDVector, MinkowskiFourVector, FourMomentum,
    spectral_flow, racetrack_fixed_point, topology_invariant,
)
from eml_spectral import spacetime

# Lorentz-invariant Minkowski interval (preserved under boost)
p = EMLPoint(1.0, 2.718)
print(spacetime.minkowski_delta(p))
p2 = spacetime.boost(p, 0.693)
print(abs(spacetime.minkowski_delta(p) - spacetime.minkowski_delta(p2)))   # ≈ 0

# Discrete spectral flow Φ — racetrack fixed points
traj = spectral_flow(EMLPoint(1.0, 1.0), steps=10)
print(traj[-1].x, traj[-1].y)

# Schwarzschild metric — analytic Christoffel symbols
g = MetricTensor.schwarzschild(rs=2.0)
print(g.is_curved(EMLPoint(3.0, 1.0)))                                    # True

# Octonion multiplication via the Fano plane
e1, e2, e4 = basis_octonion(1), basis_octonion(2), basis_octonion(4)
print((e1 * e2).norm())                                                   # 1.0  (= e4)

# Clifford algebra rotor — preserves quadratic form
mv = EMLMultivector([EMLPoint(1, 1)] * 4, signature=(1, -1))
R = mv.rotor(angle=0.5, plane=(0, 1))
print(abs(mv.rotate(R).quadratic() - mv.quadratic()))                      # ≈ 0

# E₈ × E₈ heterotic gauge group — analytic Cabibbo proxy
ee = E8xE8()
print(ee.portal_coupling())                                                # 1/√6
print(ee.racetrack_potential()["lambda_eff"])                              # exp(−2π/24)

What's new in v1.3.0

Layer What's added
Datasheet Get() API Uniform with eml_math.Get() / metaphysica.Get() / future periodica.Get(). eml_spectral.Get('E8_dim') returns a JSON-serialisable dict for any spectral or math constant. 167 total constants reachable via one entry point (31 spectral + 136 math, delegated).
Rust acceleration eml_spectral_core PyO3+Rayon module: octonion_mul_n, octonion_norm_n, spectral_flow_n, spectral_flow_batch, geometric_product_n, e8_norms_squared_n. Pure-Python fallback always present.
C / C++ API c_api/eml_spectral.h plus libeml_spectral.{dll,so,a} — 14 exported functions covering spectral flow, octonions, Lorentz boosts, Schwarzschild Christoffels, Clifford geometric product, lattice norms. Zero deps.
Documentation Static-HTML site under docs/ — index, API reference, user guide, mathematical concepts. Mirrors eml-math's docs style.
Tests 1166 tests (was 873) — full coverage of exceptional/, spectral flow, functional spacetime, axiom invariants, frame-shift safety, datasheet API.
Polish Versions kept in sync with eml-math v1.3.0; _HAS_RUST flag exported; pyproject classified as Production/Stable.

Datasheet API

from eml_spectral import Get, list_constants

Get('E8_dim')          # {value: 248, kind: 'dimension', source: 'eml-spectral', ...}
Get('alpha_leak')      # {value: 1/√6, formula: '1/√6', kind: 'heterotic', ...}
Get('lambda_eff')      # racetrack-stabilised modulus exp(-2π/24)
Get('leech_kissing')   # 196560 — kissing number of the Leech lattice
Get('topology_invariant')  # 144 — the conserved Φ-flow Noether charge

Get('pi')              # delegated to eml-math: math.pi with EML derivation

list_constants()       # 167 total names (spectral + math, deduplicated)

Categories surfaced via the spectral catalogue:

  • Algebra dimensions: g2_dim, f4_dim, e6_dim, e7_dim, e8_dim, e7_56, j3o_dim, octonion_dim, quaternion_dim, spacetime_dim, leech_dim
  • Lattice constants: e8_min_norm, e8_min_norm_sq, e8_kissing (240), leech_min_norm, leech_min_norm_sq, leech_kissing (196560), d4_kissing (24)
  • Topology: b3 (24), chi_eff (144), topology_invariant
  • Heterotic / racetrack: alpha_leak (= portal_coupling), lambda_eff, cabibbo_proxy, n1_flux, n2_flux
  • Spectral / G₂ seeds: edof, g2_seed_t_re, g2_seed_lambda
  • Discrete / Planck: planck_d

Optional Rust acceleration

When the wheel ships with the prebuilt extension (or you build it yourself with maturin develop --release), batch operations dispatch to Rayon-parallel Rust:

from eml_spectral import _HAS_RUST, eml_spectral_core as core

print("Rust available:", _HAS_RUST)
print(core.spectral_flow_step(1.0, 1.0))                          # → (1.0, e)
print(core.octonion_norm_n([[1, 0, 0, 0, 0, 0, 0, 0]] * 1000))     # parallel batch
print(core.e8_min_norm_squared())                                  # 2.0

To build from source:

$env:PYO3_PYTHON = "C:\path\to\python.exe"   # Windows
cargo build --release -p eml_spectral_core
# the .pyd / .so lands in target/release; copy into src/eml_spectral/

Listed via dir(eml_spectral_core):

Function Purpose
octonion_mul, octonion_mul_n, octonion_norm_n Fano-plane multiplication, batched
spectral_flow_step, spectral_flow_n, spectral_flow_batch Φ iteration, batched starts
geometric_product_n Clifford geometric product for Cl(p, q), Rayon-parallel
e8_norms_squared_n, e8_min_norm_squared, leech_min_norm_squared Lattice norms
add_n Element-wise addition (sanity check / template)

Optional C API

A standalone C shared library — no Python needed — lives under c_api/. Build:

cargo build --release -p eml_spectral_c_api

Outputs (in target/release/):

  • eml_spectral.dll (Windows) · libeml_spectral.so (Linux) · libeml_spectral.a (static)
  • c_api/eml_spectral.h — full header with extern "C" guards

Exports 14 extern "C" functions:

Topic Functions
Spectral flow els_spectral_flow_step, els_spectral_flow, els_spectral_flow_batch
Octonion els_octonion_mul, els_octonion_norm, els_octonion_mul_batch
Lorentz els_minkowski_delta, els_rapidity, els_boost, els_boost_batch
Schwarzschild els_schwarzschild_christoffel
Clifford els_geometric_product (any Cl(p, q))
Lattice els_e8_norm_squared, els_leech_norm_squared

Minimal C example (c_api/example.c):

#include <stdio.h>
#include "eml_spectral.h"

int main(void) {
    double x, y;
    els_spectral_flow_step(1.0, 1.0, &x, &y);
    printf("Phi(1, 1) = (%g, %g)\n", x, y);   /* (1.0, 2.71828) */
    return 0;
}

Build the example (Linux/macOS):

gcc example.c -L./target/release -leml_spectral -lm -o example

Documentation

docs/ contains a static-HTML site (no build step, open files directly):

  • docs/index.html — landing page with quickstart
  • docs/api.html — full API reference (every public name in __all__)
  • docs/guide.html — 11-section user guide
  • docs/concepts.html — mathematical / physics primer
  • docs/style.css — shared with eml-math for visual parity

API surface

Major exports from eml_spectral:

# Algebras
EMLPair, EMLMultivector, Octonion, basis_octonion,
FreudenthalTripleSystem, E7_56, E8_248, E8xE8

# Spacetime  (functional namespace + class wrappers)
spacetime,                         # spacetime.minkowski_delta(p), boost(p, phi), …
MinkowskiFourVector, FourMomentum

# Spectral dynamics
spectral_flow, racetrack_fixed_point, topology_invariant, G2_SEEDS,
EMLState, simulate_pulses, simulate_flips, quantized_trajectory,
verify_conservation, frame_shift_count, find_resonance_bands

# Metrics  (factories: flat / schwarzschild / flrw / ads5_x_s5 / calabi_yau_3 /
#           klebanov_strassler / heterotic_e8x8 / g2_holonomy)
MetricTensor

# Lattices
EMLNDVector, e8_lattice_points, leech_lattice_points,
planck_delta, lattice_distance, is_lattice_neighbor

# Optional Rust flag
_HAS_RUST                          # True when eml_spectral_core is importable

Why a separate package?

eml-math is the universal-math toolkit (operator, expression trees, symbolic regression, flow rendering). It stays small and physics-agnostic.

eml-spectral houses every EML-tree construction that's domain-specific to physics or exceptional algebra. Splitting them lets casual users of eml-math install the core without pulling in the algebra/physics weight, while researchers add pip install eml-spectral for the full toolkit.


Project layout

eml-spectral/
├─ src/eml_spectral/          # Python sources (pure stdlib core)
│  ├─ pair.py                 # EMLPair (two-real complex)
│  ├─ geometric_algebra.py    # EMLMultivector — Clifford Cl(p, q)
│  ├─ octonion.py             # Octonion — Fano-plane product
│  ├─ exceptional/            # FreudenthalTripleSystem, E7_56, E8_248, E8xE8
│  ├─ metric.py               # MetricTensor + 8 factories
│  ├─ ndim.py                 # EMLNDVector + E₈ / Leech lattice generators
│  ├─ discrete.py             # Planck-scale lattice helpers
│  ├─ spacetime.py            # Functional Lorentz operations
│  ├─ momentum.py             # FourMomentum
│  ├─ fourvector.py           # MinkowskiFourVector
│  ├─ state.py                # EMLState
│  ├─ simulation.py           # simulate_pulses, verify_conservation, …
│  └─ spectral_flow.py        # Φ operator + topology_invariant + racetrack
├─ rust/eml_spectral_core/    # Optional PyO3+Rayon Rust extension
├─ c_api/                     # C/C++/Rust shared library
├─ docs/                      # Static-HTML documentation
├─ tests/                     # 1116 pytest tests
└─ examples/

License

MIT — © Andrew K Watts. Based on the EML Sheffer operator established by Andrzej Odrzywolek (arXiv:2603.21852v2, CC BY 4.0).

Download files

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

Source Distribution

eml_spectral-2.3.0.tar.gz (51.1 kB view details)

Uploaded Source

Built Distributions

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

eml_spectral-2.3.0-cp313-cp313-win_amd64.whl (219.2 kB view details)

Uploaded CPython 3.13Windows x86-64

eml_spectral-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl (426.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

eml_spectral-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (372.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

eml_spectral-2.3.0-cp313-cp313-macosx_11_0_arm64.whl (317.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

eml_spectral-2.3.0-cp312-cp312-win_amd64.whl (219.1 kB view details)

Uploaded CPython 3.12Windows x86-64

eml_spectral-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl (426.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

eml_spectral-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (373.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

eml_spectral-2.3.0-cp312-cp312-macosx_11_0_arm64.whl (317.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

eml_spectral-2.3.0-cp311-cp311-win_amd64.whl (219.2 kB view details)

Uploaded CPython 3.11Windows x86-64

eml_spectral-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl (426.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

eml_spectral-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (371.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

eml_spectral-2.3.0-cp311-cp311-macosx_11_0_arm64.whl (317.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file eml_spectral-2.3.0.tar.gz.

File metadata

  • Download URL: eml_spectral-2.3.0.tar.gz
  • Upload date:
  • Size: 51.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for eml_spectral-2.3.0.tar.gz
Algorithm Hash digest
SHA256 01bb065808dd7ec98fc68a252266a16d82f8ba23ded405556b3b88eab0db935b
MD5 4b65f1c6ff5f08f92cbdc6da8d213efe
BLAKE2b-256 3f2c3f2cca1d5a60ae0f85f47ca449f62c7b0a2c67f58fa28f92a72738493952

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0.tar.gz:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c48bff7d793f6bea77c5c2162fcdb5333b663d48c1b0ef2468db20ac982451e8
MD5 6e39e5c40715946ff7d38dd0a8ca16cc
BLAKE2b-256 bdd820c02597a7180e8208bb371b7a1164e081ada7f4c3ed5cbf5ecf08bda539

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp313-cp313-win_amd64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d74fdcc679409e3feb9f762024587b82046e1da73ed7cf09737a4d5bfc0cb77d
MD5 91ed87255f7872bf318b0718f996523b
BLAKE2b-256 53fab69df5021d1d28c7ac64c8673b45fea8fc72398dccc72a2c5248cd6cf932

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 efb5f43bef38a369c4ad4fcfdfabea42cd51b6efef69fef89f5c0a746cee4dc3
MD5 d0db6d0606bb3df8d60cfd70afdfe45e
BLAKE2b-256 b0f45510ce622a3b4179e8cfed3d6f9008c9b232a8f9dc9aa3629486f23a5d59

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ee2973c73c204f622dcba81d159eef84c7f680ec67092aa1018e74b6f5fda24
MD5 e737469df3da52280b22ee05a33cbf9d
BLAKE2b-256 e3a715963aebb70f9b066f3ecf9441a4fc559074b70b634826d5df79e568f2ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 31471b49ebe6c90080e3e094b5e9635ae25944031c52f86b4f2a2886c8153e45
MD5 2279a240d47daee33ad131293c97783b
BLAKE2b-256 32f6699a49f0c7484f11c4a64c77a8c64169b21b01a9ea185c4e01e3a5629720

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp312-cp312-win_amd64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 16b87e432e3911037facc544ccc2a17bc4d8dc8c31937c0bd15e2e20a30bbc75
MD5 99c42230ecfa2496cc9314d9e682fb04
BLAKE2b-256 c8ca620dd80b4c4562586dc15bc0c622d7ad1173e5c1e8a87199b3f03ba3eb88

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf64a4f9684b874cc53607c68a980938a2757b52c5574faecdf7ba6d384f95f0
MD5 02abfe8ee5a1a5f37db60ae7f663255c
BLAKE2b-256 4d2513c34c572a00684298b82833f5dee3c86ba928e38dd4ddf190fd4143b1e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab033199b045c2970f64df904ed9c05b1b32d86b5265226b01e26c7046875af2
MD5 b667026bec5a8e311fb1cfdb00d37a32
BLAKE2b-256 d30166db3a1c59dea10494e838ca461b889a6dd39bc8bfc72f5be4fce827fe96

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dd1560df82263becc569102e91611b8b035694d89135f32af680cac15b8d7b6c
MD5 36d1ec1f6f02ba8c83cd398822bbbf52
BLAKE2b-256 f5a5fd21a35fea24d465377f164475a26d51087ce4013b4caa2aa58de7af0743

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp311-cp311-win_amd64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6c61bb3ea0a8f84d08a446b6ab3680403365813f1ac0641f2bc34a0ae380566
MD5 a393f16f0b230669bc1fa773a5f29827
BLAKE2b-256 4eb7bb6fddf2a5fe39203f12a2ebfa9232378aef9f2d0fcff5c894b122fe2717

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9f9aa254749f423d1b34626491f1fc871d28c557c8822c9abe644db780c8eb3
MD5 28b96eb0eb30aa2ceeb39dd6f6a9a740
BLAKE2b-256 8e242b52a8fb21364f3c519ee39de7ba2f204b6ff5be083e41565775287ec9c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

File details

Details for the file eml_spectral-2.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eml_spectral-2.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c908429d8164964763e9ae058ca2c2bf41aca6cf9d739826e7037096d50c2ee3
MD5 3ba12791d5853ab4c0df8a33fde8bf81
BLAKE2b-256 a41488514767505fc737233a9a5373550c48656022b781227a285c51ea0c5117

See more details on using hashes here.

Provenance

The following attestation bundles were made for eml_spectral-2.3.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: workflow.yml on andrewkwatts-maker/EML-Spectral

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

Release history Release notifications | RSS feed

This release

2.3.0 This release

13 files

2.0.2

13 files

1.3.0

2 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