Change to sqlalchemy and orm scheme. Remove classes due to orm. Edit requirements.

This commit is contained in:
alwayscompiling
2022-11-27 22:20:29 -05:00
parent f95d3130ff
commit 76d6ba7969
6 changed files with 19 additions and 329 deletions
-79
View File
@@ -1,79 +0,0 @@
"""File for Category class."""
class Category:
"""Stores a category's information. Used just to pass sql query information around."""
def __init__(self, category_info: tuple) -> None:
"""
Default constructor for Category class. Populates class from sql query results. Tuple order is important.
Args:
name (str): Category's name
"""
self._id: int = category_info[0]
self._name: str = category_info[1]
self._group_id: int = category_info[2]
self._is_ascending: bool = category_info[3]
self._is_time_record: bool = category_info[4]
self._is_validated: bool = category_info[5]
@property
def id(self) -> int:
"""
Getter for id.
Returns:
int: id
"""
return self._id
@property
def name(self) -> str:
"""
Getter for name.
Returns:
str: name
"""
return self._name
@property
def group_id(self) -> int:
"""
Getter for group id.
Returns:
int: group id
"""
return self._group_id
@property
def is_ascending(self) -> bool:
"""
Getter for is ascending.
Returns:
bool: is ascending
"""
return self._is_ascending
@property
def is_time_record(self) -> bool:
"""
Getter for is time record.
Returns:
bool: is time record
"""
return self._is_time_record
@property
def is_validated(self) -> bool:
"""
Getter for is validated.
Returns:
bool: is validated
"""
return self._is_validated
-90
View File
@@ -1,90 +0,0 @@
"""File for Group class."""
class Group:
"""Stores a group's information. Used just to pass sql query information around."""
def __init__(self, group_info: tuple) -> None:
"""
Default constructor for group class. Populates class from sql query results. Tuple order is important.
Args:
name (str): group's name
"""
self._id: int = group_info[0]
self._name: str = group_info[1]
self._channel_id: int = group_info[2]
self._guild_id: int = group_info[3]
self._message_id: int = group_info[4]
self._pad_length: int = group_info[5]
self._size = group_info[6]
@property
def id(self) -> int:
"""
Getter for id
Returns:
int: id
"""
return self._id
@property
def name(self) -> str:
"""
Getter for name.
Returns:
str: name
"""
return self._name
@property
def channel_id(self) -> int:
"""
Getter for channel id.
Returns:
int: channel id
"""
return self._channel_id
@property
def guild_id(self) -> int:
"""
Getter for guild id.
Returns:
int: guild id
"""
return self._guild_id
@property
def message_id(self) -> int:
"""
Getter for message id
Returns:
int: message id
"""
return self._message_id
@property
def pad_length(self) -> int:
"""
Getter for pad length.
Returns:
int: pad length
"""
return self._pad_length
@property
def size(self) -> int:
"""
Getter for size of group.
Returns:
int: Size of group
"""
return self._size
-57
View File
@@ -1,57 +0,0 @@
"""File for Guild class."""
class Guild:
"""Stores a guild's information. Used just to pass sql query information around."""
def __init__(self, guild_info: tuple) -> None:
"""
Default constructor for Guild class. Populates class from sql query results. Tuple order is important.
Args:
guild_id (int): Discord Guild id of new Guild
"""
self._id: int = guild_info[0]
self._submission_channel_id: int = guild_info[1]
self._username_length: int = guild_info[2]
self._verification_channel_id: int = guild_info[3]
@property
def id(self) -> int:
"""
Getter for Guild id.
Returns:
int: Guild id
"""
return self._id
@property
def submission_channel(self) -> int:
"""
Getter for submission channel id.
Returns:
int: submission channel id
"""
return self._submission_channel_id
@property
def username_length(self) -> int:
"""
Getter for username length.
Returns:
int: username length
"""
return self._username_length
@property
def verification_channel(self) -> int:
"""
Getter for verification channel id.
Returns:
int: verification channel id
"""
return self._verification_channel_id
-96
View File
@@ -1,96 +0,0 @@
"""File for Score classes"""
import time
class Score:
"""Parent class for Scores. Used just to pass sql query information around."""
# no user setter, it should never change.
def __init__(self, score_info: tuple) -> None:
"""
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 = score_info[0]
self._value: int = score_info[1]
self._category_id: int = score_info[2]
@property
def user(self) -> str:
"""
Getter for score user.
Returns:
str: user
"""
return self._user
@property
def value(self) -> int:
"""
Getter for score value.
Returns:
int: value
"""
return self._value
@property
def category_id(self) -> int:
"""
Getter for category id.
Returns:
int: category id
"""
return self._category_id
def get_str(self) -> str:
"""
Gets score's value as string.
Returns:
str: Score's value
"""
return str(self._value)
class ScoreTime(Score):
"""Class for a time based score. Inherits from Score."""
def __init__(self, score_info: tuple) -> None:
"""
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._score: float = score_info[1]
@property
def value(self) -> float:
"""
Getter for score value.
Returns:
float: value
"""
return self._score
def get_str(self) -> str:
"""
Gets score's value as string. Turns seconds into MM:SS.ms format.
Returns:
str: value in time format.
"""
milliseconds = round((self.value - int(self.value)) * 10)
return time.strftime(f"%-M:%S.{milliseconds}", time.gmtime(self.value))