Skip to main content

Quantum Decision Engine (QDE) — models how beliefs evolve into decisions under uncertainty

Project description

Atto — Quantum Decision Engine

Atto — Quantum Decision Engine

Atto is a Python SDK that implements a Quantum Decision Engine (QDE) — a system that models how beliefs evolve into decisions under uncertainty.

Where Atto Fits

Think of a modern decision stack in three layers:

Layer Role Question it answers
RAG Retrieval What is true / relevant right now?
Mapper Belief formation What do I currently believe?
Atto (QDE) Decision evolution How do beliefs evolve into decisions?

RAG surfaces the right context. The mapper turns that context into a belief state. Atto takes that belief state and evolves it — through competing strategies, interfering signals, and collapsing uncertainty — into a decision.

Core Mental Model

context → belief state → evolving reasoning → decision

A belief state is not a static snapshot. It's a superposition of possible strategies, shaped by incoming signals, where the final decision emerges through a process analogous to quantum measurement.

How Atto Differs

Traditional systems:

features → probability → decision

Features are treated as independent inputs. A model produces a score. You threshold it.

Atto:

signals → evolving state → decision

Signals are not independent — they interfere with each other. The state evolves over time. The decision is not a score; it's the collapse of a rich, structured uncertainty.

Intuition

  • Decisions emerge from competing latent strategies. The system holds multiple possible actions in superposition until evidence forces a commitment.
  • Signals interact, not independently. A price signal and a forecast signal don't just add up — they interfere, amplifying or cancelling each other depending on context.
  • Order of information matters. Receiving a forecast before a price update produces a different evolved state than the reverse. This is non-commutativity — and it reflects how real decisions work.
  • Final decisions are a collapse of uncertainty. Measurement extracts a concrete action from a continuously evolving belief state, much like observation in quantum mechanics.

Example: Energy Dispatch

Given battery state, node forecast, congestion, and confidence — should we charge, hold, or discharge?

In Atto, this looks like:

  1. Initialise a belief state from the current battery and market context.
  2. Apply operators for each incoming signal — forecast, congestion, confidence — each one evolving the state.
  3. Interference between signals shapes the evolved state (e.g. high confidence in a low-price forecast amplifies the "charge" strategy).
  4. Measure the final state to collapse it into a decision: charge, hold, or discharge.

The decision isn't a lookup table or a weighted sum. It emerges from the dynamics of how the signals shaped the belief state.

Architecture

atto/
├── core/          # Domain-agnostic math engine
│   ├── state      # Belief state representation and manipulation
│   ├── operators  # Signal operators that evolve states
│   ├── dynamics   # State evolution logic
│   └── measurement# Collapse / decision extraction
├── learning/      # Mapping layer
│   └── ...        # Parameter learning, calibration
├── viz/           # 3D visualization of the decision process
│   ├── wave       # Interference pattern computation and plotting
│   └── pipeline   # Animated pipeline visualization
└── scenarios/     # Domain-specific logic
    └── energy/    # Energy dispatch mappings
  • Core engine — Pure mathematical logic: state spaces, operators, evolution, measurement. Reusable across any domain. Built on numpy.
  • Learning layer — Maps real-world signals to operators and calibrates the engine from data.
  • Scenarios — Domain-specific translations. Each scenario defines how raw inputs become signals, which operators to apply, and how to interpret the collapsed decision. Scenarios never modify core math.

Getting Started

pip install -e .

For built-in visualization support:

pip install -e ".[viz]"

For the hosted licence + usage emission (see "Hosted licence" below):

pip install -e ".[console]"

Hosted licence

By default, AttoEngine looks at the environment to decide whether to talk to the Atto Console:

Variable Purpose Default
ATTO_API_KEY Org-scoped API key from the console required for hosted mode
ATTO_ORG_ID Your organisation ID required for hosted mode
ATTO_CONSOLE_BASE_URL Console origin https://console.atto-qde.com

If both ATTO_API_KEY and ATTO_ORG_ID are set and the console extra is installed, the SDK transparently:

  1. Calls the console licence endpoint before each decide() call.
  2. Emits a UsageEvent to the console after each decision.

Otherwise, the SDK runs in offline mode with no-op licence and usage implementations — no network calls, no environment dependencies.

import os
from atto import AttoEngine, AttoOperator

os.environ["ATTO_API_KEY"] = "atto_live_..."
os.environ["ATTO_ORG_ID"] = "org_..."

