Skip to main content

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 support
    • Buffer.create(frames, channels, sample_rate) - Create new buffer
    • Supports indexing, len(), and memoryview

Constants

Processing flags:

  • FLAG_NONE - No processing flags
  • FLAG_CLIP - Clip output to [-1.0, 1.0]

Waveform types (for synth_wave):

  • WAVE_SINE - Sine wave
  • WAVE_SQUARE - Square wave
  • WAVE_SAW - Sawtooth wave
  • WAVE_RAMP - Ramp (reverse sawtooth) wave
  • WAVE_TRIANGLE - Triangle wave

Scramble modes (for scramble):

  • SCRAMBLE_SHUFFLE - Random shuffle
  • SCRAMBLE_REVERSE - Reverse order
  • SCRAMBLE_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:

  1. Add C implementation to projects/libcdp/cdp_lib/<operation>.c
  2. Add function declarations to appropriate header in projects/libcdp/cdp_lib/
  3. Export from projects/libcdp/cdp_lib/cdp_lib.h
  4. Update CMakeLists.txt to include new source file
  5. Add Cython declarations to src/cycdp/cdp_lib.pxd
  6. Add Cython bindings to src/cycdp/_core.pyx
  7. Export from src/cycdp/__init__.py
  8. Add tests to tests/

License

LGPL-2.1-or-later (same as CDP)

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

cycdp-0.1.1.tar.gz (5.2 MB view details)

Uploaded Source

Built Distributions

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

cycdp-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (518.4 kB view details)

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

cycdp-0.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (494.2 kB view details)

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

