Add new "audio" color strip source type with three visualization modes (spectrum analyzer, beat pulse, VU meter) supporting WASAPI loopback and microphone input via PyAudioWPatch. Includes shared audio capture with ref counting, real-time FFT spectrum analysis, and beat detection. Improve all referential integrity 409 error messages across delete endpoints to include specific names of referencing entities instead of generic "one or more" messages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
87 lines
2.3 KiB
TOML
87 lines
2.3 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "wled-screen-controller"
|
|
version = "0.1.0"
|
|
description = "WLED ambient lighting controller based on screen content"
|
|
authors = [
|
|
{name = "Alexei Dolgolyov", email = "dolgolyov.alexei@gmail.com"}
|
|
]
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
license = {text = "MIT"}
|
|
keywords = ["wled", "ambient-lighting", "screen-capture", "home-automation"]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: End Users/Desktop",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
]
|
|
|
|
dependencies = [
|
|
"fastapi>=0.115.0",
|
|
"uvicorn[standard]>=0.32.0",
|
|
"httpx>=0.27.2",
|
|
"mss>=9.0.2",
|
|
"Pillow>=10.4.0",
|
|
"numpy>=2.1.3",
|
|
"pydantic>=2.9.2",
|
|
"pydantic-settings>=2.6.0",
|
|
"PyYAML>=6.0.2",
|
|
"structlog>=24.4.0",
|
|
"python-json-logger>=3.1.0",
|
|
"python-dateutil>=2.9.0",
|
|
"python-multipart>=0.0.12",
|
|
"jinja2>=3.1.0",
|
|
"wmi>=1.5.1; sys_platform == 'win32'",
|
|
"zeroconf>=0.131.0",
|
|
"pyserial>=3.5",
|
|
"psutil>=5.9.0",
|
|
"nvidia-ml-py>=12.0.0; sys_platform == 'win32'",
|
|
"PyAudioWPatch>=0.2.12; sys_platform == 'win32'",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.3.3",
|
|
"pytest-asyncio>=0.24.0",
|
|
"pytest-cov>=6.0.0",
|
|
"respx>=0.21.1",
|
|
"black>=24.0.0",
|
|
"ruff>=0.6.0",
|
|
]
|
|
# High-performance screen capture engines (Windows only)
|
|
perf = [
|
|
"dxcam>=0.0.5; sys_platform == 'win32'",
|
|
"bettercam>=1.0.0; sys_platform == 'win32'",
|
|
"windows-capture>=1.5.0; sys_platform == 'win32'",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://git.dolgolyov-family.by/alexei.dolgolyov/wled-screen-controller-mixed"
|
|
Repository = "https://git.dolgolyov-family.by/alexei.dolgolyov/wled-screen-controller-mixed"
|
|
Issues = "https://git.dolgolyov-family.by/alexei.dolgolyov/wled-screen-controller-mixed/issues"
|
|
|
|
[tool.setuptools]
|
|
package-dir = {"" = "src"}
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|
|
addopts = "-v --cov=wled_controller --cov-report=html --cov-report=term"
|
|
|
|
[tool.black]
|
|
line-length = 100
|
|
target-version = ['py311']
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py311"
|