Python bindings for softcut-lib (the norns softcut DSP engine) with nanobind
Project description
softcut
Python bindings for softcut-lib — the per-voice DSP engine behind monome norns' softcut — with realtime audio I/O via miniaudio. Built with nanobind.
The primary API exposes softcut as idiomatic Python objects. An optional norns-compatible layer (softcut.norns) additionally mirrors the flat norns Lua softcut API for porting existing scripts.
Concepts
-
Voicewraps onesoftcut::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 numpyfloat32array you own (softcut-lib never allocates buffer memory). Buffer length must be a power of two — usesoftcut.next_power_of_twoorEngine.allocate, which rounds up for you. The same array can be shared by several voices. -
Engineis 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 viaEngine.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)
norns-compatible API
For porting norns scripts (and the muscle memory that goes with them), softcut.norns mirrors the flat, 1-based, singleton norns softcut Lua API: 6 voices indexed from 1 and 2 global mono buffers numbered 1/2. Import it under the name norns scripts expect and call the functions verbatim:
from softcut import norns as softcut
softcut.buffer_clear()
softcut.buffer_read_mono("loop.wav", ch_dst=1) # numpy + stdlib wave, no extra dep
softcut.loop(1, 1)
softcut.loop_start(1, 0.0)
softcut.loop_end(1, 4.0)
softcut.rate(1, 1.0)
softcut.level(1, 0.8)
softcut.play(1, 1)
softcut.start() # open the audio device
- Attribute passthrough —
rate,level,pan,play/rec/loop, loop points,position, the pre/post filters, slews, phase,buffer,voice_sync,level_cut_cut,reset. - Buffer/disk ops —
buffer_read_*/buffer_write_*,buffer_copy_*,buffer_clear*, in pure numpy plus the standard-librarywavemodule (WAV only, no new dependency), with preserve/mix crossfade, edgefade_timeandreverse. Operations write in place, so they are safe against the running audio thread; reads are non-resampling, matching norns.
softcut.render / softcut.start / softcut.stop drive audio (norns runs its audio continuously; here you render offline or open the device explicitly). Phase polling and per-sample level/pan slews are not yet implemented; see docs/dev/norns-api.md for the full mapping and status. demos/12_norns_api.py is a narrated walkthrough built entirely on this layer.
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_gainand the feedback matrix are plain aligned writes.) -
The vendored
softcut-libcarries small host-portability fixes (uninitialized members that relied on embedded zero-init static storage, and an oversized debug buffer stubbed out); see the comments inthirdparty/softcut-lib.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 softcut_py-0.1.1.tar.gz.
File metadata
- Download URL: softcut_py-0.1.1.tar.gz
- Upload date:
- Size: 504.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8ec5d183190e2db0e7b0a469b544eceaee8eb9c00a7bd884f361bc4c51ff385
|
|
| MD5 |
eb6db0115a9c0619aaa716bdf9a56b95
|
|
| BLAKE2b-256 |
343007b09833d93ce050901ffd3cba8058854d37e091966478c14254a4b5d3d9
|
File details
Details for the file softcut_py-0.1.1-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 161.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5688b06127e9c29ede732c5f617b19bfa13586cf744fbe056f4ddd943b740976
|
|
| MD5 |
c7beadbb34b7e54dc700847f5e7ae464
|
|
| BLAKE2b-256 |
906055ea518a9a8a40f3dc7492208c1f40b2aeb3f3467197861934d8f409504b
|
File details
Details for the file softcut_py-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 238.7 kB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a39c477aa8e48cea55c264f7dc0a8f6260db3b431d3edc1efccb56e8b8ca469
|
|
| MD5 |
144a9607f033e2495d28e2f5948171f3
|
|
| BLAKE2b-256 |
531006e381f4b806b5e9e44d98136e95d09ed65c0d1c44e4397700e51fa6dde8
|
File details
Details for the file softcut_py-0.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 228.3 kB
- Tags: CPython 3.14, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ad270d9a4d5a270febebbfecc20f456b96f0b98ced0d717e234f1bd2c4e1028
|
|
| MD5 |
3773ec1cf4d9602c147df2b39244adfe
|
|
| BLAKE2b-256 |
fa58d5e256161e30f73c479ef5f95249dcfdc58e67471f0b8f81d5e8550a10c5
|
File details
Details for the file softcut_py-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 200.8 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2c0c62381599d02c5cc12974ce3b049ba7572120764304098c0f012575f502b
|
|
| MD5 |
6f979a9c7dcc7a6a85e1d47dadff3965
|
|
| BLAKE2b-256 |
de021c49e976de9c301df226c14a4e78d9ed18366ae7f1bffaf4bf82a32f7a3b
|
File details
Details for the file softcut_py-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl
- Upload date:
- Size: 216.4 kB
- Tags: CPython 3.14, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
622c791127dd5b9a19457676035fe67078b206a492236125f51840e69c56db22
|
|
| MD5 |
838609efa4c56a8f16f9428c49fb7961
|
|
| BLAKE2b-256 |
9147deca78861fa75ed2abbccee83d8ef889a3a0ae0b9d93df7664b4035fc0f0
|
File details
Details for the file softcut_py-0.1.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 156.4 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cca9bb907202a4c96b5468cdaab45c62e3ac80d028a1ca34459af28a08086b4
|
|
| MD5 |
ffac6180f2b949dda2d464ec778d3627
|
|
| BLAKE2b-256 |
2806b6e8e5a3fb6f1f540ce016072a221a52b0c9f80d2c7fdde7b7941c6ffe5a
|
File details
Details for the file softcut_py-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 238.6 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5aea1241307295fb2b7eb9e35fb6701aa8e010fb05aee9f231ce4dc9faed7971
|
|
| MD5 |
1ada6ce39752539b17256183f583e314
|
|
| BLAKE2b-256 |
28c3c9ea3f99322a91eab4b33a33244c5b950f03408b635b22ba19cc15cb3958
|
File details
Details for the file softcut_py-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 228.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5dba6156dcc3348411fc3156cf2563775ed174874305ab2a8b31335bea4963b
|
|
| MD5 |
58828156bbfa84eaa03508ae5a63dea4
|
|
| BLAKE2b-256 |
2808cd41d8012095ace0a2b92930e9c3863a8028dd030071ecd39f4f476ae846
|
File details
Details for the file softcut_py-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 200.8 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee502d000c2fbd7f051cbbbec412e64eef2e575da2b037060a20a28e99ebe46d
|
|
| MD5 |
957b0aa37163820882357d32dfd9086d
|
|
| BLAKE2b-256 |
019f3291c1b03146800542b42c732f5f0dcaf051244238aa64ac1885ce561cc6
|
File details
Details for the file softcut_py-0.1.1-cp313-cp313-macosx_10_14_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp313-cp313-macosx_10_14_x86_64.whl
- Upload date:
- Size: 216.3 kB
- Tags: CPython 3.13, macOS 10.14+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fafb4b681c0941dde8e97fae212d7243402eca3c1c80486969c9135b0037c961
|
|
| MD5 |
06780f84a0e00533656e5e0f62d60435
|
|
| BLAKE2b-256 |
06ad2941c01d1fd19f110224361404ad0672291b6735e27b5fdd412261b28e4d
|
File details
Details for the file softcut_py-0.1.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 156.5 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bee23acabfb0cd1d775f6a1bb5c4c4d706148b0be8470cf34e14ef22b5b66d7
|
|
| MD5 |
694d03a91eb9fd476b0831290548c7fa
|
|
| BLAKE2b-256 |
a2a02d9f34cbbd299415f9212bbf900cbe2d25c4ffeec70bbc7f4c848c909f9f
|
File details
Details for the file softcut_py-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 238.6 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2364903c645f03d07f54df5055262866d7e2e01a8c5e6d3d3605b434b2519a8
|
|
| MD5 |
623a045adebd73f1213e2c84c959df2d
|
|
| BLAKE2b-256 |
91a54d64ccad9d42680bb6e9bab2a11df2c0b5b183a402fa69d9944ac250d47d
|
File details
Details for the file softcut_py-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 228.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f2c90a8da889daa5bf7e18860786469ee75b1a73c8061e4e799e95229862551
|
|
| MD5 |
9b51099976d8bc47914cf676dd181672
|
|
| BLAKE2b-256 |
0efd7a7073cffde86119611d879ae473bd5e3081b37e03e420b344e5a16097ee
|
File details
Details for the file softcut_py-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 200.9 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
721f76a6b4901110167d51d3b5b364ffb43054c35b7ac660c8d385ea629b3719
|
|
| MD5 |
cf378ef96a7723b377c720165f3fcef2
|
|
| BLAKE2b-256 |
cb002e51c5c36e4614b963bc84d4465133e71a75583ccf161db30a45df0e0a16
|
File details
Details for the file softcut_py-0.1.1-cp312-cp312-macosx_10_14_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp312-cp312-macosx_10_14_x86_64.whl
- Upload date:
- Size: 216.3 kB
- Tags: CPython 3.12, macOS 10.14+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e56f145b181f27df69b9d7c250dd72fdf89b532ab8b4934f16b44484915cb0dc
|
|
| MD5 |
29692a0465802872d9b33f59c51bbe2d
|
|
| BLAKE2b-256 |
971222da28d72b7eac5c923ddfc9c137932c2edba8341fad89a92dab056230b4
|
File details
Details for the file softcut_py-0.1.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 156.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf9ae457bbb305c5c9c75d7cb71ea5dc59d68c5c95c6857d8eebf6dd7b419eef
|
|
| MD5 |
eb4cf658ffb99f11dedec23258ee15f2
|
|
| BLAKE2b-256 |
2a9610a7e669d0e2a72ea695e0084cabcbd54ed1aeb6b73c378ecbde94bed780
|
File details
Details for the file softcut_py-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 239.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
572b560cc289cbfd0308309ef34bcc191fdd399a9000f63e5a4753c601c9b60c
|
|
| MD5 |
5686da5483510f5fce5482744e268136
|
|
| BLAKE2b-256 |
725d21904a24233676f6cde6eefa911d11b56196ccc6de19f976a8c5d6ab61e4
|
File details
Details for the file softcut_py-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 229.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e1617b2d8a81e5db794bcc947dc01c558d2dce1cec20bb85792b7ecd1dbca84
|
|
| MD5 |
d83809d5a997d60605b0cff1f5ad78de
|
|
| BLAKE2b-256 |
d5420d818f7c946503de026742fde47d4c4546c1ab86e31ffe6a24074e2675d1
|
File details
Details for the file softcut_py-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 202.0 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd83fdebe3b7454cee2149f97464b705e27cbfcd7ca812631bb5f308e308624f
|
|
| MD5 |
192958de11c2df36800a11603ba14a34
|
|
| BLAKE2b-256 |
b738eec1e35f27b5947ddca85fdfa7342b3345228e4f0221772cf56f548b7bbb
|
File details
Details for the file softcut_py-0.1.1-cp311-cp311-macosx_10_14_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp311-cp311-macosx_10_14_x86_64.whl
- Upload date:
- Size: 217.2 kB
- Tags: CPython 3.11, macOS 10.14+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0b1e4437d7db0600ed05e110eae480b822367fd98a1e0b18d31a283704ba15b
|
|
| MD5 |
ed3852e5529998c34f2cb27afddea5fc
|
|
| BLAKE2b-256 |
88b7a8425c7d6fef82024ebdf0a263a420c3ced67285df2baafde4710fa1e056
|
File details
Details for the file softcut_py-0.1.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 157.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba23febfce16f15cfb7e7b851f0ff962363f1e4facb4cee5a90aa342e6611fff
|
|
| MD5 |
4cdd9e78c02b5c3ce312b498de82c48e
|
|
| BLAKE2b-256 |
abe6812d254c21d2ccfc2ad2ca11ee64e4eafba25f36309445386a277987b64f
|
File details
Details for the file softcut_py-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 240.3 kB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b0eff0b793ff6e62b912877c54bf4198ff677df0019572ae4359edf1be9a7e2
|
|
| MD5 |
bf39855d2559071e5ee4e6f2024370d0
|
|
| BLAKE2b-256 |
18885ae67bd2e9b1fe1ddd0e33622ceedc7c5e3f296476e3dfeec65c834236aa
|
File details
Details for the file softcut_py-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 229.5 kB
- Tags: CPython 3.10, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60e8449a43e72d43c531a321df51ab0c69f8aaba45caa4777bb8eaee39b6f5f6
|
|
| MD5 |
9117c3627d3da5411d6b37bb676c1bdc
|
|
| BLAKE2b-256 |
2055b734eabc0a6b9af6206921864dc33dd5a418d391821b2da914ea45083fcb
|
File details
Details for the file softcut_py-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 202.4 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4336639b831076154431def58298e9128c237edc196eafee6fb152cd3a65b8ad
|
|
| MD5 |
b92740ed24f6f993c16c26f03248e7b4
|
|
| BLAKE2b-256 |
fc7fd8e9ded829e74d1cf5f96d10b3408093a42ebfccb82358a408f43ef9968f
|
File details
Details for the file softcut_py-0.1.1-cp310-cp310-macosx_10_14_x86_64.whl.
File metadata
- Download URL: softcut_py-0.1.1-cp310-cp310-macosx_10_14_x86_64.whl
- Upload date:
- Size: 217.5 kB
- Tags: CPython 3.10, macOS 10.14+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57efb56340afbbd203f9cc8e7710988c66f6e6a1c5b21f8984ca4d1bc553ee29
|
|
| MD5 |
d2d48de7eb21dcbd0bd72c20dab086f9
|
|
| BLAKE2b-256 |
0f900db328058cd3f6f87a1ef1550450a2c0497714b4f214c7701b54a4e9a3f3
|