Source code for derobertis_cv.models.grades.scale

from dataclasses import dataclass
from typing import Dict, Tuple


[docs] @dataclass class GradingScaleModel: grade_ranges: Dict[str, Tuple[float, float]] def __post_init__(self): if len(self.grade_ranges) == 0: raise ValueError("no grade ranges provided") last_bot = 101 for grade_name, (bot, top) in self.grade_ranges.items(): if top != last_bot - 1: raise ValueError( f"grade range for {grade_name} is not consecutive in {self}. " f"({top} should be {last_bot} - 1)" ) last_bot = bot if bot != 0: raise ValueError(f"lowest grade did not go to zero, instead went to {bot}")