Replace the Microdot-only entrypoint with a CombinedASGI app that handles FastAPI routes (audio API, websocket, dev live-reload) while delegating the rest to Microdot. Suppress noisy /__dev/ access logs during live-reload polling. Co-authored-by: Cursor <cursoragent@cursor.com>
38 lines
1.3 KiB
TOML
38 lines
1.3 KiB
TOML
[[source]]
|
|
url = "https://pypi.org/simple"
|
|
verify_ssl = true
|
|
name = "pypi"
|
|
|
|
[packages]
|
|
mpremote = "*"
|
|
pyserial = "*"
|
|
pyserial-asyncio = "*"
|
|
esptool = "*"
|
|
pyjwt = "*"
|
|
watchfiles = "*"
|
|
requests = "*"
|
|
selenium = "*"
|
|
adafruit-ampy = "*"
|
|
microdot = "*"
|
|
fastapi = "*"
|
|
websockets = "*"
|
|
httpx = "*"
|
|
numpy = "*"
|
|
sounddevice = "*"
|
|
uvicorn = {extras = ["standard"], version = "*"}
|
|
|
|
[dev-packages]
|
|
pytest = "*"
|
|
|
|
[requires]
|
|
python_version = "3.11"
|
|
|
|
[scripts]
|
|
web = "python tests/web.py"
|
|
watch = "python -m watchfiles \"python tests/web.py\" src tests"
|
|
run = "sh -c 'cd src && uvicorn fastapi_app:app --host 0.0.0.0 --port \"${PORT:-80}\"'"
|
|
dev = "sh -c 'cd src && LED_CONTROLLER_LIVE_RELOAD=1 uvicorn fastapi_app:app --host 0.0.0.0 --port \"${PORT:-80}\" --reload --reload-dir . --reload-include \"**/*.html\" --reload-include \"**/*.css\" --reload-include \"**/*.js\" --reload-exclude \"**/db/**\" --reload-exclude \"**/settings.json\" --reload-exclude \"**/settings.json.*\"'"
|
|
test = "python -m pytest"
|
|
test-browser = "sh -c 'python tests/web.py > /tmp/led-controller-web.log 2>&1 & pid=$!; trap \"kill $pid\" EXIT; sleep 2; LED_CONTROLLER_RUN_BROWSER_TESTS=1 LED_CONTROLLER_DEVICE_IP=http://127.0.0.1:5000 python -m pytest tests/test_browser.py'"
|
|
test-browser-device = "sh -c 'LED_CONTROLLER_RUN_BROWSER_TESTS=1 python -m pytest tests/test_browser.py'"
|