engine = AttoEngine(dimension=3, labels=["charge", "hold", "discharge"], org_id=os.environ["ATTO_ORG_ID"])
engine.add_operator(AttoOperator.phase_shift(3, [0.5, 0.0, -0.3]))
decision = engine.decide()  # licence-checked + usage-emitted

Explicit offline opt-out

To force offline mode regardless of environment, inject the no-op pair:

from atto import AttoEngine, NoOpLicenceValidator, NoOpUsageEmitter

engine = AttoEngine(
    dimension=3,
    labels=["charge", "hold", "discharge"],
    validator=NoOpLicenceValidator(),
    emitter=NoOpUsageEmitter(),
)

For the full quickstart and signup flow, see the atto-qde-docs site.

Visualization

Atto ships a viz module that renders the QDE decision process as 3D wave interference surfaces. Each strategy (charge, hold, discharge) acts as a wave source — their complex amplitudes create an interference pattern that reshapes as signals arrive and the belief state evolves.

Quick Start

import numpy as np
from atto.scenarios.energy.adapter import EnergyBatteryAdapter
from atto.viz import PipelineVisualizer

adapter = EnergyBatteryAdapter(signal_strength=1.0)
viz = PipelineVisualizer(
    adapter,
    signal_names=["Price signal", "Congestion signal", "Confidence signal"],
)

context = np.array([0.85, 0.15, 0.70, 0.90])

Static Pipeline Trajectory

One panel per stage — initial belief, after each signal operator, after constraints, and collapse:

fig = viz.plot_static(context)

Animated Pipeline

Smooth 3D animation showing the interference surface morphing through each stage, with a probability bar chart tracking strategy distributions. The final collapse uses a smoothstep transition where all amplitude concentrates onto the winning strategy:

# In a script / interactive window
viz.show(context)

# In a Jupyter notebook
from IPython.display import HTML
anim = viz.animate(context)
HTML(anim.to_jshtml())

Single Belief State

Plot the interference pattern of any AttoState:

from atto.core.state import AttoState
from atto.viz import plot_interference

state = AttoState.uniform(3, labels=["charge", "hold", "discharge"])
plot_interference(state, title="Uniform superposition")

Pipeline Introspection

Access intermediate states for custom analysis or visualization:

states, stage_names, decision = viz.run_pipeline(context)

for name, state in zip(stage_names, states):
    print(f"{name}: P = {state.probabilities}")
print(f"Decision: {decision.label} (confidence={decision.confidence:.3f})")

API Reference

Function / Class Purpose
PipelineVisualizer(adapter) One-call wrapper — runs pipeline and visualizes
.animate(context) Returns FuncAnimation (3D surface + probability bars)
.show(context) Animate + plt.show()
.plot_static(context) Multi-panel static figure
.run_pipeline(context) Returns (states, stage_names, decision)
plot_interference(state) Single state → 3D surface
plot_trajectory(states) Sequence of states → side-by-side panels
compute_interference(amplitudes) Raw numpy computation → (X, Y, Z)

Design Philosophy

  • Functions are small and composable.
  • Clarity over optimisation.
  • The core engine knows nothing about energy, finance, or any specific domain.
  • Every decision emerges from state evolution — never from direct prediction.

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.

atto_qde-0.3.0-cp312-cp312-win_amd64.whl (448.0 kB view details)

Uploaded CPython 3.12Windows x86-64

atto_qde-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

atto_qde-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

