"InfluxDBReader" and "StockPriceObserver" are not defined

28 views Asked by At
@ModelFactory.register_model
class OverExtendedGapDown(BaseModel):
    def __init__(self, data_provider, mode):
        super().__init__(data_provider)
        self.data_provider = data_provider
        self.mode = mode  # "backtest" or "live"

    def get_data(self, ticker, date):

        if self.mode == "backtest":
            if isinstance(self.data_provider, InfluxDBReader):
                # Do something specific for backtest with InfluxDBReader
                pass
            else:
                logger.warning("Using a wrong data provider for backtest mode. Expected InfluxDBReader.")
                return

        elif self.mode == "live":
            if isinstance(self.data_provider, StockPriceObserver):
                # Do something specific for live mode with StockPriceObserver
                pass
            else:
                logger.warning("Using a wrong data provider for live mode. Expected StockPriceObserver.")
                return

        else:
            logger.error("Invalid mode. Must be 'backtest' or 'live'.")
            return

It says that "InfluxDBReader" is not defined and "StockPriceObserver" is not defined. I know what it means, but I feel it's useless to import them just to verify that self.data_provider is of type InfluxDBReader or StockPriceObserver. What is the most common way to do that? Does creating fake InfluxDBReader and StockPriceObserver are good practice? I just don't know about it. I need some advices

0

There are 0 answers