- ESP32Transport.send_command() injects v:1, fire-and-forget, silent drop if not ready - 512-byte payload limit enforced with warning log - datagram_received() parses STATUS ok → connected=True, stores last_status - on_status callback support for status update notifications - connection_lost() sets connected=False, clears transport ref - create_esp32_transport() async factory sends initial STATUS ping (D-12) - All protocol behaviors match docs/protocol.md exactly (D-10, D-11, D-12, D-14) - Add pytest-asyncio to dev deps + asyncio_mode=auto for test suite
29 lines
550 B
TOML
29 lines
550 B
TOML
[project]
|
|
name = "led-sync-studio"
|
|
version = "0.1.0"
|
|
description = "Cyberpunk LED choreography app for Raspberry Pi + ESP32"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"miniaudio==1.61",
|
|
"numpy>=2.4.4",
|
|
"pydantic==2.12.5",
|
|
"sounddevice==0.5.5",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/led_sync"]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"pytest-asyncio>=0.23",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|