@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