From fd1764697e34b81879c9e60c8fe7cbe8e6326310 Mon Sep 17 00:00:00 2001 From: fvergaracl Date: Mon, 11 Mar 2024 12:38:24 +0100 Subject: [PATCH] Refactor code for better readability and maintainability --- app/engine/all_engine_strategies.py | 7 +++---- app/engine/base_strategy.py | 7 ++++++- app/engine/check_base_strategy_class.py | 1 + app/services/strategy_service.py | 5 ++++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/engine/all_engine_strategies.py b/app/engine/all_engine_strategies.py index aeef0676..19ff8083 100644 --- a/app/engine/all_engine_strategies.py +++ b/app/engine/all_engine_strategies.py @@ -1,6 +1,8 @@ import os import importlib -from app.engine.check_base_strategy_class import check_class_methods_and_variables +from app.engine.check_base_strategy_class import ( + check_class_methods_and_variables +) def all_engine_strategies(): @@ -14,9 +16,6 @@ def all_engine_strategies(): strategy = file[:-3] strategies.append(strategy) - # import all strategies and check if they are valid with check_base_strategy_class - # if not, remove them from the list - all_strategies_classes = [] for strategy in strategies: diff --git a/app/engine/base_strategy.py b/app/engine/base_strategy.py index 4911638d..d687e2b1 100644 --- a/app/engine/base_strategy.py +++ b/app/engine/base_strategy.py @@ -15,6 +15,10 @@ def __init__( self.variable_basic_points = variable_basic_points self.variable_bonus_points = variable_bonus_points + def get_strategy_id(self): + # get filename of this file + return self.__class__.__name__ + def get_strategy_name(self): return self.strategy_name @@ -42,7 +46,8 @@ def set_variables(self, new_variables): return variables_changed def get_variables(self): - return {k: v for k, v in self.__dict__.items() if k.startswith("variable_")} + return {k: v for k, v in self.__dict__.items() if + k.startswith("variable_")} def get_variable(self, variable_name): if hasattr(self, variable_name): diff --git a/app/engine/check_base_strategy_class.py b/app/engine/check_base_strategy_class.py index c7baaad6..d8c8f672 100644 --- a/app/engine/check_base_strategy_class.py +++ b/app/engine/check_base_strategy_class.py @@ -15,6 +15,7 @@ def check_class_methods_and_variables(Class_to_check): instance = Class_to_check() methods = [ + "get_strategy_id", "get_strategy_name", "get_strategy_description", "get_strategy_name_slug", "get_strategy_version", "get_variable_basic_points", "get_variable_bonus_points", diff --git a/app/services/strategy_service.py b/app/services/strategy_service.py index 9431caf6..c9db980e 100644 --- a/app/services/strategy_service.py +++ b/app/services/strategy_service.py @@ -2,6 +2,7 @@ from app.repository.strategy_repository import StrategyRepository from app.services.base_service import BaseService from app.engine.all_engine_strategies import all_engine_strategies +import inspect class StrategyService(BaseService): @@ -14,8 +15,10 @@ def list_all_strategies(self): response = [] for strategy in all_unclean_strategies: # id = filename + archivo_clase = inspect.getfile(strategy) response.append({ - "id": strategy.get_strategy_id(), + + "id": archivo_clase, "name": strategy.get_strategy_name(), "description": strategy.get_strategy_description(), "nameSlug": strategy.get_strategy_name_slug(),