from __future__ import annotations from typing import Dict, List from backend.core.analysis_knobs import ( DEFAULT_BOTTOM_UP_INSTRUCTIONS, DEFAULT_BOTTOM_UP_ATTRIBUTES, DEFAULT_RUBRIC_INSTRUCTIONS, DEFAULT_RUBRIC_ATTRIBUTES, DEFAULT_TOP_DOWN_INSTRUCTIONS, DEFAULT_TOP_DOWN_ATTRIBUTES, ) DEFAULT_ANALYSIS_TEMPLATE: Dict[str, object] = { "template_id": "analysis_default", "name": "Default Analysis", "bottom_up_instructions": DEFAULT_BOTTOM_UP_INSTRUCTIONS, "bottom_up_attributes": list(DEFAULT_BOTTOM_UP_ATTRIBUTES), "rubric_instructions": DEFAULT_RUBRIC_INSTRUCTIONS, "rubric_attributes": list(DEFAULT_RUBRIC_ATTRIBUTES), "top_down_instructions": DEFAULT_TOP_DOWN_INSTRUCTIONS, "top_down_attributes": list(DEFAULT_TOP_DOWN_ATTRIBUTES), "categories": [ {"category_id": "symptoms_concerns", "label": "Symptoms/concerns"}, {"category_id": "daily_management", "label": "Daily management"}, {"category_id": "barriers_constraints", "label": "Barriers/constraints"}, {"category_id": "support_resources", "label": "Support/resources"}, ], } def default_analysis_categories() -> List[Dict[str, str]]: cats = DEFAULT_ANALYSIS_TEMPLATE.get("categories") # type: ignore[assignment] if isinstance(cats, list): return [c for c in cats if isinstance(c, dict)] # type: ignore[return-value] return []