Skip to content

Commit

Permalink
remove forced evaluators
Browse files Browse the repository at this point in the history
  • Loading branch information
Guillaume De Saint Martin committed Apr 17, 2020
1 parent ed8b71e commit 083a962
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 12 deletions.
4 changes: 1 addition & 3 deletions octobot_evaluators/api/initialization.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library.
from octobot_channels.util.channel_creator import create_channel_instance, create_all_subclasses_channel
from octobot_channels.util.channel_creator import create_all_subclasses_channel
from octobot_commons.constants import CONFIG_TIME_FRAME
from octobot_commons.tentacles_management.advanced_manager import create_advanced_types_list
from octobot_commons.time_frame_manager import sort_time_frames
from octobot_evaluators.channels.evaluator_channel import get_chan, set_chan, EvaluatorChannel, del_chan

from octobot_evaluators.channels.matrix import MatrixChannel
from octobot_evaluators.constants import MATRIX_CHANNEL
from octobot_evaluators.evaluator import StrategyEvaluator, EVALUATORS_CHANNEL
from octobot_tentacles_manager.api.configurator import is_tentacle_activated_in_tentacles_setup_config
Expand Down
6 changes: 4 additions & 2 deletions octobot_evaluators/api/inspection.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def get_relevant_evaluators_from_strategies(config, tentacles_setup_config) -> l
evaluator_list = set()
for strategies_eval_class in create_advanced_types_list(StrategyEvaluator, config):
if strategies_eval_class.is_enabled(tentacles_setup_config, False):
required_evaluators = strategies_eval_class.get_required_evaluators(config)
required_evaluators = strategies_eval_class.get_required_evaluators()
if required_evaluators == CONFIG_WILDCARD:
return CONFIG_WILDCARD
else:
Expand All @@ -49,10 +49,12 @@ def is_relevant_evaluator(evaluator_instance, relevant_evaluators) -> bool:

def get_relevant_TAs_for_strategy(strategy, config, tentacles_setup_config) -> list:
ta_classes_list = []
relevant_evaluators = strategy.get_required_evaluators(config)
relevant_evaluators = strategy.get_required_evaluators()
for ta_eval_class in create_advanced_types_list(TAEvaluator, config):
ta_eval_class_instance = ta_eval_class()
ta_eval_class_instance.set_tentacles_setup_config(tentacles_setup_config)
# force enable at True to use relevant_evaluators
ta_eval_class_instance.enabled = True
if CONFIG_WILDCARD in relevant_evaluators or \
is_relevant_evaluator(ta_eval_class_instance, relevant_evaluators):
ta_classes_list.append(ta_eval_class)
Expand Down
1 change: 0 additions & 1 deletion octobot_evaluators/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

MatrixValueType = NewType('MatrixValueType', Union[str, int, float])

CONFIG_FORCED_EVALUATOR = "forced_evaluator"
START_EVAL_PERTINENCE = 1
MAX_TA_EVAL_TIME_SECONDS = 0.1
EVALUATOR_EVAL_DEFAULT_TYPE = float
Expand Down
10 changes: 4 additions & 6 deletions octobot_evaluators/evaluator/strategy_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from octobot_commons.constants import CONFIG_WILDCARD
from octobot_commons.time_frame_manager import parse_time_frames
from octobot_evaluators.channels.evaluator_channel import get_chan
from octobot_evaluators.constants import CONFIG_FORCED_EVALUATOR, MATRIX_CHANNEL, \
from octobot_evaluators.constants import MATRIX_CHANNEL, \
STRATEGIES_REQUIRED_TIME_FRAME, CONFIG_FORCED_TIME_FRAME, STRATEGIES_REQUIRED_EVALUATORS, TENTACLE_DEFAULT_CONFIG
from octobot_evaluators.evaluator import AbstractEvaluator
from octobot_tentacles_manager.api.configurator import get_tentacle_config
Expand Down Expand Up @@ -68,22 +68,20 @@ def get_required_time_frames(cls, config: dict):
raise Exception(f"'{STRATEGIES_REQUIRED_TIME_FRAME}' is missing in configuration file")

@classmethod
def get_required_evaluators(cls, config: dict, strategy_config: dict = None):
if CONFIG_FORCED_EVALUATOR in config:
return config[CONFIG_FORCED_EVALUATOR]
def get_required_evaluators(cls, strategy_config: dict = None):
strategy_config: dict = strategy_config or get_tentacle_config(cls)
if STRATEGIES_REQUIRED_EVALUATORS in strategy_config:
return strategy_config[STRATEGIES_REQUIRED_EVALUATORS]
else:
raise Exception(f"'{STRATEGIES_REQUIRED_EVALUATORS}' is missing in configuration file")

@classmethod
def get_default_evaluators(cls, config: dict):
def get_default_evaluators(cls):
strategy_config: dict = get_tentacle_config(cls)
if TENTACLE_DEFAULT_CONFIG in strategy_config:
return strategy_config[TENTACLE_DEFAULT_CONFIG]
else:
required_evaluators = cls.get_required_evaluators(config, strategy_config)
required_evaluators = cls.get_required_evaluators(strategy_config)
if required_evaluators == CONFIG_WILDCARD:
return []
else:
Expand Down

0 comments on commit 083a962

Please sign in to comment.