feat(01-01): create package structure, Pydantic models, and device abstractions

- pyproject.toml with FastAPI, uvicorn, Pydantic v2, aiofiles, structlog deps
- DeviceConfig Pydantic model with StripType, UUID, validation constraints
- ShowModel with AudioRef, TrackModel, CueModel, AnalysisBlock, schema_version=1
- BaseDevice ABC with encode_frame, encode_animation_cmd, bytes_per_pixel
- SK6812Device (4 bytes/pixel) and WS2801Device (3 bytes/pixel) implementations
This commit is contained in:
Claude
2026-04-05 18:45:19 +00:00
parent 5721bef791
commit 061edfcf6a
10 changed files with 179 additions and 0 deletions

21
pyproject.toml Normal file
View File

@@ -0,0 +1,21 @@
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "lightsync"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
"fastapi>=0.115.0",
"uvicorn[standard]>=0.34.0",
"pydantic>=2.0.0",
"aiofiles>=24.0.0",
"python-dotenv>=1.0.0",
"structlog>=24.0.0",
]
[project.optional-dependencies]
dev = [
"httpx>=0.27.0",
]