File size: 3,219 Bytes
d99151a 433cefc d99151a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | """
Task Registry with Explicit Grader Mappings
This module provides a registry of all tasks with their corresponding graders
for easy discovery and validation.
"""
from typing import Dict, Callable, Any
from task_graders import (
task_1_basic_ram_reduction_grader,
task_2_energy_optimization_grader,
task_3_balanced_optimization_grader,
task_4_advanced_efficiency_grader,
task_5_expert_optimization_grader,
)
# Explicit registry of tasks with graders
TASK_REGISTRY: Dict[str, Dict[str, Any]] = {
"basic_ram_reduction": {
"task_name": "basic_ram_reduction",
"display_name": "Basic RAM Reduction",
"difficulty": 1,
"grader": task_1_basic_ram_reduction_grader,
"grader_name": "task_1_basic_ram_reduction_grader",
"description": "Reduce RAM usage below 70%"
},
"energy_optimization": {
"task_name": "energy_optimization",
"display_name": "Energy Optimization",
"difficulty": 2,
"grader": task_2_energy_optimization_grader,
"grader_name": "task_2_energy_optimization_grader",
"description": "Reduce energy consumption below 6 kWh while maintaining RAM below 75%"
},
"balanced_optimization": {
"task_name": "balanced_optimization",
"display_name": "Balanced Optimization",
"difficulty": 3,
"grader": task_3_balanced_optimization_grader,
"grader_name": "task_3_balanced_optimization_grader",
"description": "Balance RAM below 60% and energy below 5 kWh"
},
"advanced_efficiency": {
"task_name": "advanced_efficiency",
"display_name": "Advanced Efficiency",
"difficulty": 4,
"grader": task_4_advanced_efficiency_grader,
"grader_name": "task_4_advanced_efficiency_grader",
"description": "Achieve RAM below 50% and energy below 4 kWh"
},
"expert_optimization": {
"task_name": "expert_optimization",
"display_name": "Expert Optimization",
"difficulty": 5,
"grader": task_5_expert_optimization_grader,
"grader_name": "task_5_expert_optimization_grader",
"description": "Master level: RAM below 40% and energy below 3 kWh"
}
}
def get_all_tasks_with_graders() -> Dict[str, Dict[str, Any]]:
"""Get all tasks with their associated graders."""
return TASK_REGISTRY
def get_task_grader(task_name: str) -> Callable:
"""Get the grader for a specific task."""
if task_name not in TASK_REGISTRY:
raise ValueError(f"Unknown task: {task_name}")
return TASK_REGISTRY[task_name]["grader"]
def get_tasks_count() -> int:
"""Get the total number of tasks with graders."""
return len(TASK_REGISTRY)
def is_grader_requirement_met() -> bool:
"""Check if minimum grader requirement (3 tasks) is met."""
return len(TASK_REGISTRY) >= 3
if __name__ == "__main__":
print(f"Total tasks with graders: {get_tasks_count()}")
print(f"Requirement met (≥3): {is_grader_requirement_met()}")
print("\nTasks:")
for task_name, info in TASK_REGISTRY.items():
print(f" - {info['display_name']} (Difficulty {info['difficulty']})")
print(f" Grader: {info['grader_name']}")
|