# x-odos Music Library API Requirements
# Python 3.8+ (Python 3.8 und 3.13 werden unterstützt)

# Web Framework
Flask>=2.0.0,<3.0.0

# WSGI Production Server — fester Thread-Pool statt Werkzeug-Dev-Server
# (begrenzt RAM/Threads; reines Python, keine C-Abhängigkeiten).
# waitress 3.x verlangt Python >= 3.9 -> auf F23/Python 3.8 letzte 2.x.
waitress>=2.1.0,<3.0.0; python_version < '3.9'
waitress>=3.0.0; python_version >= '3.9'

# Audio Metadata
mutagen>=1.45.0

# Image Processing
# Für Python 3.8: pip3.8 install "Pillow>=8.0.0,<10.0.0"
# Für Python 3.13: pip3.13 install "Pillow>=10.0.0"
Pillow>=8.0.0; python_version < '3.13'
Pillow>=10.0.0; python_version >= '3.13'

# Music Database APIs
musicbrainzngs>=0.7.1
pyacoustid==1.1.7  # Compatible with older chromaprint versions (Fedora: dnf install chromaprint chromaprint-tools)
discogs-client>=2.3.0

# CD Ripping
# Audio-CD Metadata-Erkennung (MusicBrainz DiscID)
# Requires system package: libdiscid (Fedora: dnf install libdiscid libdiscid-devel)
discid>=1.2.0

# File System Monitoring
watchdog>=2.1.0,<3.0.0

# MPD Integration
python-mpd2>=3.0.0

# Hardware (BlinkStick LED) - Optional USB-LED Hardware
# Auf Linux: funktioniert nur mit libusb, nicht mit pywinusb
blinkstick>=1.2.0  # Optional - auskommentiert da pywinusb Windows-only ist
# pyusb 1.3.0+ verlangt Python >= 3.9 -> auf F23/Python 3.8 letzte 3.8-Version (1.2.1)
pyusb>=1.2.1,<1.3.0; python_version < '3.9'
pyusb>=1.3.1; python_version >= '3.9'

# Audio Analysis for LED Music Sync
# Benötigt auf Fedora: sudo dnf install gcc alsa-lib-devel python3-devel
# Benötigt auf Debian/Ubuntu: sudo apt install gcc libasound2-dev python3-dev
pyalsaaudio>=0.9.0
# numpy 1.25+ verlangt Python >= 3.9 -> auf F23/Python 3.8 letzte 3.8-Version (1.24.x)
numpy>=1.19.0,<1.25; python_version < '3.9'   # Optional - Fallback ohne numpy verfügbar
numpy>=1.19.0; python_version >= '3.9'

# HTTP Requests
requests>=2.25.0

# Device Monitoring (USB, Optical Drives)
pyudev>=0.23.0

# CORS Support
flask-cors>=3.0.0
