From 6f4322bf6a7a1729ea95de35f5dfc978c1c3a9d2 Mon Sep 17 00:00:00 2001 From: alwayscompiling Date: Wed, 3 Aug 2022 22:35:27 -0400 Subject: [PATCH] Added a to_str function for all classes. __str__ function uses it. highscores_data uses the to_str function for saving. --- data/category.py | 11 ++++++++++- data/guild.py | 11 ++++++++++- data/highscores_data.py | 2 +- data/score.py | 11 ++++++++++- data/table.py | 11 ++++++++++- 5 files changed, 41 insertions(+), 5 deletions(-) diff --git a/data/category.py b/data/category.py index c5e5c87..0ec1cf3 100644 --- a/data/category.py +++ b/data/category.py @@ -30,7 +30,7 @@ class Category: Returns: str: Category class as a string """ - return json.dumps(self.to_dict(), indent=4) + return self.to_str() @classmethod def from_dict(cls, name: str, data: dict): @@ -158,3 +158,12 @@ class Category: data["scores"][score.user] = score.value return data + + def to_str(self) -> str: + """ + Returns Category object as a string. + + Returns: + str: string of json representation of Category + """ + return json.dumps(self.to_dict(), indent=4) diff --git a/data/guild.py b/data/guild.py index a106d33..7fe0522 100644 --- a/data/guild.py +++ b/data/guild.py @@ -31,7 +31,7 @@ class Guild: Returns: str: Guild class as a string """ - return json.dumps(self.to_dict(), indent=4) + return self.to_str() @classmethod def from_dict(cls, guild_id: int, data: dict): @@ -226,3 +226,12 @@ class Guild: data["tables"][table.name] = table.to_dict() return data + + def to_str(self) -> str: + """ + Returns Guild object as a string. + + Returns: + str: string of json representation of Guild + """ + return json.dumps(self.to_dict(), indent=4) diff --git a/data/highscores_data.py b/data/highscores_data.py index 2ed42f3..11814ef 100644 --- a/data/highscores_data.py +++ b/data/highscores_data.py @@ -125,4 +125,4 @@ class HighscoresData: with open( f"{HIGHSCORES_DATA_DIR}/{guild.guild_id}.json", encoding="utf-8", mode="w" ) as file: - file.write(guild) # should use str function + file.write(guild.to_str()) # should use str function diff --git a/data/score.py b/data/score.py index 9021546..5ffedca 100644 --- a/data/score.py +++ b/data/score.py @@ -26,7 +26,7 @@ class Score: Returns: str: Score class as a string """ - return f"{self.user}: {self.get_str()}" + return self.to_str() @property def user(self) -> str: @@ -67,6 +67,15 @@ class Score: """ return str(self._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.""" diff --git a/data/table.py b/data/table.py index 613f502..7a7e2c6 100644 --- a/data/table.py +++ b/data/table.py @@ -28,7 +28,7 @@ class Table: Returns: str: Table class as a string """ - return json.dumps(self.to_dict(), indent=4) + return self.to_str() @classmethod def from_dict(cls, table_name: str, data: dict): @@ -129,3 +129,12 @@ class Table: data["categories"][category.name] = category.to_dict() return data + + def to_str(self) -> str: + """ + Returns Table object as a string. + + Returns: + str: string of json representation of Table + """ + return json.dumps(self.to_dict(), indent=4)