code: def _fetch_symbol_frame(
      self,
      api_key,
      symbol,
      calendar,
      start_session,
      end_session,
      data_frequency,
      retries=DEFAULT_RETRIES,
  ):
      # Data for symbol is old enough to attempt an update or is not
      # present in the cache.  Fetch raw data for a single symbol
      # with requested intervals and frequency. Retry as necessary.
      for _ in range(retries):
          try:
              raw_data = self.fetch_raw_symbol_frame(
                  api_key,
                  symbol,
                  calendar,
                  start_session,
                  end_session,
                  data_frequency,
              )
              raw_data.index = pd.to_datetime(raw_data.index, utc=True)
  
              # Filter incoming data to fit start and end sessions.
              raw_data = raw_data[
                  (raw_data.index >= start_session)
                  & (raw_data.index <= end_session)
              ]
  
              # Filter out any duplicates entries, keep last one, since
              # previous frame is probably an incomplete.
              raw_data = raw_data[
                  ~raw_data.index.duplicated(keep="last")
              ]
  
              return raw_data
  
          except Exception:
              log.exception(
                  "Exception raised fetching {name} data. Retrying.".format(
                      name=self.name
                  )
              )
      else:
          raise ValueError(
              "Failed to download data for symbol {sym} "
              "after {n} attempts.".format(
                  sym=symbol,
                  n=retries,
              )
          )
  
imports: from itertools import count
  import tarfile
  from time import sleep
  from abc import abstractmethod, abstractproperty
  import logbook
  import pandas
  from .None import core
  from catalyst.utils.cli import item_show_count, maybe_show_progress
  from catalyst.utils.memoize import lazyval
  from catalyst.constants import LOG_LEVEL
label_desc: Use image node_id 26 for calling the BaseBundle obj's underlying member method code with example usage: obj._fetch_symbol_frame(api_key, symbol, calendar, start_session, end_session, data_frequency, retries) and returns: raw_data