Skip to main content

A thin Python wrapper around the Sound Design Toolkit

Project description

PySDT: Python bindings for the Sound Design Toolkit

Thin Python bindings for the Sound Design Toolkit (SDT) library.

The bindings consist of two parts:

  • C++ wrapper classes (contained in src/wrappers/) encapsulate SDT's C API, especially the manual memory management
  • nanobind bindings (contained in src/pysdt.cpp) make the wrappers available in Python

Proper documentation for the Python library will be added at some point. Until then, refer to examples below. The SDT documentation should be helpful as well, since the bindings follow the C API and module structure very closely. Getter/setter pairs are usually captured as Python @properties.

Features

Most of the SDT functionality is available in the bindings, except for

  • OSC support
  • JSON export/import
  • anything with a straightforward numpy equivalent, e.g. array means or FFT calculation

Installation

Packaged wheels are available for Linux, MacOS and Windows.

pip install pysdt

Alternatively, you can build the bindings yourself. The SDT is included as a submodule in this repository (with slight modifications to ensure MSVC compatibility). Two submodules of the SDT itself will need to be initialized as well.

git clone git@github.com:dsuedholt/pysdt.git
cd pysdt && git submodule update --init SDT
cd SDT && git submodule update --init 3rdparty/json-builder 3rdparty/json-parser
cd .. && pip install .

Usage

By default, the global sampling rate is set to 0 Hz. It is important to set the global sampling rate explicitly at the start of your script. If you change the sampling rate later on, you may need to call update() on some objects; check the SDT documentation.

Here's a brief example of using the DCMotor class to generate one second of engine sound:

import pysdt
import numpy as np

sr = 44100
pysdt.common.set_samplerate(sr)

# buffer length of an internal comb filter is a constructor argument
motor = pysdt.dcmotor.DCMotor(1024)

# properties bind to getRpm / setRpm etc
motor.rpm = 4000
motor.load = 0.2

# motor.gear_ratio = ...
# motor.coils = ...
# see https://skat-vg.github.io/SDT/group__dcmotor.html for more parameters

audio = np.zeros(sr)
for i in range(sr):
    audio[i] = motor.dsp()

# we have sound! can now process, play or save it, e.g:
import soundfile as sf
sf.write("engine.wav", audio, sr)

dsp(...) methods

Most SDT classes have a dsp() method that expects to be called once per sample, but the signature can vary. Here are some examples that demonstrate how PySDT wraps these depending on their signature in the C API.

import pysdt
import numpy as np

sr = 44100
pysdt.common.set_samplerate(sr)

audio = np.zeros(sr)

# C signature: double dsp(...)
# return single floating point number
bubble = pysdt.liquids.Bubble()
bubble.radius = 0.001
bubble.rise_factor = 0.1
bubble.depth = 0.7

rev = pysdt.effects.Reverb(sr)
rev.time = 0.5
rev.update()

