Refactor capture engine architecture, rename PictureStream to PictureSource, and split API modules
- Separate CaptureEngine into stateless factory + stateful CaptureStream session - Add LiveStream/LiveStreamManager for shared capture with reference counting - Rename PictureStream to PictureSource across storage, API, and UI - Remove legacy migration logic and unused compatibility code - Split monolithic routes.py (1935 lines) into 5 focused route modules - Split schemas.py (480 lines) into 7 schema modules with re-exports - Extract dependency injection into dedicated dependencies.py Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -31,25 +31,8 @@ class PostprocessingTemplate:
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: dict) -> "PostprocessingTemplate":
|
||||
"""Create template from dictionary.
|
||||
|
||||
Supports migration from legacy flat-field format (gamma/saturation/brightness)
|
||||
to the new filters list format.
|
||||
"""
|
||||
if "filters" in data:
|
||||
filters = [FilterInstance.from_dict(f) for f in data["filters"]]
|
||||
else:
|
||||
# Legacy migration: construct filters from flat fields
|
||||
filters = []
|
||||
brightness = data.get("brightness", 1.0)
|
||||
if brightness != 1.0:
|
||||
filters.append(FilterInstance("brightness", {"value": brightness}))
|
||||
saturation = data.get("saturation", 1.0)
|
||||
if saturation != 1.0:
|
||||
filters.append(FilterInstance("saturation", {"value": saturation}))
|
||||
gamma = data.get("gamma", 2.2)
|
||||
if gamma != 2.2:
|
||||
filters.append(FilterInstance("gamma", {"value": gamma}))
|
||||
"""Create template from dictionary."""
|
||||
filters = [FilterInstance.from_dict(f) for f in data.get("filters", [])]
|
||||
|
||||
return cls(
|
||||
id=data["id"],
|
||||
|
||||
Reference in New Issue
Block a user