Metadata-Version: 2.4
Name: pozalabs-pydub
Version: 0.38.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Sound/Audio :: Analysis
Classifier: Topic :: Multimedia :: Sound/Audio :: Conversion
Classifier: Topic :: Multimedia :: Sound/Audio :: Editors
Classifier: Topic :: Multimedia :: Sound/Audio :: Mixers
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Dist: audioop-lts>=0.2.1 ; python_full_version >= '3.13'
Requires-Dist: zstandard>=0.23.0 ; extra == 'zstd'
Provides-Extra: zstd
License-File: LICENSE
Summary: Manipulate audio with an simple and easy high level interface (Pozalabs fork)
Author-email: sunwoong <sunwoong@pozalabs.com>
License-Expression: MIT
Requires-Python: >=3.11, <4.0
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# Pydub (Pozalabs Fork)

Pydub lets you do stuff to audio in a way that isn't stupid.

This is a [Pozalabs](https://github.com/Pozalabs) fork of [jiaaro/pydub](https://github.com/jiaaro/pydub), published as `pozalabs-pydub` on PyPI.

## Changes from Upstream

### Requirements

- Python 3.11+ (upstream supports Python 2.7+)
- All legacy Python 2 compatibility code has been removed

### Performance (Rust/PyO3 Extensions)

- `overlay_segments` - Pre-allocated buffer overlay replacing audioop.add/mul (16-bit 4-5x, 32-bit 11-16x faster)
- `extend_24bit_to_32bit` - Zero-copy 24-bit to 32-bit sample extension via direct PyBytes allocation (~400x faster than pure Python)
- `fade()` - Memory-efficient fade using `memoryview`, with coarse/precise two-path implementation

### New Features

- **Compressed audio I/O** - `from_file()` auto-detects and decompresses gzip/zstd files; `export()` accepts an optional `compressor` parameter
- **Audio level metering** - `measure_audio_level()` for RMS, peak, and LUFS measurement
- **Waveform data** - `get_normalized_amplitudes()` computes normalized amplitude values for waveform visualization
- **Silent audio generation** - Create silent audio matching the original segment's parameters
- **Audio processing framework** - Command-based processor architecture for merge, overlay, and format conversion
- **Python 3.13 support** - Via `audioop-lts` dependency

### Type Safety

- Comprehensive type hints using `Self`, `Literal`, `TypedDict`, `Unpack`
- `_AudioParams` dataclass with validation for initialization parameters

### Build System

- `pyproject.toml` with maturin backend, managed by uv
- Rust(PyO3) native extension compiled via maturin
- Wheel distribution via GitHub Actions

### Optional Dependencies

- `zstandard` (>=0.23.0) - Zstandard compression (`pip install pozalabs-pydub[zstd]`)

For general usage, API documentation, and ffmpeg setup, see the [upstream README](https://github.com/jiaaro/pydub#readme).

## License

[MIT License](http://opensource.org/licenses/mit-license.php) - Copyright 2011 James Robert

