Cython bindings for the CDP audio processing library
Project description
cycdp
Python bindings for the CDP (Composers Desktop Project) audio processing library.
Overview
cycdp provides Python access to CDP's extensive audio processing algorithms. It uses Cython with memoryviews and the buffer protocol for zero-copy interoperability with numpy, array.array, and other buffer-compatible objects - no numpy dependency required.
Installation
# Build and install in development mode
make build
# Or with uv directly
uv sync
Quick Start
import cycdp
# Load audio file
buf = cycdp.read_file("input.wav")
# Apply processing
stretched = cycdp.time_stretch(buf, stretch_factor=2.0)
shifted = cycdp.pitch_shift(buf, semitones=5)
# Save result
cycdp.write_file("output.wav", stretched)
Usage
High-level API
Works with any float32 buffer (numpy arrays, array.array('f'), memoryview, etc.):
import array
import cycdp
# Create sample data
samples = array.array('f', [0.5, 0.3, -0.2, 0.8, -0.4])
# Apply gain (linear or decibels)
result = cycdp.gain(samples, gain_factor=2.0)
result = cycdp.gain_db(samples, db=6.0) # +6dB = ~2x
# Normalize to target peak level
result = cycdp.normalize(samples, target=1.0)
result = cycdp.normalize_db(samples, target_db=-3.0) # -3dBFS
# Phase invert
result = cycdp.phase_invert(samples)
# Find peak level
level, position = cycdp.peak(samples)
With numpy
import numpy as np
import cycdp
samples = np.random.randn(44100).astype(np.float32) * 0.5
result = cycdp.normalize(samples, target=0.9)
# Result supports buffer protocol - zero-copy to numpy
output = np.asarray(result)
File I/O
import cycdp
# Read audio file (returns Buffer)
buf = cycdp.read_file("input.wav")
# Write audio file
cycdp.write_file("output.wav", buf)
Low-level API
For more control, use explicit Context and Buffer objects:
import cycdp
# Create context and buffer
ctx = cycdp.Context()
buf = cycdp.Buffer.create(1000, channels=2, sample_rate=44100)
# Fill buffer
for i in range(len(buf)):
buf[i] = 0.5
# Process in-place
cycdp.apply_gain(ctx, buf, 2.0, clip=True)
cycdp.apply_normalize(ctx, buf, target_level=0.9)
# Get peak info
level, pos = cycdp.get_peak(ctx, buf)
# Access via buffer protocol
mv = memoryview(buf)
API Reference
File I/O
| Function | Description |
|---|---|
read_file(path) |
Read audio file, returns Buffer |
write_file(path, buffer) |
Write buffer to audio file |
Gain and Normalization
| Function | Description |
|---|---|
gain(samples, gain_factor, ...) |
Apply linear gain |
gain_db(samples, db, ...) |
Apply gain in decibels |
normalize(samples, target, ...) |
Normalize to target peak (0-1) |
normalize_db(samples, target_db, ...) |
Normalize to target dB |
phase_invert(samples, ...) |
Invert phase |
peak(samples, ...) |
Find peak level and position |
Spatial and Panning
| Function | Description |
|---|---|
pan(samples, position, ...) |
Pan mono to stereo (-1 to 1) |
pan_envelope(samples, envelope, ...) |
Pan with time-varying envelope |
mirror(samples, ...) |
Mirror/swap stereo channels |
narrow(samples, width, ...) |
Adjust stereo width (0=mono, 1=full) |
Mixing
| Function | Description |
|---|---|
mix(buffers, ...) |
Mix multiple buffers together |
mix2(buf1, buf2, ...) |
Mix two buffers |
Buffer Utilities
| Function | Description |
|---|---|
reverse(samples, ...) |
Reverse audio |
fade_in(samples, duration, ...) |
Apply fade in |
fade_out(samples, duration, ...) |
Apply fade out |
concat(buffers, ...) |
Concatenate buffers |
Channel Operations
| Function | Description |
|---|---|
to_mono(samples, ...) |
Convert to mono |
to_stereo(samples, ...) |
Convert mono to stereo |
extract_channel(samples, channel, ...) |
Extract single channel |
merge_channels(left, right, ...) |
Merge two mono buffers to stereo |
split_channels(samples, ...) |
Split stereo to two mono buffers |
interleave(channels, ...) |
Interleave multiple mono buffers |
Time and Pitch
| Function | Description |
|---|---|
time_stretch(samples, stretch_factor, ...) |
Time stretch without pitch change |
modify_speed(samples, speed, ...) |
Change speed (affects pitch) |
pitch_shift(samples, semitones, ...) |
Shift pitch without time change |
Spectral Processing
| Function | Description |
|---|---|
spectral_blur(samples, blur_amount, ...) |
Blur/smear spectrum over time |
spectral_shift(samples, shift, ...) |
Shift spectrum up/down |
spectral_stretch(samples, stretch, ...) |
Stretch/compress spectrum |
spectral_focus(samples, freq, bandwidth, ...) |
Focus on frequency region |
spectral_hilite(samples, freq, gain, ...) |
Highlight frequency region |
spectral_fold(samples, freq, ...) |
Fold spectrum around frequency |
spectral_clean(samples, threshold, ...) |
Remove spectral noise |
Filters
| Function | Description |
|---|---|
filter_lowpass(samples, cutoff, ...) |
Low-pass filter |
filter_highpass(samples, cutoff, ...) |
High-pass filter |
filter_bandpass(samples, low, high, ...) |
Band-pass filter |
filter_notch(samples, freq, width, ...) |
Notch/band-reject filter |
Dynamics and EQ
| Function | Description |
|---|---|
gate(samples, threshold, ...) |
Noise gate |
compressor(samples, threshold, ratio, ...) |
Dynamic range compressor |
limiter(samples, threshold, ...) |
Peak limiter |
eq_parametric(samples, freq, gain, q, ...) |
Parametric EQ band |
envelope_follow(samples, ...) |
Extract amplitude envelope |
envelope_apply(samples, envelope, ...) |
Apply envelope to audio |
Effects
| Function | Description |
|---|---|
bitcrush(samples, bits, ...) |
Bit depth reduction |
ring_mod(samples, freq, ...) |
Ring modulation |
delay(samples, time, feedback, ...) |
Delay effect |
chorus(samples, depth, rate, ...) |
Chorus effect |
flanger(samples, depth, rate, ...) |
Flanger effect |
reverb(samples, size, damping, ...) |
Reverb effect |
Envelope Shaping
| Function | Description |
|---|---|
dovetail(samples, fade_time, ...) |
Apply dovetail fades |
tremolo(samples, rate, depth, ...) |
Tremolo effect |
attack(samples, attack_time, ...) |
Modify attack transient |
Distortion
| Function | Description |
|---|---|
distort_overload(samples, gain, ...) |
Overload/saturation distortion |
distort_reverse(samples, ...) |
Reverse distortion effect |
distort_fractal(samples, ...) |
Fractal distortion |
distort_shuffle(samples, ...) |
Shuffle distortion |
distort_cut(samples, cycle_count, ...) |
Waveset cut with decaying envelope |
distort_mark(samples, markers, ...) |
Interpolate wavesets at time markers |
distort_repeat(samples, multiplier, ...) |
Time-stretch by repeating wavecycles |
distort_shift(samples, group_size, ...) |
Shift/swap half-wavecycle groups |
distort_warp(samples, warp, ...) |
Progressive warp distortion with sample folding |
Granular Processing
| Function | Description |
|---|---|
brassage(samples, ...) |
Granular brassage |
freeze(samples, position, ...) |
Granular freeze at position |
grain_cloud(samples, density, ...) |
Granular cloud synthesis |
grain_extend(samples, extension, ...) |
Granular time extension |
texture_simple(samples, ...) |
Simple texture synthesis |
texture_multi(samples, ...) |
Multi-layer texture synthesis |
Morphing and Cross-synthesis
| Function | Description |
|---|---|
morph(buf1, buf2, amount, ...) |
Spectral morph between sounds |
morph_glide(buf1, buf2, ...) |
Gliding morph over time |
cross_synth(carrier, modulator, ...) |
Cross-synthesis (vocoder-like) |
Analysis
| Function | Description |
|---|---|
pitch(samples, ...) |
Extract pitch data |
formants(samples, ...) |
Extract formant data |
get_partials(samples, ...) |
Extract partial/harmonic data |
Experimental/Chaos
| Function | Description |
|---|---|
strange(samples, ...) |
Strange attractor transformation |
brownian(samples, ...) |
Brownian motion transformation |
crystal(samples, ...) |
Crystal growth patterns |
fractal(samples, ...) |
Fractal transformation |
quirk(samples, ...) |
Quirky transformation |
chirikov(samples, ...) |
Chirikov map transformation |
cantor(samples, ...) |
Cantor set transformation |
cascade(samples, ...) |
Cascade transformation |
fracture(samples, ...) |
Fracture transformation |
tesselate(samples, ...) |
Tesselation transformation |
Playback/Time Manipulation
| Function | Description |
|---|---|
zigzag(samples, times, ...) |
Alternating forward/backward playback through time points |
iterate(samples, repeats, ...) |
Repeat audio with pitch shift and gain decay variations |
stutter(samples, segment_ms, ...) |
Segment-based stuttering with silence inserts |
bounce(samples, bounces, ...) |
Bouncing ball effect with accelerating repeats |
drunk(samples, duration, ...) |
Random "drunk walk" navigation through audio |
loop(samples, start, length_ms, ...) |
Loop a section with crossfades and variations |
retime(samples, ratio, ...) |
Time-domain time stretch/compress (TDOLA) |
scramble(samples, mode, ...) |
Reorder wavesets (shuffle, reverse, by size/level) |
splinter(samples, start, ...) |
Fragmenting effect with shrinking repeats |
hover(samples, frequency, location, ...) |
Zigzag reading at specified frequency for hovering pitch effect |
constrict(samples, constriction) |
Shorten or remove silent sections |
phase_invert(samples) |
Invert phase (multiply all samples by -1) |
phase_stereo(samples, transfer) |
Enhance stereo separation via phase subtraction |
wrappage(samples, grain_size, density, ...) |
Granular texture with stereo spatial distribution |
Spatial Effects
| Function | Description |
|---|---|
spin(samples, rate, ...) |
Rotate audio around stereo field with optional doppler |
rotor(samples, pitch_rate, amp_rate, ...) |
Dual-rotation modulation (pitch + amplitude interference) |
flutter(samples, frequency, depth, ...) |
Spatial tremolo (loudness modulation alternating L/R) |
Extended Granular
| Function | Description |
|---|---|
grain_reorder(samples, mode, ...) |
Reorder detected grains (shuffle, reverse, rotate) |
grain_rerhythm(samples, factor, ...) |
Change timing/rhythm of grains |
grain_reverse(samples, ...) |
Reverse individual grains in place |
grain_timewarp(samples, factor, ...) |
Time-stretch/compress grain spacing |
grain_repitch(samples, semitones, ...) |
Pitch-shift grains with interpolation |
grain_position(samples, spread, ...) |
Reposition grains in stereo field |
grain_omit(samples, probability, ...) |
Probabilistically omit grains |
grain_duplicate(samples, count, ...) |
Duplicate grains with variations |
Pitch-Synchronous Operations (PSOW)
| Function | Description |
|---|---|
psow_stretch(samples, stretch_factor, ...) |
Time-stretch while preserving pitch (PSOLA) |
psow_grab(samples, time, duration, ...) |
Extract pitch-synchronous grains from position |
psow_dupl(samples, repeat_count, ...) |
Duplicate grains for time-stretching |
psow_interp(grain1, grain2, ...) |
Interpolate between two grains |
FOF Extraction and Synthesis (FOFEX)
| Function | Description |
|---|---|
fofex_extract(samples, time, ...) |
Extract single FOF (pitch-synchronous grain) at time |
fofex_extract_all(samples, ...) |
Extract all FOFs to uniform-length bank |
fofex_synth(fof_bank, duration, frequency, ...) |
Synthesize audio from FOFs at target pitch |
fofex_repitch(samples, pitch_shift, ...) |
Repitch audio with optional formant preservation |
Synthesis
| Function | Description |
|---|---|
synth_wave(waveform, frequency, ...) |
Generate waveforms (sine, square, saw, ramp, triangle) |
synth_noise(pink, amplitude, ...) |
Generate white or pink noise |
synth_click(tempo, beats_per_bar, ...) |
Generate click/metronome track |
synth_chord(midi_notes, ...) |
Synthesize chord from MIDI note list |
Utility Functions
| Function | Description |
|---|---|
gain_to_db(gain) |
Convert linear gain to decibels |
db_to_gain(db) |
Convert decibels to linear gain |
version() |
Get library version string |
Low-level Functions
These work with explicit Context and Buffer objects:
| Function | Description |
|---|---|
apply_gain(ctx, buf, gain, clip) |
Apply gain in-place |
apply_gain_db(ctx, buf, db, clip) |
Apply dB gain in-place |
apply_normalize(ctx, buf, target) |
Normalize in-place |
apply_normalize_db(ctx, buf, target_db) |
Normalize to dB in-place |
apply_phase_invert(ctx, buf) |
Invert phase in-place |
get_peak(ctx, buf) |
Get peak level and position |
Classes
Context- Processing context (holds error state)Buffer- Audio buffer with buffer protocol supportBuffer.create(frames, channels, sample_rate)- Create new buffer- Supports indexing, len(), and memoryview
Constants
Processing flags:
FLAG_NONE- No processing flagsFLAG_CLIP- Clip output to [-1.0, 1.0]
Waveform types (for synth_wave):
WAVE_SINE- Sine waveWAVE_SQUARE- Square waveWAVE_SAW- Sawtooth waveWAVE_RAMP- Ramp (reverse sawtooth) waveWAVE_TRIANGLE- Triangle wave
Scramble modes (for scramble):
SCRAMBLE_SHUFFLE- Random shuffleSCRAMBLE_REVERSE- Reverse orderSCRAMBLE_SIZE_UP- Sort by size (smallest first)SCRAMBLE_SIZE_DOWN- Sort by size (largest first)SCRAMBLE_LEVEL_UP- Sort by level (quietest first)SCRAMBLE_LEVEL_DOWN- Sort by level (loudest first)
Exceptions
CDPError- Raised on processing errors
Architecture
cycdp/ # Project root
src/cycdp/ # Python package
__init__.py # Public exports
_core.pyx # Cython bindings
cdp_lib.pxd # Cython declarations
projects/
libcdp/ # C library
include/
cdp.h # Main public API
cdp_error.h # Error codes
cdp_types.h # Type definitions
cdp_lib/
cdp_lib.h # Library internal header
cdp_*.h # Category headers (filters, effects, etc.)
src/
context.c # Context management
buffer.c # Buffer management
gain.c # Gain/amplitude operations
io.c # File I/O
channel.c # Channel operations
mix.c # Mixing operations
spatial.c # Spatial/panning
utils.c # Utilities
error.c # Error handling
cpd8/ # CDP8 sources (FFT, includes)
dev/
tests/ # Python tests
CMakeLists.txt # Builds extension
Demos
The demos/ directory contains example scripts demonstrating cycdp usage.
Run All Demos
make demos # Run all demos, output WAV files to build/
make demos-clean # Remove generated WAV files
Synthesis Demos (01-07)
These generate test sounds programmatically and demonstrate the API:
python demos/01_basic_operations.py # Buffers, gain, fades, panning, mixing
python demos/02_effects_and_processing.py # Delay, reverb, modulation, filters
python demos/03_spectral_processing.py # Blur, time stretch, pitch shift, freeze
python demos/04_granular_synthesis.py # Brassage, wrappage, grain ops
python demos/05_pitch_synchronous.py # PSOW, FOF, hover
python demos/06_creative_techniques.py # Effect chains, recipes
python demos/07_morphing.py # Morph, glide, cross-synthesis
FX Processing Demos (fx01-fx07)
CLI tools for processing real audio files:
# Basic usage
python demos/fx01_time_and_pitch.py input.wav -o output_dir/
# All FX demos:
python demos/fx01_time_and_pitch.py input.wav # Time stretch, pitch shift
python demos/fx02_spectral_effects.py input.wav # Blur, focus, fold, freeze
python demos/fx03_granular.py input.wav # Brassage, wrappage, grains
python demos/fx04_reverb_delay_mod.py input.wav # Reverb, delay, modulation
python demos/fx05_distortion_dynamics.py input.wav # Distortion, filters, dynamics
python demos/fx06_psow_fof.py input.wav # PSOW, FOF, hover
python demos/fx07_creative_chains.py input.wav # Complex effect chains
Each FX demo generates multiple output files showcasing different parameter settings.
Development
# Build
make build
# Run tests
make test
# Lint and format
make lint
make format
# Type check
make typecheck
# Full QA
make qa
# Build wheel
make wheel
# See all targets
make help
Adding New Operations
To add more CDP operations:
- Add C implementation to
projects/libcdp/cdp_lib/<operation>.c - Add function declarations to appropriate header in
projects/libcdp/cdp_lib/ - Export from
projects/libcdp/cdp_lib/cdp_lib.h - Update
CMakeLists.txtto include new source file - Add Cython declarations to
src/cycdp/cdp_lib.pxd - Add Cython bindings to
src/cycdp/_core.pyx - Export from
src/cycdp/__init__.py - Add tests to
tests/
License
LGPL-2.1-or-later (same as CDP)
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 cycdp-0.1.1.tar.gz.
File metadata
- Download URL: cycdp-0.1.1.tar.gz
- Upload date:
- Size: 5.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f15f0d8a1c114fb9b7d3d46a935d553b09311b5ac1c8774ec4f0e95e1bbdcfb5
|
|
| MD5 |
8485183749d572e7c5af967bb5757c9c
|
|
| BLAKE2b-256 |
29cef4a56b506e7965f0f6119acf463a84ecebffa173ac830462828d3edfedba
|
File details
Details for the file cycdp-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 518.4 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 |
8192cfc1601ac35fe5abe9d391399b49d7ae55d32cbd7b927748bb63e0512240
|
|
| MD5 |
9460ea03745437e6b9955e069e1110b3
|
|
| BLAKE2b-256 |
1ec61f7e90d92ef924e6513dba1a0670a2cf1c6753f91a64397b21110f48ee6a
|
File details
Details for the file cycdp-0.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 494.2 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 |
47edfbbd8cd7f9f18e686caba1d85bbf5d5ff13077f9545dd67dbe5718a6b0ff
|
|
| MD5 |
fdbe581115abd85afe2ef7a3dc633a5f
|
|
| BLAKE2b-256 |
e06fa275775925571bf3189e187589899f0545579df066c1527a1ce9c3976ad0
|
File details
Details for the file cycdp-0.1.1-cp314-cp314-macosx_15_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp314-cp314-macosx_15_0_arm64.whl
- Upload date:
- Size: 391.9 kB
- Tags: CPython 3.14, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7737a3eabce125ed935ac5c8f34920030d34eab2f0a2e3e23f2efeaf44ec4f1
|
|
| MD5 |
b3d7dc413685f072403fe96a3b53ad0f
|
|
| BLAKE2b-256 |
65a2568efc354fc35720fd85e45dc2c5d3841542949e67e8d467fb377ae91a14
|
File details
Details for the file cycdp-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 383.6 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 |
3e2143f94e5c0ef137103d1130cece15e543c98570fe38ce729d0aee61080e02
|
|
| MD5 |
1af752d720c435d2511ee83adecbf31d
|
|
| BLAKE2b-256 |
c6940fd117aaa0e31f83450a70a3dc3be94532d44948e69d123871377cce6273
|
File details
Details for the file cycdp-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl
- Upload date:
- Size: 444.9 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 |
05abe0b30f7644a5b2e11ec0eee14fe54727a4ad0ffb8be40dc6e896ba2763be
|
|
| MD5 |
bfb9950bb7691315d94a48d863a80c1a
|
|
| BLAKE2b-256 |
159a309a3db156d917c7c575bea3dbb1d6e180d5ce7ec80e3ccb42f71db0750d
|
File details
Details for the file cycdp-0.1.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 413.0 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 |
ec93a3786dc0cb5f407d3df5285ab8811cce133b6ab769141d555ecd8bb0c4f7
|
|
| MD5 |
2b321005d20b201446401d5b502b9300
|
|
| BLAKE2b-256 |
63a1348aa370e5c98efb3936a29c91404a5c98a3337f586afaf24c0bf56b0898
|
File details
Details for the file cycdp-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 516.4 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 |
76174a11dd3f25ac1e9c33f5ff4ae3de0e0c278bd3e15cb0e6c02196af453ae3
|
|
| MD5 |
5d44c9eda261c8d15de505cc4db1d63f
|
|
| BLAKE2b-256 |
a5e1868db7768431c641f212068c8f08676e1fe742644a9425a0cbfaf6cc15b4
|
File details
Details for the file cycdp-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 487.4 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 |
f5af5577ab31ccabd7882983dd0e5a27053c0ef4a209a111449fc16442cedbf2
|
|
| MD5 |
6ecf2748e9d2012316e7f8cd8a20abd7
|
|
| BLAKE2b-256 |
491252861d36f9bacd94c9ef8cfab18b474b1b9cfdf37a792860bc2e20dffb38
|
File details
Details for the file cycdp-0.1.1-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 389.5 kB
- Tags: CPython 3.13, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5218bc2668b229aaab25d97258046ffd4bfbf1137e4bbdf0cd73ea8e2d763d31
|
|
| MD5 |
fae5c251ee603b33e56ca7af9f7d8284
|
|
| BLAKE2b-256 |
f208d35aa53ec560b6b8227afa565960765ac0e3d3a5055975258bbe60548775
|
File details
Details for the file cycdp-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 381.4 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 |
efab93e58cf78d0be744bae0d46121ea87c7627bc5407e7715c47176782501dd
|
|
| MD5 |
e2a1d08b9c5d6638bb3ee4a699afbf6c
|
|
| BLAKE2b-256 |
ec08e8aedabec58f0fa5274ffb6c7476cee37879e764407eedc431291d7bbdd3
|
File details
Details for the file cycdp-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 443.6 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3ed56d79d0cae948b4334870c4a38be5b87c14d6dd387ecea9aedb036db3650
|
|
| MD5 |
57ac46ba731b9a53fe9db61f57e7aecb
|
|
| BLAKE2b-256 |
e640e525497f00dd380988d8c56fe61951b7f881275a3278211da729a902c11a
|
File details
Details for the file cycdp-0.1.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 413.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 |
3c14ede30ec9cbdc180c561e4d6a5362aa30da9ce4e7ecab3e8facf48b4eeb48
|
|
| MD5 |
18b94b8b71f4f2db93ffcd7fecde8c75
|
|
| BLAKE2b-256 |
94094cd8ab21338f0dd5db94543663c4143fd87213df04a6f4cc0bd7c6b6ecf2
|
File details
Details for the file cycdp-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 518.0 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 |
2f21513b8fc43fc82e4cdc88da491971bd3174fa05b512eebad817b1e7fb4cf3
|
|
| MD5 |
08391adc39885deaa6a77108080c5906
|
|
| BLAKE2b-256 |
7b070aa832f7e9bfaf734a5affad6f38f9494b5565d5500d819cd75fa58aaeff
|
File details
Details for the file cycdp-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 487.4 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 |
6812c2c49ea014810d2ceb98a27b3f056e906b6d75e4d51794ae915a3b819d71
|
|
| MD5 |
ed3e8a78ebb346c3b6b65f9589ff4d77
|
|
| BLAKE2b-256 |
6e6e19678d64d3cee1be1158f898540df914ccfd8f87380a044b1ce095550d0f
|
File details
Details for the file cycdp-0.1.1-cp312-cp312-macosx_15_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp312-cp312-macosx_15_0_arm64.whl
- Upload date:
- Size: 390.5 kB
- Tags: CPython 3.12, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b72cf18f75eeac30dab65363db701131dc7f3abd17a1c1418432c91aaaa1c48
|
|
| MD5 |
0479bace9b465d672a3dee1e1a8c5a76
|
|
| BLAKE2b-256 |
8ba1f9dd0beaf69ec83b6e11b49cee5370bc0e55a17fa6da277043ef217f8f56
|
File details
Details for the file cycdp-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 382.2 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 |
483df3b7b00a3561fe9ab20d9e1fdc6df6c5f56bda2f2a2f2c74d0411fd11d4b
|
|
| MD5 |
0ebb3c22db7756194d8a4db32451497d
|
|
| BLAKE2b-256 |
ebdb9ffd2aa157c33f2ee28600163dab747cd22970717811cc5eae7ad69d8851
|
File details
Details for the file cycdp-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 444.3 kB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f9033f82418cda4fc466b7f5343c872ec29a2b18debfc87becd27873b2470b0
|
|
| MD5 |
765651bba3391574968404ea7226ac21
|
|
| BLAKE2b-256 |
2e360051f628f31af87c005e3da14d85cdc54226f77ff4c15908e766c469fc1a
|
File details
Details for the file cycdp-0.1.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 439.4 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 |
7eb1d5ecb97bab255558b04bf557752de4dd21b0f453d3380e11af8815001134
|
|
| MD5 |
6ec1f2d32863744089a3f6af5fdf3030
|
|
| BLAKE2b-256 |
0f854c8414c98d1e4a6709356cfb8d308842d419073a50a8a0cd96e05e0884e6
|
File details
Details for the file cycdp-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 532.1 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 |
e2bdba2085fb0c02ec975839c5e08e55de6e034b307ec3737f4b9311b5d846ba
|
|
| MD5 |
b381c477283564d1cd23806d8551375e
|
|
| BLAKE2b-256 |
d3324ca3e6579e9c9d5d42acc3a3d0bc0890001a4626d31e8cc8a11c0d37dceb
|
File details
Details for the file cycdp-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 509.7 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 |
e624f0ad84b0d5ae7ea3068d6bcf0a211a8ba97cc9599f6e26ccc44450aa4017
|
|
| MD5 |
f4d5bb1353fa2e3aaf8f8430a21e2a18
|
|
| BLAKE2b-256 |
373f170f423601901e205264cd2c7318e527d511765501dae9d3a581216eb798
|
File details
Details for the file cycdp-0.1.1-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 389.8 kB
- Tags: CPython 3.11, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e306aaa3f182a12ac9ce6c62a48dac2bb14a2d5383544513d5ff87ea71317a87
|
|
| MD5 |
9d4655315f41c483bb5aa8fc7587cbfc
|
|
| BLAKE2b-256 |
4a41098d8d2585256d00541d4eb31c4db46ffd61cde12153beee6aa2b983dbd4
|
File details
Details for the file cycdp-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 382.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 |
ff4caf6b95d0e69c4dd623c97df1bfa4cc9615aec60001ea99b6085437f1114b
|
|
| MD5 |
213bff4fe2d77f9ccf49fbdefdca785c
|
|
| BLAKE2b-256 |
5e0e5003c33aacf344112376e75120d3bdd4d76d0b19a9146d2e1314081ce881
|
File details
Details for the file cycdp-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 438.5 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d756855a5fde180e8ec2f222e7183ceac818f9a49c6d68d60ac2dda7f7889ac7
|
|
| MD5 |
eb7946e2959b2cae7b0fe00f391a513d
|
|
| BLAKE2b-256 |
0d72eb19a367555e3798af4225109f1cf10b5ca68f3b12052f58eed2d95ccd7a
|
File details
Details for the file cycdp-0.1.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 439.8 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 |
acffe01083e59e60f541ba477bedf5731b8e5ac9eaf47dab35e48c22e8ce92ef
|
|
| MD5 |
0de6996f257cea87ec7bf244d9b2f000
|
|
| BLAKE2b-256 |
5976b70cbe3a1368eb42e52a9591746a0a65144d8405e67fa97db6153aa12f74
|
File details
Details for the file cycdp-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 534.7 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 |
0ce55581657456417e70fd461861d50c6ad032467fd4b3b98d61b39ec13c88e2
|
|
| MD5 |
1510904c31d2f70dc1461d3f45d385eb
|
|
| BLAKE2b-256 |
9f6f99a957ad582593ab90addf6c48c35e8921b5a25e43f3a15ab612a2032d66
|
File details
Details for the file cycdp-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 509.4 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 |
d90d6fab49c5e34659efd47f86ba6b8dcfe0d79e9a89d16cdde77af44624a07b
|
|
| MD5 |
1a31bcb90e3bdae35685fbbc75254bcb
|
|
| BLAKE2b-256 |
31c033a46dc8969145f99841381a34d10df8ae14879c115690dc02c598a3c81b
|
File details
Details for the file cycdp-0.1.1-cp310-cp310-macosx_15_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp310-cp310-macosx_15_0_arm64.whl
- Upload date:
- Size: 389.9 kB
- Tags: CPython 3.10, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26fb70834e5c57f778c82ee8391536b6bfbc217e7a211fe8d9b3b99ca89bcc49
|
|
| MD5 |
499e8552222196e8109ae83f0ce80caf
|
|
| BLAKE2b-256 |
2c35487f4627eafd95842cb9e13c0170e7cc6eb639b52bf14e16b49b5c33c6e2
|
File details
Details for the file cycdp-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 382.0 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 |
ebc6b867c3daaf339b0292aaac711f931723114dcc60fd8a5cf359876f9c9d3b
|
|
| MD5 |
8bd807ba45ae7a974863a2231611d4a0
|
|
| BLAKE2b-256 |
efcd2246f6bc8c003a9e7942a5e55e67addc44c69d08e6703f5fea4dff185ce8
|
File details
Details for the file cycdp-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: cycdp-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 438.1 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7987e8ee944b63361cf2df78ba0af521143d410f66cc32fab94113851585e3b3
|
|
| MD5 |
1912079e0af75fec30f62837bea3cd3b
|
|
| BLAKE2b-256 |
92a2a27619338a0446f2de9a99a09a6007efb1d51f164fc3b27d5d455030f63e
|