[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", "PyAudioWPatch>=0.2.12; sys_platform == 'win32'", "sounddevice>=0.5", "aiomqtt>=2.0.0", "openrgb-python>=0.2.15", ] [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", ] camera = [ "opencv-python-headless>=4.8.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"