Update score to mainly hold sql query information.
This commit is contained in:
+16
-74
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user