atto_qde-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (472.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

atto_qde-0.3.0-cp312-cp312-macosx_10_13_x86_64.whl (478.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

atto_qde-0.3.0-cp311-cp311-win_amd64.whl (459.7 kB view details)

Uploaded CPython 3.11Windows x86-64

atto_qde-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

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

atto_qde-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.3 MB view details)

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

atto_qde-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (475.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

atto_qde-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl (477.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

atto_qde-0.3.0-cp310-cp310-win_amd64.whl (461.9 kB view details)

Uploaded CPython 3.10Windows x86-64

atto_qde-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

atto_qde-0.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

atto_qde-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (481.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

atto_qde-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (486.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file atto_qde-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: atto_qde-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 448.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atto_qde-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 494b6f35a3fdfe9a8729b7652af6238e9840acf4d37da7fb14a4766387d4adec
MD5 ac896fc2d3ece2bfcd89321aa546b252
BLAKE2b-256 20e7c9bbb83bedc548571ed0c505833d29c64925c6c8ec603baa28615c7f3d09

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d1d1a9c16908a3338445284b14d26ef8ed2d3d4c80f1afc22f64ef987c0a731
MD5 9a1a462eaa871115ceb2862a992867d7
BLAKE2b-256 0159966c360187d863c7e323deca3ec3a79ae105821e5bc4624bf5d7dd77384e

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e7a51be46d4c5e726da45ddc2b80e0ce5687db3c76360a71edb9bcbe7d019fee
MD5 3f88a317e54fee5b728b0059f36fcf0a
BLAKE2b-256 0e2e430e2526b3a8164499eee47aba68cd213d9f56d4a7e3d23479ef97be4815

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b76f42b05e0bfa5115e5e870302413b2b9f0fa6b0c8d92c95abb285e8f846a89
MD5 07418948ff757fd66f64e4c932a217d3
BLAKE2b-256 3727cde675c8a407cb1afb2c039df18a7fd55766d5d9d29be5ef6441e05fbd32

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a49e18b5287542d93a897d71a7d7c935269ef0d42b04b5cb8c14ad8d31cbc091
MD5 68c459274354acff0d2f2ce85de08b5e
BLAKE2b-256 fa83ab0293da0b9e032a6382e20ffec9372a3b9fdd4dcdc04bd6637c6356e5b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: atto_qde-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 459.7 kB
  • 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 atto_qde-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e5d8931c94422ba552dcf7b04bb6e82772c1a0a1d6e528fe82c21f64edcbbc06
MD5 0eb33dbbc85a8a73208ef3fb20261640
BLAKE2b-256 c1467125394a3223fffe112d6a99269ad988b192df6d1fcd7af3acc84eb6cd6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f4ded005eb91ff1008680c2aff488050ad484d972131b52cbdd89327fdedf2ef
MD5 e89b30f3876e6f30f77a0c353b8eb4a5
BLAKE2b-256 8c79a7543970b7cbdb736b2ccb2ff103b18239423ae33f5c75ef3539d43f0f65

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a28deced8b7ed1fa63d46ce0c0bb3f04023086e31f434719fc1a89a212c88b94
MD5 42b6b41418eaecb1d45b2e162f856e1f
BLAKE2b-256 49c258aa62b7b6f399a568a522a4e9575c894f4fce22424f7a91cf28a5215343

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30a728ac32a290168a07248a9c9cc947162f6303ef06f33da773e07698031dc8
MD5 7d4421b26f936969af522931adc5bcbe
BLAKE2b-256 646e8bede0efe6a831ea09a8b3e2b7b9deb00079196ccffea050992d3deadd2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 179aa6dec9895d0bf01f177bbd91738a1e03df4bfd3f8349558425e4ebe8bdcc
MD5 eb81ba535231fcc7d497dc7b48ea8ccd
BLAKE2b-256 3e1f33f2c2659a1b39717822aa48f5dd20a2bdac60b1a89a24fbd719b726a061

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: atto_qde-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 461.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atto_qde-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 451d7ce80e7dcd0f46e829525887b0e74f357d7e203018b0d7b2118718903634
MD5 abc99277a8bce4e481b53212c58bee0e
BLAKE2b-256 64bc775e6f645bac1ad24072f395e7768174b6feea3c3e6b928c3fa2c4ed3d3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5e7f1def2a6b3eb59c96858011518469a5981860703713fc2d6f0701fa7608b
MD5 d26bcc95fbed9b25e3f90feeb9e550a3
BLAKE2b-256 1102ff0c830ec21006d5d5450bbc727bde4002b65c7744e464dda37ad2fdde4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c04bb4c064ad9771165902f5793b59ec2a8593876cf02aa17161de3959f95dcf
MD5 8560361d1dddb53e0d519f2f8d18977e
BLAKE2b-256 fbe4a88c46a208dacf3fa9e3b1b14d9d17c12332374eb985443948034b7a97a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fd9b61706f6776dfd1a15a4360bce36d98f3543c5e55c733fc5e05ddd01a547
MD5 4ab72612f15e54153a7f2bfb10c83e01
BLAKE2b-256 81c9c283eb9d93e0626e3afc98e1debbc4d76b06d37e85f797f5a7a94adf8918

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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

File details

Details for the file atto_qde-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for atto_qde-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 544c4671bebdce07abbb0325ab4421fc1dce5b99fbe09b5a76c96dbddbee27b6
MD5 f73110956db9d2d14e045e15283c60c5
BLAKE2b-256 aada404b54061799c04c9cef84953e8f7a6b505d10625b9009a5be7803a6cf02

See more details on using hashes here.

Provenance

The following attestation bundles were made for atto_qde-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on atto-labs/atto-qde

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