MCPcopy Create free account
hub / github.com/dbt-labs/ade-bench / extract_task_details

Function extract_task_details

scripts_python/extract_task_details.py:35–139  ·  view source on GitHub ↗

Extract details from all task.yaml files.

(tasks_dir: Path)

Source from the content-addressed store, hash-verified

33
34
35def 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

Callers 1

mainFunction · 0.85

Calls 2

load_yaml_fileFunction · 0.85

Tested by

no test coverage detected