Skip to main content

Python bindings for softcut-lib (the norns softcut DSP engine) with nanobind

Project description

softcut

CI

Python bindings for softcut-lib — the per-voice DSP engine behind monome norns' softcut — with realtime audio I/O via miniaudio. Built with nanobind.

This is not a port of the norns Lua API; it exposes softcut as Python objects.

Concepts

  • Voice wraps one softcut::Voice: a crossfading read/write head over an audio buffer, with rate, loop points, record/play, fades, and pre/post state-variable filters. Parameters are plain attributes; the buffer is a numpy float32 array you own (softcut-lib never allocates buffer memory). Buffer length must be a power of two — use softcut.next_power_of_two or Engine.allocate, which rounds up for you. The same array can be shared by several voices.
  • Engine is the multi-voice host: it owns a set of voices and a miniaudio device, and runs them either live (realtime mic/speaker I/O on a background audio thread) or offline via Engine.render. It is a context manager and a sequence of voices.

Live looping

import softcut, time

with softcut.Engine(voices=2) as eng:          # opens the audio device
    eng.allocate(seconds=8)                    # shared power-of-two buffer
    eng[0].configure(loop_region=(0, 4), rate=1.0, level=0.8, pan=-0.3)

    with eng[0].record(at=0):                  # rec + play on; head cut to 0s
        time.sleep(4)                          # capture 4s of mic input
    # on exit: rec off — the voice keeps looping what it captured

    eng[1].configure(loop_region=(0, 4), rate=-0.5, level=0.6, pan=0.3)
    eng[1].record_for(4, at=0)                 # blocking variant: record 4s, then stop

    time.sleep(8)                              # listen to both loops
# device closed automatically

eng.start() returns immediately and audio runs on a background thread, so the REPL stays live — set a parameter and you hear the change on the next block. record() is the non-blocking context-manager gesture; record_for(seconds) blocks the calling thread for a fixed capture.

Offline rendering

No device; process a mono numpy block through the voices and get the mixed stereo output back. This is the deterministic path used by the tests:

import numpy as np, softcut

eng = softcut.Engine(voices=1, mode="playback")
v = eng[0]
v.buffer = np.zeros(2**16, dtype=np.float32)
v.configure(loop_region=(0, 1), rate=1.0)
v.rec = v.play = True
v.cut_to(0)

out = eng.render(np.random.randn(48000).astype(np.float32))   # (48000, 2) float32

Load/save audio with whatever you like (e.g. soundfile) and assign the array to voice.buffer.

Routing and devices

Voices mix to stereo via each voice's level and pan. Engine.feedback(src, dst, amount) routes one voice's output into another's input (one block delayed; src == dst is a self-feedback delay line), and each voice's input_gain scales the engine's external (mic) input into it:

eng.feedback(0, 1, 0.4)     # voice 0 -> voice 1 input
eng[1].input_gain = 0.0     # voice 1 ignores the mic

Pick a specific device by index from softcut.list_devices():

softcut.list_devices()                      # [{'index':0,'name':...,'type':'playback',...}, ...]
eng = softcut.Engine(output_device=1, input_device=0)

Build and test

make sync     # set up the environment
make test     # run the test suite
make qa       # test + lint + typecheck + format

Set SOFTCUT_TEST_AUDIO=1 to additionally exercise a real audio device in the test suite. Use make help for more targets (wheel, sdist, clean, etc.).

Releasing

