nishu08's picture
Deploy CodeBERT training Space
9b2cded verified
Raw
History Blame Contribute Delete
935 Bytes
from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
from typing import Dict, List
import yaml
CONFIG_PATH = Path(__file__).resolve().parent.parent / "config" / "error_categories.yaml"
@dataclass(frozen=True)
class ErrorCategory:
id: int
name: str
description: str
def load_categories(config_path: Path = CONFIG_PATH) -> List[ErrorCategory]:
with open(config_path) as f:
data = yaml.safe_load(f)
return [
ErrorCategory(id=c["id"], name=c["name"], description=c["description"])
for c in data["categories"]
]
def id_to_name(categories: List[ErrorCategory] | None = None) -> Dict[int, str]:
cats = categories or load_categories()
return {c.id: c.name for c in cats}
def name_to_id(categories: List[ErrorCategory] | None = None) -> Dict[str, int]:
cats = categories or load_categories()
return {c.name: c.id for c in cats}