Extract details from all task.yaml files.
(tasks_dir: Path)
| 33 | |
| 34 | |
| 35 | def extract_task_details(tasks_dir: Path) -> List[Dict[str, Any]]: |
| 36 | """Extract details from all task.yaml files.""" |
| 37 | task_details = [] |
| 38 | |
| 39 | # Iterate through all task directories |
| 40 | for task_dir in tasks_dir.iterdir(): |
| 41 | if not task_dir.is_dir() or task_dir.name.startswith("."): |
| 42 | continue |
| 43 | |
| 44 | task_yaml_path = task_dir / "task.yaml" |
| 45 | if not task_yaml_path.exists(): |
| 46 | print(f"Warning: No task.yaml found in {task_dir}") |
| 47 | continue |
| 48 | |
| 49 | # Load task configuration |
| 50 | task_config = load_yaml_file(task_yaml_path) |
| 51 | if not task_config: |
| 52 | continue |
| 53 | |
| 54 | # Extract basic task info |
| 55 | task_id = clean_text_for_spreadsheet(task_config.get("task_id", "")) |
| 56 | description = clean_text_for_spreadsheet(task_config.get("description", "")) |
| 57 | status = clean_text_for_spreadsheet(task_config.get("status", "")) |
| 58 | difficulty = clean_text_for_spreadsheet(task_config.get("difficulty", "")) |
| 59 | tags = task_config.get("tags", []) |
| 60 | |
| 61 | # Extract info from variants |
| 62 | variants = task_config.get("variants", []) |
| 63 | |
| 64 | db_type_list = [ |
| 65 | clean_text_for_spreadsheet(variant.get("db_type", "")) |
| 66 | for variant in variants |
| 67 | if variant.get("db_type") |
| 68 | ] |
| 69 | db_types = ", ".join(set(db_type_list)) |
| 70 | |
| 71 | project_type_list = [ |
| 72 | clean_text_for_spreadsheet(variant.get("project_type", "")) |
| 73 | for variant in variants |
| 74 | if variant.get("project_type") |
| 75 | ] |
| 76 | project_types = ", ".join(set(project_type_list)) |
| 77 | |
| 78 | database_list = [ |
| 79 | clean_text_for_spreadsheet(variant.get("db_name", "")) |
| 80 | for variant in variants |
| 81 | if variant.get("db_name") |
| 82 | ] |
| 83 | database_name = ", ".join(set(database_list)) |
| 84 | |
| 85 | project_list = [ |
| 86 | clean_text_for_spreadsheet(variant.get("project_name", "")) |
| 87 | for variant in variants |
| 88 | if variant.get("project_name") |
| 89 | ] |
| 90 | project_name = ", ".join(set(project_list)) |
| 91 | |
| 92 | # Extract prompts |
no test coverage detected