CI runs QA and a Linux/macOS/Windows build smoke on every push and pull request. Pushing a v* tag builds wheels for CPython 3.10-3.14 across Linux (x86_64/aarch64), macOS (x86_64/arm64) and Windows with cibuildwheel, plus the sdist, and publishes them to PyPI via trusted publishing. make release bumps the version and creates the tag; pushing it triggers the release. (TestPyPI is available via the workflow's manual workflow_dispatch.)

Notes

  • Realtime parameter updates are safe: while the device is running, voice DSP parameter changes from Python are enqueued and applied on the audio thread via a lock-free queue rather than racing it. (The mix scalars level/pan/ input_gain and the feedback matrix are plain aligned writes.)
  • The vendored softcut-lib carries small host-portability fixes (uninitialized members that relied on embedded zero-init static storage, and an oversized debug buffer stubbed out); see the comments in thirdparty/softcut-lib.

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.

softcut_py-0.1.0-cp314-cp314-win_amd64.whl (154.0 kB view details)

Uploaded CPython 3.14Windows x86-64

softcut_py-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

softcut_py-0.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (221.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

softcut_py-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (198.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

softcut_py-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl (212.8 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

softcut_py-0.1.0-cp313-cp313-win_amd64.whl (149.3 kB view details)

Uploaded CPython 3.13Windows x86-64

softcut_py-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

softcut_py-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (221.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

softcut_py-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (198.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

softcut_py-0.1.0-cp313-cp313-macosx_10_14_x86_64.whl (212.5 kB view details)

Uploaded CPython 3.13macOS 10.14+ x86-64

softcut_py-0.1.0-cp312-cp312-win_amd64.whl (149.4 kB view details)

Uploaded CPython 3.12Windows x86-64

softcut_py-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.6 kB view details)

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

softcut_py-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (221.2 kB view details)

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

softcut_py-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (198.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

softcut_py-0.1.0-cp312-cp312-macosx_10_14_x86_64.whl (212.5 kB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

softcut_py-0.1.0-cp311-cp311-win_amd64.whl (149.9 kB view details)

Uploaded CPython 3.11Windows x86-64

softcut_py-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (232.8 kB view details)

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

softcut_py-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (222.1 kB view details)

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

softcut_py-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (199.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

softcut_py-0.1.0-cp311-cp311-macosx_10_14_x86_64.whl (213.6 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

softcut_py-0.1.0-cp310-cp310-win_amd64.whl (150.1 kB view details)

Uploaded CPython 3.10Windows x86-64

softcut_py-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (233.3 kB view details)

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

softcut_py-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (222.5 kB view details)

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

softcut_py-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (199.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

softcut_py-0.1.0-cp310-cp310-macosx_10_14_x86_64.whl (213.9 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

File details

Details for the file softcut_py-0.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 154.0 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for softcut_py-0.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 978267bd1561ce9199d1795697e45042973054643f60666004d10f35f9aff5d6
MD5 6f1f7eee1763ed952e4a0915ea6e8123
BLAKE2b-256 28a82dbe7f3657519b7b3c253ede7bd9032e564ede8f7f09a08ee576c74bc92a

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 553ae3d5b946c055d955ff561ffb0d5914dcd9bf2fa187525bbdbffe451675f9
MD5 c3f7637532cbba05bae196324f526ded
BLAKE2b-256 60bc4930293ec00a5b34fd9cf9f0c277eb5621e179eddb077a57e86ded24be29

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8b41c8f933b6d9f76527375e23b6be7590e8682266a5d6dcef6410b928178040
MD5 27380bb1781573f0f77409344c773776
BLAKE2b-256 89540eccbf691c8a00083b175c453c3dda0a996ba0984f6837377b6bfc8426b1

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4b1f8a2d329829c4d85dc905e803944bf1ddde78c878e046018f42f8fa3adae
MD5 d2c14c08b1ab3b867f8ac5741198c5ba
BLAKE2b-256 cd882ba3777395be07e6df3b12f74024242e0614fecf52df150c632d94047c41

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 67f36cd9c04c2a1174d61fa3d106698627bb77b3017e26327fa5955e3374a5a1
MD5 78ec65e6629dd97534bf62e3c6dd768e
BLAKE2b-256 50963546895127638630759333c803e3e324fcab81e84a15e734a2535e2b730f

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 149.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for softcut_py-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dace79b320eebe573893250855a59140b7414d4e763dee1210a903f9794c605d
MD5 3d4ed2ef4e4826bba3d8db3969d70c70
BLAKE2b-256 247f94ac64706f8e43a294f7fb14586078d63c6f202947d2e406761cc702f69a

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44ba4c1642ce362052695fcc2266a61d7820d4d62f14a05f5b388d9f6f590d6b
MD5 1431f6f577d441410e85015a16dc8f96
BLAKE2b-256 bd3d71ed4a3e530bb6a1fcb13cb20b69b361330dcfdf90fdc2849c31c3c547e2

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fc54c70b6d8bd3a61a88af18c81b668694a3db5c50b92980debe72403367f40c
MD5 12d7023096fb14af2c503fbb2b84ad8b
BLAKE2b-256 48b9b040093c15f1703da6d34383b6331b4819f4e031b636bff540e9e9859d3e

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46f3fae066f7ce1e3d6e7cf2c7cf294af86f257991b6124c42550735ef0253b3
MD5 5a29162dcd2320f14e3fd7bbd4cac1a8
BLAKE2b-256 a570ef77ae5f0d7c54d079f1a45f328639d562945a8b6c6395cad9bf02aed498

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp313-cp313-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a0f584f3d40ba10b5ed2f4847caee9ae72523d96e350e659510cf910040cdc1a
MD5 bc810f3089c0865101a22ece74d99196
BLAKE2b-256 3a7c0bc5f623bad47572492816511994a40c24089bf464da220af7527c90b70a

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 149.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for softcut_py-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b44d7816ee3f199fe6576810a96c50baa9c93d02c4becc44413cedcb6cb5303b
MD5 50c0c64b8cb57ceaec9a462880b55d43
BLAKE2b-256 0fa7635c806c091cd4564d6475c9f785eccc3f03244e91ec8a38472c7929c260

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1fc5ffe9078fe38e640eefdbff6f787f4e9a87d870a9dcb566d35230d176f596
MD5 e8b57ef4baa33a7195ff7854eee0ea2b
BLAKE2b-256 ac2838a4e8befcf75792007eaea276d57850cb19dffe0dbe650839ea4fd06607

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c33269a4efe66c31359316a2ffc6c86e0d06bc92c4a64224fa5e39722c77cff8
MD5 336edda378a741077bbae3d49e04b7ad
BLAKE2b-256 51e3c7db0cfef3aa0e02ddeaed2117baddcc6841aed79be846c0cd0440c812f5

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d7e65267decbc9c61f4c649e07204fcad5f4e5d298bae6e08829c1228c19eea
MD5 3525f635c8507c680c1a7c41321d1a6f
BLAKE2b-256 886c52a2211e36216ddbbdef1a705ce73a8b1d33f8fc099561a40da83d510421

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 dc37343459bf5ba92fe40e2f7a1209b2d4d0a971fde680281c4f79bc3a53df39
MD5 9cb4791eaf61fae080dd9a0b0940f3d0
BLAKE2b-256 d93a6b095034c24a74dedd3b5350fd92edb8780e8e141031f43ed3217e71a19a

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 149.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for softcut_py-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 01c7cd37321a325669f51985016d0d39ec4b10a752ea83529a076263a6cd59a5
MD5 56114f1e681eb65c89f48353f1687c10
BLAKE2b-256 ff1d093cfcc8f65a323e645cb911540ee273f98d966b4b1ec3a5e1875887f788

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fbb231fdeb5ef3b640e9880426c440a62c13c15e8d48cbe80e13ca9584e1fd7d
MD5 2a8707e0935ffd00423f84d42fd87e77
BLAKE2b-256 5846283ab278b5172183e3c2e065453fe7fbac622d05724e727f8287d12bd653

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ccc81613204e0fc68cfc47bf0ce42d74d1f268a065cef93b133a4c75d56b39df
MD5 50eb57a7d1f7e9272523a524b25eaaeb
BLAKE2b-256 720344b4e8b45a15c1964a45e1fa568da176f036cf7d02c4cc977ad9db1adcd6

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa916fad0a4868f2fcb977ac224b5a99e061c25b8f6b6185395ffa1908d6cd0a
MD5 8352e99943ea184c971063016fb1bc23
BLAKE2b-256 0ca7e22f72dcd86dc57b59d47d28a79bc6f0ed43c8ed095bc9f4655c48be07f0

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d5c44096f35b2269d264f44ee8d47f86c6f5eb661f7c7adb52500acec6cabacf
MD5 5375f5da4d1040060072cc3b4bea03db
BLAKE2b-256 9fdcadd6921e016043eb7f0ce32a3ad4d62f43921dac30a25c5b9023fdae1f91

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 150.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for softcut_py-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6c15a4ff830503f84c9ec29c167019cfbdcc76406ff6b0a45f2f70977470162e
MD5 9b71577b4164ca2d61cc72b46e099d39
BLAKE2b-256 741ad903f89f8702b8d600e79c20b3f3f9bc506404f30b9ba86b8782d7398648

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1823264d258e5a895313e0327eacffaa2b4c508a401ac58040a5d52964e1524
MD5 61012a1783c1766fe720972c2a15ca24
BLAKE2b-256 8dd4e679a941ef38ccc216cc402854b5295199186c157bf883a52810ec4600de

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5873281c54c206bf766a7915fc92a356844716ea291399977a7a867091d35f1d
MD5 37ab2ef92084f219d663d111a2adb901
BLAKE2b-256 4b8ce499b16e30cf3998684118a4d5beae05c7dca2e4ebbf9132aca28b72d56f

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c24753ef81187311b845f97ac31a8403851d0d967cbe276629b77a6f71458c6a
MD5 32fc45cf2491f023573132965fb33338
BLAKE2b-256 0337db995566cdc48c1a2ed943af74ccd64af1f6115806a3b2913b7deb3f0505

See more details on using hashes here.

File details

Details for the file softcut_py-0.1.0-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.1.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 573df3f6a8a5fa1d0cb86d2706533502ae89e6a632bca0281387b9228353647b
MD5 6e347ea7e931a3dff0f1830b4c38bb21
BLAKE2b-256 59e3dc77f722fb2192cd9b43fa959d919041b19e2a3b686b75754a6692be1123

See more details on using hashes here.

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