diff --git a/classes/score.py b/classes/score.py index c6f4344..00bb285 100644 --- a/classes/score.py +++ b/classes/score.py @@ -4,29 +4,21 @@ import time class Score: - """Parent class for Scores. Stores common information for a Score.""" + """Parent class for Scores. Used just to pass sql query information around.""" # no user setter, it should never change. - def __init__(self, user: str) -> None: + def __init__(self, score_info: tuple) -> None: """ - Default constructor for Score class. + Default constructor for Score class. Populates class from sql query results. Tuple order is important. Args: user (str): Score's user value (int): Score's value """ - self._user: str = user - self._value: int = -1 - - def __str__(self) -> str: - """ - Returns Score class as a string for printing. - - Returns: - str: Score class as a string - """ - return self.to_str() + self._user: str = score_info[0] + self._value: int = score_info[1] + self._category_id: int = score_info[2] @property def user(self) -> str: @@ -38,16 +30,6 @@ class Score: """ return self._user - @user.setter - def user(self, username: str) -> None: - """ - Setter for score's username. - - Args: - username (str): username to set to - """ - self._user = username - @property def value(self) -> int: """ @@ -58,15 +40,15 @@ class Score: """ return self._value - @value.setter - def value(self, value: int) -> None: + @property + def category_id(self) -> int: """ - Setter for score value. + Getter for category id. - Args: - value (int): score value input + Returns: + int: category id """ - self._value = value + return self._category_id def get_str(self) -> str: """ @@ -77,39 +59,21 @@ class Score: """ return str(self._value) - def set_value_str(self, value: str) -> None: - """ - Setter for score value from string. - - Args: - value (str): int as a string - """ - self._value = int(value) - - def to_str(self) -> str: - """ - Returns Score object as a string. - - Returns: - str: string of json representation of Score - """ - return f"{self.user}: {self.get_str()}" - class ScoreTime(Score): """Class for a time based score. Inherits from Score.""" - def __init__(self, user: str) -> None: # pylint: disable=super-init-not-called + def __init__(self, score_info: tuple) -> None: """ - Default constructor for ScoreTime class. + Default constructor for ScoreTime class. Populates class from sql query results. Tuple order is important. Args: user (str): Score's user score (float): Score's value """ + super().__init__(score_info) # store time score as seconds. - self._user: str = user - self._score: float = -1.0 + self._score: float = score_info[1] @property def value(self) -> float: @@ -121,16 +85,6 @@ class ScoreTime(Score): """ return self._score - @value.setter - def value(self, value: float) -> None: - """ - Setter for score value. - - Args: - value (float): value - """ - self._score = value - def get_str(self) -> str: """ Gets score's value as string. Turns seconds into MM:SS.ms format. @@ -140,15 +94,3 @@ class ScoreTime(Score): """ milliseconds = round((self.value - int(self.value)) * 10) return time.strftime(f"%-M:%S.{milliseconds}", time.gmtime(self.value)) - - def set_value_str(self, value: str) -> None: - """ - Setter for score value from a string. - - Args: - value (str): string representation of time - """ - if value.find(":"): - self._score = int(value.split(":")[0]) * 60 + float(value.split(":")[1]) - else: - self._score = float(value)