docstr: Retrieve price data history, ingest missing data.
  
  Parameters
  ----------
  assets: list[TradingPair]
  end_dt: pd.Timestamp
  bar_count: int
  field: str
  data_frequency: str
  algo_end_dt: pd.Timestamp
  force_auto_ingest:
  
  Returns
  -------
  Series
docstr_tok: ["Retrieve","price","data","history",",","ingest","missing","data",".","Parameters","--","--","--","--","--","assets",":","list","[","TradingPair","]","end_dt",":","pd.Timestamp","bar_count",":","int","field",":","str","data_frequency",":","str","algo_end_dt",":","pd.Timestamp","force_auto_ingest",":","Returns","--","--","--","-","Series"]
code: def get_history_window_series_and_load(
      self,
      assets,
      end_dt,
      bar_count,
      field,
      data_frequency,
      algo_end_dt=None,
      force_auto_ingest=False,
  ):
      """
      Retrieve price data history, ingest missing data.
  
      Parameters
      ----------
      assets: list[TradingPair]
      end_dt: pd.Timestamp
      bar_count: int
      field: str
      data_frequency: str
      algo_end_dt: pd.Timestamp
      force_auto_ingest:
  
      Returns
      -------
      Series
  
      """
      if AUTO_INGEST or force_auto_ingest:
          try:
              series = self.get_history_window_series(
                  assets=assets,
                  end_dt=end_dt,
                  bar_count=bar_count,
                  field=field,
                  data_frequency=data_frequency,
              )
              return pd.DataFrame(series)
  
          except PricingDataNotLoadedError:
              start_dt = get_start_dt(end_dt, bar_count, data_frequency)
              log.info(
                  "pricing data for {symbol} not found in range "
                  "{start} to {end}, updating the bundles.".format(
                      symbol=[asset.symbol for asset in assets],
                      start=start_dt,
                      end=end_dt,
                  )
              )
              self.ingest_assets(
                  assets=assets,
                  start_dt=start_dt,
                  end_dt=algo_end_dt,  # TODO: apply trailing bars
                  data_frequency=data_frequency,
                  show_progress=True,
                  show_breakdown=True,
              )
              series = self.get_history_window_series(
                  assets=assets,
                  end_dt=end_dt,
                  bar_count=bar_count,
                  field=field,
                  data_frequency=data_frequency,
                  reset_reader=True,
              )
              return series
  
      else:
          series = self.get_history_window_series(
              assets=assets,
              end_dt=end_dt,
              bar_count=bar_count,
              field=field,
              data_frequency=data_frequency,
          )
          return pd.DataFrame(series)
  
imports: import os
  import shutil
  from datetime import timedelta
  from functools import partial
  from itertools import chain
  from operator import is_not
  import numpy
  import pandas
  import pytz
  from catalyst import get_calendar
  from catalyst.assets._assets import TradingPair
  from catalyst.constants import DATE_TIME_FORMAT, AUTO_INGEST
  from catalyst.constants import LOG_LEVEL
  from catalyst.data.minute_bars import BcolzMinuteOverlappingData, BcolzMinuteBarMetadata
  from catalyst.exchange.exchange_bcolz import BcolzExchangeBarReader, BcolzExchangeBarWriter
  from catalyst.exchange.exchange_errors import EmptyValuesInBundleError, TempBundleNotFoundError, NoDataAvailableOnExchange, PricingDataNotLoadedError, DataCorruptionError, PricingDataValueError
  from catalyst.exchange.utils.bundle_utils import range_in_bundle, get_bcolz_chunk, get_df_from_arrays, get_assets
  from catalyst.exchange.utils.datetime_utils import get_start_dt, get_period_label, get_month_start_end, get_year_start_end
  from catalyst.exchange.utils.exchange_utils import get_exchange_folder, save_exchange_symbols, mixin_market_params, get_catalyst_symbol
  from catalyst.utils.cli import maybe_show_progress
  from catalyst.utils.paths import ensure_directory
  from logbook import Logger
  from pytz import UTC
  from six import itervalues
label_desc: Use image node_id 17 for calling the ExchangeBundle obj's underlying member method code with example usage: obj.get_history_window_series_and_load(assets, end_dt, bar_count, field, data_frequency, algo_end_dt, force_auto_ingest) and returns: pd, pd, series