cycdp-0.1.1-cp314-cp314-macosx_15_0_arm64.whl (391.9 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

cycdp-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (383.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cycdp-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl (444.9 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

cycdp-0.1.1-cp313-cp313-win_amd64.whl (413.0 kB view details)

Uploaded CPython 3.13Windows x86-64

cycdp-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (516.4 kB view details)

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

cycdp-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (487.4 kB view details)

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

cycdp-0.1.1-cp313-cp313-macosx_15_0_arm64.whl (389.5 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

cycdp-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (381.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cycdp-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl (443.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cycdp-0.1.1-cp312-cp312-win_amd64.whl (413.5 kB view details)

Uploaded CPython 3.12Windows x86-64

cycdp-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (518.0 kB view details)

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

cycdp-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (487.4 kB view details)

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

cycdp-0.1.1-cp312-cp312-macosx_15_0_arm64.whl (390.5 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

cycdp-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (382.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cycdp-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl (444.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

cycdp-0.1.1-cp311-cp311-win_amd64.whl (439.4 kB view details)

Uploaded CPython 3.11Windows x86-64

cycdp-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (532.1 kB view details)

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

cycdp-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (509.7 kB view details)

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

cycdp-0.1.1-cp311-cp311-macosx_15_0_arm64.whl (389.8 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

cycdp-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (382.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cycdp-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl (438.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cycdp-0.1.1-cp310-cp310-win_amd64.whl (439.8 kB view details)

Uploaded CPython 3.10Windows x86-64

cycdp-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (534.7 kB view details)

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

cycdp-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (509.4 kB view details)

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

cycdp-0.1.1-cp310-cp310-macosx_15_0_arm64.whl (389.9 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

cycdp-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (382.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cycdp-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl (438.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Hashes for cycdp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f15f0d8a1c114fb9b7d3d46a935d553b09311b5ac1c8774ec4f0e95e1bbdcfb5
MD5 8485183749d572e7c5af967bb5757c9c
BLAKE2b-256 29cef4a56b506e7965f0f6119acf463a84ecebffa173ac830462828d3edfedba

See more details on using hashes here.

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

File hashes

Hashes for cycdp-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8192cfc1601ac35fe5abe9d391399b49d7ae55d32cbd7b927748bb63e0512240
MD5 9460ea03745437e6b9955e069e1110b3
BLAKE2b-256 1ec61f7e90d92ef924e6513dba1a0670a2cf1c6753f91a64397b21110f48ee6a

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 47edfbbd8cd7f9f18e686caba1d85bbf5d5ff13077f9545dd67dbe5718a6b0ff
MD5 fdbe581115abd85afe2ef7a3dc633a5f
BLAKE2b-256 e06fa275775925571bf3189e187589899f0545579df066c1527a1ce9c3976ad0

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e7737a3eabce125ed935ac5c8f34920030d34eab2f0a2e3e23f2efeaf44ec4f1
MD5 b3d7dc413685f072403fe96a3b53ad0f
BLAKE2b-256 65a2568efc354fc35720fd85e45dc2c5d3841542949e67e8d467fb377ae91a14

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e2143f94e5c0ef137103d1130cece15e543c98570fe38ce729d0aee61080e02
MD5 1af752d720c435d2511ee83adecbf31d
BLAKE2b-256 c6940fd117aaa0e31f83450a70a3dc3be94532d44948e69d123871377cce6273

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 05abe0b30f7644a5b2e11ec0eee14fe54727a4ad0ffb8be40dc6e896ba2763be
MD5 bfb9950bb7691315d94a48d863a80c1a
BLAKE2b-256 159a309a3db156d917c7c575bea3dbb1d6e180d5ce7ec80e3ccb42f71db0750d

See more details on using hashes here.

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

Hashes for cycdp-0.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ec93a3786dc0cb5f407d3df5285ab8811cce133b6ab769141d555ecd8bb0c4f7
MD5 2b321005d20b201446401d5b502b9300
BLAKE2b-256 63a1348aa370e5c98efb3936a29c91404a5c98a3337f586afaf24c0bf56b0898

See more details on using hashes here.

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

File hashes

Hashes for cycdp-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76174a11dd3f25ac1e9c33f5ff4ae3de0e0c278bd3e15cb0e6c02196af453ae3
MD5 5d44c9eda261c8d15de505cc4db1d63f
BLAKE2b-256 a5e1868db7768431c641f212068c8f08676e1fe742644a9425a0cbfaf6cc15b4

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f5af5577ab31ccabd7882983dd0e5a27053c0ef4a209a111449fc16442cedbf2
MD5 6ecf2748e9d2012316e7f8cd8a20abd7
BLAKE2b-256 491252861d36f9bacd94c9ef8cfab18b474b1b9cfdf37a792860bc2e20dffb38

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 5218bc2668b229aaab25d97258046ffd4bfbf1137e4bbdf0cd73ea8e2d763d31
MD5 fae5c251ee603b33e56ca7af9f7d8284
BLAKE2b-256 f208d35aa53ec560b6b8227afa565960765ac0e3d3a5055975258bbe60548775

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 efab93e58cf78d0be744bae0d46121ea87c7627bc5407e7715c47176782501dd
MD5 e2a1d08b9c5d6638bb3ee4a699afbf6c
BLAKE2b-256 ec08e8aedabec58f0fa5274ffb6c7476cee37879e764407eedc431291d7bbdd3

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a3ed56d79d0cae948b4334870c4a38be5b87c14d6dd387ecea9aedb036db3650
MD5 57ac46ba731b9a53fe9db61f57e7aecb
BLAKE2b-256 e640e525497f00dd380988d8c56fe61951b7f881275a3278211da729a902c11a

See more details on using hashes here.

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

Hashes for cycdp-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3c14ede30ec9cbdc180c561e4d6a5362aa30da9ce4e7ecab3e8facf48b4eeb48
MD5 18b94b8b71f4f2db93ffcd7fecde8c75
BLAKE2b-256 94094cd8ab21338f0dd5db94543663c4143fd87213df04a6f4cc0bd7c6b6ecf2

See more details on using hashes here.

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

File hashes

Hashes for cycdp-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f21513b8fc43fc82e4cdc88da491971bd3174fa05b512eebad817b1e7fb4cf3
MD5 08391adc39885deaa6a77108080c5906
BLAKE2b-256 7b070aa832f7e9bfaf734a5affad6f38f9494b5565d5500d819cd75fa58aaeff

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6812c2c49ea014810d2ceb98a27b3f056e906b6d75e4d51794ae915a3b819d71
MD5 ed3e8a78ebb346c3b6b65f9589ff4d77
BLAKE2b-256 6e6e19678d64d3cee1be1158f898540df914ccfd8f87380a044b1ce095550d0f

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6b72cf18f75eeac30dab65363db701131dc7f3abd17a1c1418432c91aaaa1c48
MD5 0479bace9b465d672a3dee1e1a8c5a76
BLAKE2b-256 8ba1f9dd0beaf69ec83b6e11b49cee5370bc0e55a17fa6da277043ef217f8f56

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 483df3b7b00a3561fe9ab20d9e1fdc6df6c5f56bda2f2a2f2c74d0411fd11d4b
MD5 0ebb3c22db7756194d8a4db32451497d
BLAKE2b-256 ebdb9ffd2aa157c33f2ee28600163dab747cd22970717811cc5eae7ad69d8851

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6f9033f82418cda4fc466b7f5343c872ec29a2b18debfc87becd27873b2470b0
MD5 765651bba3391574968404ea7226ac21
BLAKE2b-256 2e360051f628f31af87c005e3da14d85cdc54226f77ff4c15908e766c469fc1a

See more details on using hashes here.

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

Hashes for cycdp-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7eb1d5ecb97bab255558b04bf557752de4dd21b0f453d3380e11af8815001134
MD5 6ec1f2d32863744089a3f6af5fdf3030
BLAKE2b-256 0f854c8414c98d1e4a6709356cfb8d308842d419073a50a8a0cd96e05e0884e6

See more details on using hashes here.

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

File hashes

Hashes for cycdp-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e2bdba2085fb0c02ec975839c5e08e55de6e034b307ec3737f4b9311b5d846ba
MD5 b381c477283564d1cd23806d8551375e
BLAKE2b-256 d3324ca3e6579e9c9d5d42acc3a3d0bc0890001a4626d31e8cc8a11c0d37dceb

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e624f0ad84b0d5ae7ea3068d6bcf0a211a8ba97cc9599f6e26ccc44450aa4017
MD5 f4d5bb1353fa2e3aaf8f8430a21e2a18
BLAKE2b-256 373f170f423601901e205264cd2c7318e527d511765501dae9d3a581216eb798

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e306aaa3f182a12ac9ce6c62a48dac2bb14a2d5383544513d5ff87ea71317a87
MD5 9d4655315f41c483bb5aa8fc7587cbfc
BLAKE2b-256 4a41098d8d2585256d00541d4eb31c4db46ffd61cde12153beee6aa2b983dbd4

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ff4caf6b95d0e69c4dd623c97df1bfa4cc9615aec60001ea99b6085437f1114b
MD5 213bff4fe2d77f9ccf49fbdefdca785c
BLAKE2b-256 5e0e5003c33aacf344112376e75120d3bdd4d76d0b19a9146d2e1314081ce881

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d756855a5fde180e8ec2f222e7183ceac818f9a49c6d68d60ac2dda7f7889ac7
MD5 eb7946e2959b2cae7b0fe00f391a513d
BLAKE2b-256 0d72eb19a367555e3798af4225109f1cf10b5ca68f3b12052f58eed2d95ccd7a

See more details on using hashes here.

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

Hashes for cycdp-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 acffe01083e59e60f541ba477bedf5731b8e5ac9eaf47dab35e48c22e8ce92ef
MD5 0de6996f257cea87ec7bf244d9b2f000
BLAKE2b-256 5976b70cbe3a1368eb42e52a9591746a0a65144d8405e67fa97db6153aa12f74

See more details on using hashes here.

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

File hashes

Hashes for cycdp-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ce55581657456417e70fd461861d50c6ad032467fd4b3b98d61b39ec13c88e2
MD5 1510904c31d2f70dc1461d3f45d385eb
BLAKE2b-256 9f6f99a957ad582593ab90addf6c48c35e8921b5a25e43f3a15ab612a2032d66

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d90d6fab49c5e34659efd47f86ba6b8dcfe0d79e9a89d16cdde77af44624a07b
MD5 1a31bcb90e3bdae35685fbbc75254bcb
BLAKE2b-256 31c033a46dc8969145f99841381a34d10df8ae14879c115690dc02c598a3c81b

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 26fb70834e5c57f778c82ee8391536b6bfbc217e7a211fe8d9b3b99ca89bcc49
MD5 499e8552222196e8109ae83f0ce80caf
BLAKE2b-256 2c35487f4627eafd95842cb9e13c0170e7cc6eb639b52bf14e16b49b5c33c6e2

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ebc6b867c3daaf339b0292aaac711f931723114dcc60fd8a5cf359876f9c9d3b
MD5 8bd807ba45ae7a974863a2231611d4a0
BLAKE2b-256 efcd2246f6bc8c003a9e7942a5e55e67addc44c69d08e6703f5fea4dff185ce8

See more details on using hashes here.

File details

Details for the file cycdp-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cycdp-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7987e8ee944b63361cf2df78ba0af521143d410f66cc32fab94113851585e3b3
MD5 1912079e0af75fec30f62837bea3cd3b
BLAKE2b-256 92a2a27619338a0446f2de9a99a09a6007efb1d51f164fc3b27d5d455030f63e

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