for i in range(sr):
    if i % (sr // 4) == 0:
        bubble.trigger()
    bubble_out = bubble.dsp()
    audio[i] = rev.dsp(bubble_out * 100)


# C signature: void dsp(..., double *out, ...)
# return multiple floating point numbers
expl = pysdt.gases.Explosion(sr, sr)
expl.blast_time = 0.1
expl.scatter_time = 4
expl.dispersion = 0.5
expl.distance = 10
expl.wave_speed = 340.2
expl.wind_speed = 600

expl.trigger()

for i in range(sr):
    wave, wind = expl.dsp()
    audio[i] = 0.5 * wave + 0.5 * wind

# C signature: int dsp(..., double *out, double in)
# This one is mostly used in SDTAnalysis / pysdt.analysis
# It expects to be called every sample,
# but will only provide output when a frame has been filled
# returns Tuple[bool, np.ndarray[float]]
audio = np.cos(440 * 2 * np.pi * np.arange(sr) / sr) # simple sine wave
win_size = 1024
pitch = pysdt.analysis.Pitch(win_size)
pitch.overlap = 0.5

f0s, confs = [], []
for i in range(sr):
    has_values, values = pitch.dsp(audio[i])
    if has_values:
        f0, conf = values
        f0s.append(f0)
        confs.append(conf)

Interactions

Interactors apply forces to resonators and can optionally couple two resonators together. Internally, the dsp() method of an interactor will call the dsp() method of the resonators it interacts with. After the interactor's dsp() method was called, audio can be read from the position value of the resonators' pickups.

The following code replicates the example shown in the helpfile of the Pd scraping~ object:

import pysdt
import numpy as np

sr = 44100
pysdt.common.set_samplerate(sr)

audio = np.zeros(sr)

n_modes = 3
n_pickups = 1

res = pysdt.resonators.Resonator(n_modes, n_pickups)

freqs = [500, 1300, 1700]
decays = [0.03, 0.02, 0.01]
pickups = [100, 100, 100]
weights = [1, 1, 1]

res.active_modes = 3

for i in range(n_modes):
    res.set_frequency(i, freqs[i])
    res.set_decay(i, decays[i])
    res.set_gain(0, i, pickups[i])
    res.set_weight(i, weights[i])

res.fragment_size = 1

res.update()

impact = pysdt.interactors.Impact()
impact.stiffness = 1e8
impact.dissipation = 0.8
impact.shape = 1.5

impact.first_point = 0
impact.second_point = 0

impact.first_resonator = res

scraping = pysdt.control.Scraping()
scraping.velocity = 1
scraping.grain = 0.001
scraping.force = 2

lop = pysdt.filters.OnePole()
lop.lowpass(20)

for i in range(sr):
    noise = pysdt.oscillators.white_noise()
    scrape_force = scraping.dsp(lop.dsp(noise)) * 10
    impact.dsp(scrape_force, 0, 0, 0, 0, 0)
    audio[i] = res.get_position(0) * 50000

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

pysdt-0.1.2.tar.gz (9.3 MB view details)

Uploaded Source

Built Distributions

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

pysdt-0.1.2-cp312-abi3-win_amd64.whl (130.5 kB view details)

Uploaded CPython 3.12+Windows x86-64

pysdt-0.1.2-cp312-abi3-win32.whl (112.7 kB view details)

Uploaded CPython 3.12+Windows x86

pysdt-0.1.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (207.2 kB view details)

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

pysdt-0.1.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (213.4 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ i686

pysdt-0.1.2-cp312-abi3-macosx_11_0_x86_64.whl (166.6 kB view details)

Uploaded CPython 3.12+macOS 11.0+ x86-64

pysdt-0.1.2-cp312-abi3-macosx_11_0_arm64.whl (153.1 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

pysdt-0.1.2-cp311-cp311-win_amd64.whl (128.1 kB view details)

Uploaded CPython 3.11Windows x86-64

pysdt-0.1.2-cp311-cp311-win32.whl (112.4 kB view details)

Uploaded CPython 3.11Windows x86

pysdt-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (209.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pysdt-0.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (216.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

pysdt-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl (171.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

pysdt-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (156.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pysdt-0.1.2-cp310-cp310-win_amd64.whl (128.2 kB view details)

Uploaded CPython 3.10Windows x86-64

pysdt-0.1.2-cp310-cp310-win32.whl (112.7 kB view details)

Uploaded CPython 3.10Windows x86

pysdt-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (210.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pysdt-0.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (216.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

pysdt-0.1.2-cp310-cp310-macosx_11_0_x86_64.whl (171.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

pysdt-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (156.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pysdt-0.1.2.tar.gz
  • Upload date:
  • Size: 9.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pysdt-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ddd63160901fba9c2675b8985dadb52b37f9281d1fa8f60554e0ff4d98dc88af
MD5 e4b2c606f2a2b1d485ae01b3df5f5951
BLAKE2b-256 16a32ac207dab5cc20219885b0e5716fb46caca2e9eea376f3f0e65b0e6972c9

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: pysdt-0.1.2-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 130.5 kB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pysdt-0.1.2-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 87a643b8c3c7f603282bbec7833b0ca5a6be266fd8d7d5b9b1804225d97527f8
MD5 a191d1d0e0d30d4cc70cacafe1874fbc
BLAKE2b-256 5541f5c5eb2408771c2d53d74b4f1244783cf2217d083c2580a258e4c7120208

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp312-abi3-win_amd64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp312-abi3-win32.whl.

File metadata

  • Download URL: pysdt-0.1.2-cp312-abi3-win32.whl
  • Upload date:
  • Size: 112.7 kB
  • Tags: CPython 3.12+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pysdt-0.1.2-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 a514b10eda3526359acbe759e325f6e781bcc98bd1ca22e5ed9e338bbc36057c
MD5 07079ffce3dcfb3f32cca39c097818e4
BLAKE2b-256 4deb57ef1d8031f5572ef82ab6f5905c4a26b1a5cabc31d9e2559ae313b7ca12

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp312-abi3-win32.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da388fe406f3b31075f6c211959116ed8d26648ed88150bbe44c63b80a086ee2
MD5 52bfb951cd568aeb2897f9c45c007607
BLAKE2b-256 30443b1f944138e1aac41847645bd06f0abd0a3d7258f3aacb0e5aacb81a89bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a2dc9e35251fbd5d1e686b4afab2afb72e0afe0470d71a9006678cf15e43aa10
MD5 4ff44a222e8a37bf674d72f0e4480a21
BLAKE2b-256 25571a4accdc16977ea37e68885561f4d398a2cddcf2f41d6a8f53bd8247bca1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp312-abi3-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp312-abi3-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 80eb6a6d8e997e9d9450ebebd63cebea9df52eb3953ad1f2ae966b42f4bebc0e
MD5 1622820acbbe902594151fd568b740fc
BLAKE2b-256 e45cbb025540859da0a390d9aeb12f9eb2f33d210aca66cdc81c22e621053bc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp312-abi3-macosx_11_0_x86_64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 837c6eae0d833c53932c309b8e352b5a7f165f3a7eb5c59fa52cdfdc89ad89d4
MD5 0aaeb3aad3333a56f0c8b8d2a6b13b55
BLAKE2b-256 004ac40c1f4850730f1452fe5c9839c9de465efb870e892a1eace6b9f4191c0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

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

File metadata

  • Download URL: pysdt-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 128.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pysdt-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3f7c811d88c607a57c85da4d692f84a37e69fc1d0887899f02fc52ef17a7f3b2
MD5 3bf8e7b7ee3d5ddfdddb79d273a4a70a
BLAKE2b-256 ac1ad9ad10b71d72795ff41d210b48a74a9a31e9d4fa5cbc2bc4c0174b521e56

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: pysdt-0.1.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 112.4 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pysdt-0.1.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 54c74ed83dd499891890b8c372a122662427f45a1b888ac5b623e0486c433e10
MD5 c8b5ecfc96880784ba58fb988bb1271c
BLAKE2b-256 40a921a5406020b872a757c3350df0142348f0ba93ff3e38b63369437c40e868

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp311-cp311-win32.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b22cc0fa630fc19cb00458e031c4eb3ddd683a22d06e18cf2cbcef6b42e2070
MD5 b7b5cff2e182777c7ec7e8812f549eb6
BLAKE2b-256 c12c3c9b0ffb6fe450d6fafbebe60db9c0ee6c10cb5d2bcb317c666920cc5ca2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3e003acbbe6d35aac140a3c95f26644e4fa39db685c10f3e5f609cba1982c395
MD5 965edaaf3a6b208421963a134e914d09
BLAKE2b-256 2b48737a41917c4a158c926fe19654118e6a5cd4a796f84c3eb12b760b105dac

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4ad6d51befedf785ea40a3f02c81f82a48aa797233fd7842b667813c9c1b1411
MD5 2985de185deb5db6ce1c4a97ee249e03
BLAKE2b-256 60ea3bd9b7b5a1895baf311f137e9ab7c738734d6771d72a163b09fbdf503f8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31c8300b3ce0456bf7d59079f59897a61749cc912a9b36060400537d35dba8fd
MD5 e94fd0d95220ae6855b8f3e534be6ba3
BLAKE2b-256 ba9983f529cec46e25c4d7cc39c076376a6aa6839745e8fe41aa2e209a58a437

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pysdt-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 128.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pysdt-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0780f0ce776885aba0504306d76276aaa12400120474a806fc37178c0d09060d
MD5 bb41bb6f450a2d264366c30640f69b0b
BLAKE2b-256 b3e3589b7ce3ea8e04101e8bac2aa6cae3cf9dfa613fcb8d9b8bbc38b93582c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: pysdt-0.1.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 112.7 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pysdt-0.1.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 aafafd62ee5afbf885f0d4416343658951cc686eb21d39a59d588edf39e91adb
MD5 201256b5dbb5083ccf6a1a0abe0e36d6
BLAKE2b-256 f6a04413aa1d747153db8b042332968194c8fed121f4536a7e957cb3865e3435

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp310-cp310-win32.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39d1a69fbb11145d6564abaef9bf5974cfb8a87b97d3d24aa83b3479d83b3091
MD5 6029cbc54b845c901ea7ab29ddc9aefd
BLAKE2b-256 10d5ebd5811b01d1ec8c548609dd1a841660861682dc76d5bd762f8e62b45f38

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f0735219467d20f660f71c245241bef1de13061b7e100d7e085c6446e92f8f2f
MD5 8422fc486ba5244f6276b78645eb6b95
BLAKE2b-256 23f37efb4de7b8e7c01f6e22dda036c2e8d0c551c611fefda52ad6cad4d96914

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ae9102bdad0a1a9c98b1ebd5ed6335bdf5c43187805f9f5006b66f07e1e72225
MD5 98eda125cba26b82a0096968966dbbd6
BLAKE2b-256 b32303b0825aa3a832c80a87b226f29e9112d7b4b98e9677d88eddfd2a6082a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp310-cp310-macosx_11_0_x86_64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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

File details

Details for the file pysdt-0.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pysdt-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca5834cf339b03eabadffaedfd6939124351e97c0c46784bbb76b6e3c4b8e444
MD5 3cb4a424c36a80a474a15d6a9054d033
BLAKE2b-256 2dae8699a055917c78c5e4d2c0e97d84e018549391012a9ccbc62ede794abebd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysdt-0.1.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on dsuedholt/pysdt

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