code: def start(self):
      super(InfluxDB, self).start()
      try:
          self.ndb = idbclient(
              self.p.host,
              self.p.port,
              self.p.username,
              self.p.password,
              self.p.database,
          )
      except InfluxDBClientError as err:
          print("Failed to establish connection to InfluxDB: %s" % err)
  
      tf = "{multiple}{timeframe}".format(
          multiple=(self.p.compression if self.p.compression else 1),
          timeframe=TIMEFRAMES.get(self.p.timeframe, "d"),
      )
  
      if not self.p.startdate:
          st = "<= now()"
      else:
          st = ">= '%s'" % self.p.startdate
  
      # The query could already consider parameters like fromdate and todate
      # to have the database skip them and not the internal code
      qstr = (
          'SELECT mean("{open_f}") AS "open", mean("{high_f}") AS "high", '
          'mean("{low_f}") AS "low", mean("{close_f}") AS "close", '
          'mean("{vol_f}") AS "volume", mean("{oi_f}") AS "openinterest" '
          'FROM "{dataname}" '
          "WHERE time {begin} "
          "GROUP BY time({timeframe}) fill(none)"
      ).format(
          open_f=self.p.open,
          high_f=self.p.high,
          low_f=self.p.low,
          close_f=self.p.close,
          vol_f=self.p.volume,
          oi_f=self.p.ointerest,
          timeframe=tf,
          begin=st,
          dataname=self.p.dataname,
      )
  
      try:
          dbars = list(self.ndb.query(qstr).get_points())
      except InfluxDBClientError as err:
          print("InfluxDB query failed: %s" % err)
  
      self.biter = iter(dbars)
  
file_path: backtrader/backtrader/feeds/influxfeed.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import backtrader
  import backtrader.feed
  from ..utils import date2num
  import datetime
label_desc: Use image node_id 1 for calling the InfluxDB obj's underlying member method code with example usage: obj.start() without return types