dexed-py
Python bindings for the Dexed DX7 synthesizer. Supports high-level patch editing, sysex import/export, and low-level parameter arrays.
Dexed is licensed under the GPL v3, and so is dexed-py. The msfa component (src/msfa) is Apache 2.0 licensed. The algorithm chart (docs/dx7_algorithms.svg) is MIT, so it can be reused outside a GPL context.
Requirements
- Python >= 3.11
- Platforms: macOS, Linux, Windows
- Runtime dependency: NumPy
- Optional: JAX — for PyTree integration and
jax.pure_callbackworkflows
Installation
pip install dexed-py
Quick Start
Using the Patch API
Patch is the human-friendly interface — parameters use native DX7 ranges and string names. Use it for sound design, sysex import/export, and interactive exploration.
from dexed import Patch, DexedSynth
patch = Patch(name="My Sound")
patch.algorithm = 15 # 0-31
patch.feedback = 5
patch.op[0].output_level = 99
patch.op[0].envelope.rates = [99, 85, 35, 50]
patch.op[0].envelope.levels = [99, 75, 0, 0]
patch.lfo.wave = "sine"
synth = DexedSynth(sample_rate=44100)
synth.load_patch(patch)
audio = synth.render(midi_note=60, velocity=100, note_duration=1.0, render_duration=1.5)
Loading DX7 Sysex Files
from dexed import Patch
# Load a 32-voice bank (a 4104-byte .syx bulk dump, or a raw 4096-byte payload)
patches = Patch.load_bank("rom1a.syx")
for i, p in enumerate(patches[:5]):
print(f" {i}: {p.name.strip()} (algorithm {p.algorithm})")
# Save patches back to a bank file
Patch.save_to_bank("my_bank.syx", patches)
ML / JAX Workflow with Preset
Preset is the ML-native representation: a single (145,) float32 vector covering all synth state. Continuous parameters are normalized to [0, 1]; discrete parameters (algorithm, curves, etc.) are integer-valued. All fields are JAX PyTree data leaves — changing any value, including algorithm, never triggers JIT recompilation.
import numpy as np
from dexed import Patch, Preset, DexedSynth
# From a sysex bank
preset = Patch.load_bank("rom1a.syx")[0].to_preset()
# Or construct directly (continuous params normalized [0, 1])
preset = Preset(
algorithm=15,
feedback=0.5,
op_output_level=np.full(6, 0.8, dtype=np.float32),
)
synth = DexedSynth()
synth.load_preset(preset)
audio = synth.render(midi_note=60, velocity=100)
# Flat array round-trip
arr = preset.to_array() # (145,) float32
preset2 = Preset.from_array(arr)
# Bulk storage: 100k presets ~ 55 MB
bank = np.stack([p.to_array() for p in presets]) # (N, 145)
np.save("bank.npy", bank)
presets = [Preset.from_array(row) for row in np.load("bank.npy")]
JAX pure_callback
The synth can be called non-differentiably from JIT-compiled JAX code via jax.pure_callback.
import jax
from jax import numpy as jnp
from dexed import DexedSynth, Preset
SAMPLE_RATE = 44100
NOTE_DURATION = 0.5
RENDER_DURATION = 1.0
NUM_SAMPLES = int(SAMPLE_RATE * RENDER_DURATION)
synth = DexedSynth(sample_rate=SAMPLE_RATE)
def render_fn(preset):
synth.load_preset(preset)
return synth.render(midi_note=60, velocity=100,
note_duration=NOTE_DURATION, render_duration=RENDER_DURATION)
@jax.jit
def jitted_render(preset):
return jax.pure_callback(
render_fn, jax.ShapeDtypeStruct((NUM_SAMPLES,), jnp.float32), preset,
)
audio = jitted_render(Preset(algorithm=0, feedback=0.5))
# Changing algorithm does NOT recompile — all fields are data leaves
audio2 = jitted_render(Preset(algorithm=15, feedback=0.3))
For flat-vector policies (Beta distribution over the 145-dim space):
_, treedef = jax.tree.flatten(Preset()) # universal — no meta fields
@jax.jit
def render_from_flat(flat_params): # (145,) float32
preset = jax.tree.unflatten(treedef, Preset.array_to_leaves(flat_params))
return jax.pure_callback(render_fn, jax.ShapeDtypeStruct((NUM_SAMPLES,), jnp.float32), preset)
Algorithm Metadata
from dexed import (
algorithms, get_carriers, get_modulators, get_mod_matrix, get_feedback_edge,
)
alg = algorithms[15]
print(f"carriers: {alg.carriers}")
print(f"modulators: {alg.modulators}")
print(f"modulation matrix:\n{alg.mod_matrix}") # 6x6 int8
get_carriers(31) # [0, 1, 2, 3, 4, 5] — all parallel
feedback_edge is a (source, target) pair of operator indices. Most algorithms
feed an operator back into itself, so source == target:
get_feedback_edge(0) # (5, 5) — DX7 algorithm 1, op 6 into itself
get_feedback_edge(17) # (2, 2) — DX7 algorithm 18, op 3 into itself
Two algorithms are different: their feedback wraps a whole chain rather than a single operator, so the pair has two distinct operators.
get_feedback_edge(3) # (3, 5) — DX7 algorithm 4, op 4 back into op 6
get_feedback_edge(5) # (4, 5) — DX7 algorithm 6, op 5 back into op 6
All indices are 0-based, so operator index i is DX7 operator i + 1.
Individual Operator Outputs
synth.load_patch(patch)
audio = synth.render_all_ops(midi_note=60)
# audio.shape = (7, T): channels 0-5 are operators 0-5, channel 6 is final mix
Feedback Normalization
By default, normalize_feedback is False, which preserves Dexed-authentic behavior: algorithms 3, 5, and 31 (DX7 algorithms 4, 6, 32) have reduced feedback strength, matching the original hardware. Set it to True for consistent feedback scaling across all 32 algorithms, which is useful when feedback should be comparable regardless of algorithm choice (e.g. in ML pipelines).
synth.normalize_feedback = True # consistent across all 32 algorithms
Custom Operator Graphs
OperatorGraph lets you build arbitrary FM topologies — not limited to the 32 standard DX7 algorithms, and not limited to 6 operators.
from dexed import OperatorGraph
graph = OperatorGraph(num_ops=7)
for i in range(7):
graph.op[i].output_level = 99
for i in range(6, 0, -1):
graph.connect(i, i - 1)
graph.set_carriers([0])
graph.set_feedback(6, 6, level=7)
audio = graph.render(sample_rate=44100, midi_note=60, velocity=100,
note_duration=1.0, render_duration=1.5)
# From a modulation matrix
import numpy as np
mod_matrix = np.zeros((4, 4), dtype=np.float32)
mod_matrix[0, 1] = 1.0 # Op 1 modulates Op 0
graph = OperatorGraph.from_matrix(mod_matrix, carriers=[0], feedback={(3, 3): 5})
# From a standard DX7 algorithm (0-indexed)
graph = OperatorGraph.from_algorithm(15)
# Visualize the graph
print(graph.summary())
print(graph.to_ascii())
print(graph.to_mermaid()) # paste into any Mermaid renderer
API Reference
Patch
patch = Patch(name="My Sound")
patch.algorithm = 15 # 0-31
patch.feedback = 5 # 0-7
patch.osc_key_sync = True
patch.transpose = 24 # 0-48 (24 = C3)
patch.lfo.speed = 35 # 0-99
patch.lfo.delay = 0
patch.lfo.pitch_mod_depth = 0
patch.lfo.amp_mod_depth = 0
patch.lfo.sync = False
patch.lfo.wave = "sine" # triangle, saw_down, saw_up, square, sine, s&h
patch.pitch_envelope.rates = [99, 99, 99, 99]
patch.pitch_envelope.levels = [50, 50, 50, 50]
op = patch.op[0] # 0-indexed: op[0] through op[5]
op.output_level = 99 # 0-99
op.frequency_coarse = 1 # 0-31
op.frequency_fine = 0 # 0-99
op.frequency_mode = 0 # 0=ratio, 1=fixed
op.detune = 7 # 0-14 (7 = center)
op.velocity_sensitivity = 0 # 0-7
op.amp_mod_sensitivity = 0 # 0-3
op.rate_scaling = 0 # 0-7
op.breakpoint = 39 # 0-99
op.left_depth = 0 # 0-99
op.right_depth = 0 # 0-99
op.left_curve = "lin" # lin, exp-, exp+, log
op.right_curve = "lin"
op.envelope.rates = [99, 99, 99, 99]
op.envelope.levels = [99, 99, 99, 0]
Patch — Format Conversion
# Patch <-> Preset
preset = patch.to_preset()
patch = preset.to_patch()
patch = Preset.from_patch(patch) # classmethod alternative
# Sysex (156 bytes unpacked, 128 bytes packed)
sysex = patch.to_sysex()
patch = Patch.from_sysex(sysex_bytes)
packed = patch.to_packed()
patch = Patch.from_packed(packed_bytes)
# Bank (32-voice .syx files)
patches = Patch.load_bank("bank.syx")
Patch.save_to_bank("bank.syx", patches)
# Raw DX7 format (155 integers in native ranges)
raw = patch.to_raw()
patch = Patch.from_raw(raw_params)
Preset
See docs/parameter-format.md for the full array layout and the per-operator interface.
from dexed import Preset
import numpy as np
preset = Preset(
algorithm=15, # 0-31
feedback=0.71, # 5/7
osc_key_sync=1, # 0 or 1
lfo_sync=0,
lfo_wave=4, # 0-5 (sine)
op_output_level=np.ones(6, dtype=np.float32),
op_frequency_mode=np.zeros(6, dtype=np.int32), # 0=ratio, 1=fixed
op_left_curve=np.zeros(6, dtype=np.int32), # 0-3
op_right_curve=np.zeros(6, dtype=np.int32),
)
arr = preset.to_array() # (145,) float32
preset = Preset.from_array(arr)
# Per-operator decomposition (useful for per-operator ML architectures)
gc = preset.global_continuous() # (15,) float32
gi = preset.global_ints() # (4,) int32
oc = preset.op_continuous() # (6, 18) float32
oi = preset.op_ints() # (6, 3) int32
preset = Preset.from_operator_bundles(gc, gi, oc, oi)
DexedSynth
synth = DexedSynth(sample_rate=44100)
synth.load_patch(patch) # from Patch
synth.load_preset(preset) # from Preset
synth.algorithm # read-only: currently loaded algorithm (0-31)
synth.normalize_feedback # bool, read-write (default False)
audio = synth.render(midi_note=60, velocity=100,
note_duration=1.0, render_duration=1.5)
audio = synth.render_all_ops(midi_note=60) # (7, T)
OperatorGraph
graph = OperatorGraph(num_ops=6)
# Connection API (all methods return self for chaining)
graph.connect(source, target, amount=1.0)
graph.disconnect(source, target)
graph.disconnect_all()
graph.set_carriers([0, 2])
graph.set_feedback(source, target, level=7) # 0 disables, 1-7
# source == target for a self-loop
# Query API
graph.mod_matrix # NxN float32 (read-only copy)
graph.carriers # List[int]
graph.modulators # List[int]
graph.get_connections() # [(source, target, amount), ...]
# Visualization
graph.summary() # human-readable text
graph.to_ascii() # ASCII art
graph.to_mermaid() # Mermaid diagram syntax
# Factory methods
OperatorGraph.from_algorithm(15)
OperatorGraph.from_matrix(mod_matrix, carriers=[0], feedback={(5, 5): 7})
# Rendering
audio = graph.render(sample_rate=44100, midi_note=60, velocity=100,
note_duration=1.0, render_duration=1.5)
audio = graph.render_all_ops(midi_note=60) # (num_ops+1, T)
Building from Source
Requires a C++17 compiler and CMake >= 3.15.
git clone --recursive https://github.com/DBraun/dexed-py.git
cd dexed-py
pip install -e .
python -m pytest -v tests
Editing the Python sources
The .py files are installed by CMake (install.components = ["python_modules"]),
so a plain pip install -e . copies them into the environment instead of linking
them. Imports keep resolving to that copy — edit dexed/algorithms.py and your
tests go on exercising the version from install time. Ask for a rebuild on import
to get a live checkout:
pip install scikit-build-core nanobind
pip install -e . --no-build-isolation \
--config-settings=editable.rebuild=true \
--config-settings=editable.verbose=false \
--config-settings=build-dir="build/{wheel_tag}"
Now both Python and C++ edits take effect on the next import. build-dir is
required by rebuild mode and is already covered by .gitignore;
editable.verbose=false keeps CMake from printing on every import.
To confirm you have a live checkout rather than a copy:
python -c "import dexed; print(dexed.__version__)" # edit dexed/version.py, rerun
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dexed_py-0.3.0-cp314-cp314t-win_amd64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp314-cp314t-win_amd64.whl
- Upload date:
- Size: 120.2 kB
- Tags: CPython 3.14t, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9aa31df1ebc5ba4d4831789888c0de1c58cccd3520ba91be63e1bf3db3162f67
|
|
| MD5 |
7d217b76607593c15bd2594deb3d3c8a
|
|
| BLAKE2b-256 |
cc2d270f2b0b55ee01129153d4ebd3e537fa5c0b47d47c7f0fc8a2a23052dd54
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp314-cp314t-win_amd64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp314-cp314t-win_amd64.whl -
Subject digest:
9aa31df1ebc5ba4d4831789888c0de1c58cccd3520ba91be63e1bf3db3162f67 - Sigstore transparency entry: 2618299736
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 122.3 kB
- Tags: CPython 3.14t, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c20e56ac98e25ecf7d7c3a9053ac87fa03c2782330041cc38c4bb4b98584599
|
|
| MD5 |
fd94251397a57a265163095210683478
|
|
| BLAKE2b-256 |
2b2a5ddbd6fddfa830b2bdc9326165a949187a548f31b0d2c7538ba3d7c50a92
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
6c20e56ac98e25ecf7d7c3a9053ac87fa03c2782330041cc38c4bb4b98584599 - Sigstore transparency entry: 2618299578
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl
- Upload date:
- Size: 107.5 kB
- Tags: CPython 3.14t, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d367aee2c87859a6861c5a749e4880d2dcac45b89214a1b887903844c630d924
|
|
| MD5 |
4f2b00e00016b4229e3216040c95d297
|
|
| BLAKE2b-256 |
1db2db8261e5765b7a3e6d21d664e9815eb062bc31004ac2eb886c33da72f845
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl -
Subject digest:
d367aee2c87859a6861c5a749e4880d2dcac45b89214a1b887903844c630d924 - Sigstore transparency entry: 2618300008
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 116.1 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5c1e9bbd1272df91ca4c95762bb59cdae3c8004646129b2719c1e8e69d33dca
|
|
| MD5 |
72d033289411389e56487175701ce7bc
|
|
| BLAKE2b-256 |
a60d79e91e067ae365b90955885583a85559223179dfbfc17e433fbd8de57815
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp314-cp314-win_amd64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp314-cp314-win_amd64.whl -
Subject digest:
d5c1e9bbd1272df91ca4c95762bb59cdae3c8004646129b2719c1e8e69d33dca - Sigstore transparency entry: 2618299686
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 120.1 kB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb134c804df996762796a4b3cbfd4c53495e603eb9d66f5438c3af409d0185a3
|
|
| MD5 |
f27aeff068b04bd6dfe7ec70d4ae6085
|
|
| BLAKE2b-256 |
e7c83e6f2b18916b699021173b9cb57b1fc47763a91fd9412fe3e17eda38f481
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
fb134c804df996762796a4b3cbfd4c53495e603eb9d66f5438c3af409d0185a3 - Sigstore transparency entry: 2618299911
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 105.4 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4542ffabf4f396378ef3d9719b0c4439b5c194cffbca544f924824c2700d95e3
|
|
| MD5 |
e85daa95b84d5cae14cba087f8cbd25b
|
|
| BLAKE2b-256 |
f222442dfe65f38b7e00bb9adeec8408c379384e6f0dedd1481c5f0b2e7dd859
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
4542ffabf4f396378ef3d9719b0c4439b5c194cffbca544f924824c2700d95e3 - Sigstore transparency entry: 2618299642
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 113.6 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91878e6b526e488d19027dd5392ca06ec2765eb9d1e73bffecdb7d00449e7f80
|
|
| MD5 |
0bf37d5e0b0dfba5c10a88c0f6b0cba1
|
|
| BLAKE2b-256 |
74ab94227b7847050e3e314156ff07963a876eb5c8ffa0c57dec1b251d69ec96
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp313-cp313-win_amd64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp313-cp313-win_amd64.whl -
Subject digest:
91878e6b526e488d19027dd5392ca06ec2765eb9d1e73bffecdb7d00449e7f80 - Sigstore transparency entry: 2618299984
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 120.2 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26e97a5dd461207b87bb5c6f9ec11d8ca98ca45e31d8e3eaffe7cc81f5c97be4
|
|
| MD5 |
bcd2c5d351923b5d7868f3b2be0f1f15
|
|
| BLAKE2b-256 |
3010697ae10f03e62bf59f390591be97194ed0dd4c05941c00a8832c2ef221dd
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
26e97a5dd461207b87bb5c6f9ec11d8ca98ca45e31d8e3eaffe7cc81f5c97be4 - Sigstore transparency entry: 2618299960
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 105.2 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
304d25b50fbfc5576004ca36465955eba84e0d2ec8a4fc7d8b519e77140def3f
|
|
| MD5 |
7d27ddf0d7f5407bff67bfc6709588b4
|
|
| BLAKE2b-256 |
dbb2ec308fb9e36d42801ed85eee15aa92c3613d7930e7773daea9c5ac82534f
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
304d25b50fbfc5576004ca36465955eba84e0d2ec8a4fc7d8b519e77140def3f - Sigstore transparency entry: 2618299881
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 113.7 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c55ee31de219ef6b9bae265ce1884706a0bde6d7315b688e665f7f4c6f5d00e
|
|
| MD5 |
129af474a1a330c67903d4f71e8e2df2
|
|
| BLAKE2b-256 |
5fa8ec56be46047c9b233e3a893b77adafe5e4b7e6f1d7ac9bec10bc41393b56
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp312-cp312-win_amd64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp312-cp312-win_amd64.whl -
Subject digest:
3c55ee31de219ef6b9bae265ce1884706a0bde6d7315b688e665f7f4c6f5d00e - Sigstore transparency entry: 2618299506
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 120.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df58bf6833b852b047abf960a7f3c194e65b257bfe0f049533221641bda28286
|
|
| MD5 |
674e9a70478b4ae260c21852e15f8f60
|
|
| BLAKE2b-256 |
d42edc1b6d6a05f2d3f77fb82f7c40ac77c20c85ad3d792a853ce912ffa793f9
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
df58bf6833b852b047abf960a7f3c194e65b257bfe0f049533221641bda28286 - Sigstore transparency entry: 2618299823
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 105.3 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
368d4df241cbf758992b527a1f0e6bb149bde696893f7ff90cb974150ec8a64a
|
|
| MD5 |
fe2a6a9dd090e5358a4206398af5ee97
|
|
| BLAKE2b-256 |
f6636d0fa863453c9d1f2ec840b13c5158fa8bf00faa44ea87fc9e246f7f1541
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
368d4df241cbf758992b527a1f0e6bb149bde696893f7ff90cb974150ec8a64a - Sigstore transparency entry: 2618300072
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 114.3 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b6629d6a7f8279e4a1461df0037250a6b591d0b0515eafbfa677180fa41154e
|
|
| MD5 |
45c4453228bd1499295734dd68a9c298
|
|
| BLAKE2b-256 |
152f999e6b58ee8637b3694f8d1b9c305d9907610d37fa0cd7155485e19dfb61
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp311-cp311-win_amd64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp311-cp311-win_amd64.whl -
Subject digest:
9b6629d6a7f8279e4a1461df0037250a6b591d0b0515eafbfa677180fa41154e - Sigstore transparency entry: 2618299781
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 120.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10f6bacd8d3293bc35778fb2d55df2483015d8b79aa5b2450585bf8db4469fc3
|
|
| MD5 |
ba78597ac8e48b26d22bcb071de9ca45
|
|
| BLAKE2b-256 |
7f6297f3d3c7b545394ae44ee76c1871431a35d730b1fe3979571eff6edfd001
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
10f6bacd8d3293bc35778fb2d55df2483015d8b79aa5b2450585bf8db4469fc3 - Sigstore transparency entry: 2618300037
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexed_py-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: dexed_py-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 106.2 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fb0c29e03853dde0e98ca06e7f5d41bcad4403501be0990ad026ffca37e92b3
|
|
| MD5 |
e2b53fcc85a36c1b15805890bd978f9c
|
|
| BLAKE2b-256 |
af9c021f6d0883f880e132d2e1a92ad58aeeaa09a18ae9c1df0565e7aa0cedde
|
Provenance
The following attestation bundles were made for dexed_py-0.3.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
build.yml on DBraun/dexed-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexed_py-0.3.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
0fb0c29e03853dde0e98ca06e7f5d41bcad4403501be0990ad026ffca37e92b3 - Sigstore transparency entry: 2618299424
- Sigstore integration time:
-
Permalink:
DBraun/dexed-py@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DBraun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@a4aa1c4df1bc1705c6df4641784aa5bae4530545 -
Trigger Event:
release
-
Statement type: