"""File for Category class.""" from data.score import Score # pylint: disable=import-error class Category: """Stores a category's information and relative scores.""" def __init__(self, name: str, ascending: bool, time_record: bool) -> None: self._name = name self._ascending = ascending self._time_record = time_record self._scores: dict(Score) = {} @property def ascending(self) -> bool: """Getter for ascending bool.""" return self._ascending @property def name(self) -> str: """Getter for name.""" return self._name @property def time_record(self) -> bool: """Getter for time record bool.""" return self._time_record @property def scores(self) -> "list[Score]": """Getter for scores list.""" return self._scores.values() def add_score(self, score: Score) -> None: """Adds a score to dictionary storage. Sorts dictionary by score value.""" self._scores[score.user] = score self._scores = dict( sorted(self._scores.items(), key=lambda x: x[1].score, reverse=not self.ascending) ) def remove_score(self, score: Score) -> None: """Removes a score from dictionary storage.""" self._scores.pop(score.user)