• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

freqtrade / freqtrade / 9394559170

26 Apr 2024 06:36AM UTC coverage: 94.656% (-0.02%) from 94.674%
9394559170

push

github

xmatthias
Loader should be passed as kwarg for clarity

20280 of 21425 relevant lines covered (94.66%)

0.95 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.67
/freqtrade/resolvers/freqaimodel_resolver.py
1
# pragma pylint: disable=attribute-defined-outside-init
2

3
"""
1✔
4
This module load a custom model for freqai
5
"""
6
import logging
1✔
7
from pathlib import Path
1✔
8

9
from freqtrade.constants import USERPATH_FREQAIMODELS, Config
1✔
10
from freqtrade.exceptions import OperationalException
1✔
11
from freqtrade.freqai.freqai_interface import IFreqaiModel
1✔
12
from freqtrade.resolvers import IResolver
1✔
13

14

15
logger = logging.getLogger(__name__)
1✔
16

17

18
class FreqaiModelResolver(IResolver):
1✔
19
    """
20
    This class contains all the logic to load custom hyperopt loss class
21
    """
22

23
    object_type = IFreqaiModel
1✔
24
    object_type_str = "FreqaiModel"
1✔
25
    user_subdir = USERPATH_FREQAIMODELS
1✔
26
    initial_search_path = (
1✔
27
        Path(__file__).parent.parent.joinpath("freqai/prediction_models").resolve()
28
    )
29
    extra_path = "freqaimodel_path"
1✔
30

31
    @staticmethod
1✔
32
    def load_freqaimodel(config: Config) -> IFreqaiModel:
1✔
33
        """
34
        Load the custom class from config parameter
35
        :param config: configuration dictionary
36
        """
37
        disallowed_models = ["BaseRegressionModel"]
1✔
38

39
        freqaimodel_name = config.get("freqaimodel")
1✔
40
        if not freqaimodel_name:
1✔
41
            raise OperationalException(
×
42
                "No freqaimodel set. Please use `--freqaimodel` to "
43
                "specify the FreqaiModel class to use.\n"
44
            )
45
        if freqaimodel_name in disallowed_models:
1✔
46
            raise OperationalException(
×
47
                f"{freqaimodel_name} is a baseclass and cannot be used directly. Please choose "
48
                "an existing child class or inherit from this baseclass.\n"
49
            )
50
        freqaimodel = FreqaiModelResolver.load_object(
1✔
51
            freqaimodel_name,
52
            config,
53
            kwargs={"config": config},
54
        )
55

56
        return freqaimodel
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc