""" This module load custom pairlists """ import logging from pathlib import Path from typing import Dict from freqtrade.constants import Config from freqtrade.plugins.protections import IProtection from freqtrade.resolvers import IResolver logger = logging.getLogger(__name__) class ProtectionResolver(IResolver): """ This class contains all the logic to load custom PairList class """ object_type = IProtection object_type_str = "Protection" user_subdir = None initial_search_path = Path(__file__).parent.parent.joinpath("plugins/protections").resolve() @staticmethod def load_protection( protection_name: str, config: Config, protection_config: Dict ) -> IProtection: """ Load the protection with protection_name :param protection_name: Classname of the pairlist :param config: configuration dictionary :param protection_config: Configuration dedicated to this pairlist :return: initialized Protection class """ return ProtectionResolver.load_object( protection_name, config, kwargs={ "config": config, "protection_config": protection_config, }, )