From e7fd01f50993ee878c52902419be182fa5210226 Mon Sep 17 00:00:00 2001 From: GeoffreyCoulaud Date: Sat, 10 Jun 2023 12:03:16 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Made=20manager=20attributes=20mo?= =?UTF-8?q?re=20flexible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed run_after, retryable_on and continue_on to be type Container. We don't need them to be sets. The performance gain of sets over small tuples is nonexistant for in checks and the syntax is more verbose. --- src/store/managers/display_manager.py | 2 +- src/store/managers/file_manager.py | 2 +- src/store/managers/itch_cover_manager.py | 4 ++-- src/store/managers/local_cover_manager.py | 2 +- src/store/managers/manager.py | 8 ++++---- src/store/managers/online_cover_manager.py | 4 ++-- src/store/managers/sgdb_manager.py | 4 ++-- src/store/managers/steam_api_manager.py | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/store/managers/display_manager.py b/src/store/managers/display_manager.py index e79746e..2d1377a 100644 --- a/src/store/managers/display_manager.py +++ b/src/store/managers/display_manager.py @@ -8,7 +8,7 @@ from src.store.managers.manager import Manager class DisplayManager(Manager): """Manager in charge of adding a game to the UI""" - run_after = set((SteamAPIManager, SGDBManager)) + run_after = (SteamAPIManager, SGDBManager) def manager_logic(self, game: Game, _additional_data: dict) -> None: # TODO decouple a game from its widget diff --git a/src/store/managers/file_manager.py b/src/store/managers/file_manager.py index 66cebc4..7a72e5d 100644 --- a/src/store/managers/file_manager.py +++ b/src/store/managers/file_manager.py @@ -6,7 +6,7 @@ from src.store.managers.steam_api_manager import SteamAPIManager class FileManager(AsyncManager): """Manager in charge of saving a game to a file""" - run_after = set((SteamAPIManager,)) + run_after = (SteamAPIManager,) def manager_logic(self, game: Game, _additional_data: dict) -> None: game.save() diff --git a/src/store/managers/itch_cover_manager.py b/src/store/managers/itch_cover_manager.py index abf61b2..03bfcd1 100644 --- a/src/store/managers/itch_cover_manager.py +++ b/src/store/managers/itch_cover_manager.py @@ -17,8 +17,8 @@ from src.utils.save_cover import resize_cover, save_cover class ItchCoverManager(Manager): """Manager in charge of downloading the game's cover from itch.io""" - run_after = set((LocalCoverManager,)) - retryable_on = set((HTTPError, SSLError)) + run_after = (LocalCoverManager,) + retryable_on = (HTTPError, SSLError) def manager_logic(self, game: Game, additional_data: dict) -> None: # Get the first matching cover url diff --git a/src/store/managers/local_cover_manager.py b/src/store/managers/local_cover_manager.py index a191f36..eba3abc 100644 --- a/src/store/managers/local_cover_manager.py +++ b/src/store/managers/local_cover_manager.py @@ -9,7 +9,7 @@ from src.utils.save_cover import save_cover, resize_cover class LocalCoverManager(Manager): """Manager in charge of adding the local cover image of the game""" - run_after = set((SteamAPIManager,)) + run_after = (SteamAPIManager,) def manager_logic(self, game: Game, additional_data: dict) -> None: # Ensure that the cover path is in the additional data diff --git a/src/store/managers/manager.py b/src/store/managers/manager.py index e73eb5a..927d8ca 100644 --- a/src/store/managers/manager.py +++ b/src/store/managers/manager.py @@ -2,7 +2,7 @@ import logging from abc import abstractmethod from threading import Lock from time import sleep -from typing import Any, Callable +from typing import Any, Callable, Container from src.game import Game @@ -16,11 +16,11 @@ class Manager: * May be retried on some specific error types """ - run_after: set[type["Manager"]] = set() + run_after: Container[type["Manager"]] = tuple() blocking: bool = True - retryable_on: set[type[Exception]] = set() - continue_on: set[type[Exception]] = set() + retryable_on: Container[type[Exception]] = tuple() + continue_on: Container[type[Exception]] = tuple() retry_delay: int = 3 max_tries: int = 3 diff --git a/src/store/managers/online_cover_manager.py b/src/store/managers/online_cover_manager.py index b4e5bf0..e9b8411 100644 --- a/src/store/managers/online_cover_manager.py +++ b/src/store/managers/online_cover_manager.py @@ -13,8 +13,8 @@ from src.utils.save_cover import resize_cover, save_cover class OnlineCoverManager(Manager): """Manager that downloads game covers from URLs""" - run_after = set((LocalCoverManager,)) - retryable_on = set((HTTPError, SSLError)) + run_after = (LocalCoverManager,) + retryable_on = (HTTPError, SSLError) def manager_logic(self, game: Game, additional_data: dict) -> None: # Ensure that we have a cover to download diff --git a/src/store/managers/sgdb_manager.py b/src/store/managers/sgdb_manager.py index c1831fc..5844204 100644 --- a/src/store/managers/sgdb_manager.py +++ b/src/store/managers/sgdb_manager.py @@ -13,8 +13,8 @@ from src.utils.steamgriddb import SGDBAuthError, SGDBHelper class SGDBManager(AsyncManager): """Manager in charge of downloading a game's cover from steamgriddb""" - run_after = set((SteamAPIManager, LocalCoverManager, ItchCoverManager)) - retryable_on = set((HTTPError, SSLError, ConnectionError, JSONDecodeError)) + run_after = (SteamAPIManager, LocalCoverManager, ItchCoverManager) + retryable_on = (HTTPError, SSLError, ConnectionError, JSONDecodeError) def manager_logic(self, game: Game, _additional_data: dict) -> None: try: diff --git a/src/store/managers/steam_api_manager.py b/src/store/managers/steam_api_manager.py index faad9d7..efe82e2 100644 --- a/src/store/managers/steam_api_manager.py +++ b/src/store/managers/steam_api_manager.py @@ -13,7 +13,7 @@ from src.utils.steam import ( class SteamAPIManager(AsyncManager): """Manager in charge of completing a game's data from the Steam API""" - retryable_on = set((HTTPError, SSLError)) + retryable_on = (HTTPError, SSLError) steam_api_helper: SteamAPIHelper = None steam_rate_limiter: SteamRateLimiter = None