Update score to mainly hold sql query information.

This commit is contained in:
alwayscompiling
2022-11-27 00:35:42 -05:00
parent 6a87622b58
commit e5d11d200c
+16 -74
View File
@@ -4,29 +4,21 @@ import time
class Score: 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. # 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: Args:
user (str): Score's user user (str): Score's user
value (int): Score's value value (int): Score's value
""" """
self._user: str = user self._user: str = score_info[0]
self._value: int = -1 self._value: int = score_info[1]
self._category_id: int = score_info[2]
def __str__(self) -> str:
"""
Returns Score class as a string for printing.
Returns:
str: Score class as a string
"""
return self.to_str()
@property @property
def user(self) -> str: def user(self) -> str:
@@ -38,16 +30,6 @@ class Score:
""" """
return self._user 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 @property
def value(self) -> int: def value(self) -> int:
""" """
@@ -58,15 +40,15 @@ class Score:
""" """
return self._value return self._value
@value.setter @property
def value(self, value: int) -> None: def category_id(self) -> int:
""" """
Setter for score value. Getter for category id.
Args: Returns:
value (int): score value input int: category id
""" """
self._value = value return self._category_id
def get_str(self) -> str: def get_str(self) -> str:
""" """
@@ -77,39 +59,21 @@ class Score:
""" """
return str(self._value) 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 ScoreTime(Score):
"""Class for a time based score. Inherits from 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: Args:
user (str): Score's user user (str): Score's user
score (float): Score's value score (float): Score's value
""" """
super().__init__(score_info)
# store time score as seconds. # store time score as seconds.
self._user: str = user self._score: float = score_info[1]
self._score: float = -1.0
@property @property
def value(self) -> float: def value(self) -> float:
@@ -121,16 +85,6 @@ class ScoreTime(Score):
""" """
return self._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: def get_str(self) -> str:
""" """
Gets score's value as string. Turns seconds into MM:SS.ms format. 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) milliseconds = round((self.value - int(self.value)) * 10)
return time.strftime(f"%-M:%S.{milliseconds}", time.gmtime(self.value)) 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)