code: def get_history_window_series(
      self,
      assets,
      end_dt,
      bar_count,
      field,
      data_frequency,
      reset_reader=False,
  ):
      start_dt = get_start_dt(end_dt, bar_count, data_frequency, False)
      start_dt, _ = self.get_adj_dates(
          start_dt, end_dt, assets, data_frequency
      )
  
      # This is an attempt to resolve some caching with the reader
      # when auto-ingesting data.
      # TODO: needs more work
      reader = self.get_reader(data_frequency)
      if reset_reader:
          del self._readers[reader._rootdir]
          reader = self.get_reader(data_frequency)
  
      if reader is None:
          symbols = [asset.symbol for asset in assets]
          raise PricingDataNotLoadedError(
              field=field,
              first_trading_day=min(
                  [asset.start_date for asset in assets]
              ),
              exchange=self.exchange_name,
              symbols=symbols,
              symbol_list=",".join(symbols),
              data_frequency=data_frequency,
              start_dt=start_dt,
              end_dt=end_dt,
          )
  
      series = dict()
      for asset in assets:
          asset_start_dt, _ = self.get_adj_dates(
              start_dt, end_dt, assets, data_frequency
          )
          in_bundle = range_in_bundle(
              asset, asset_start_dt, end_dt, reader
          )
          if not in_bundle:
              raise PricingDataNotLoadedError(
                  field=field,
                  first_trading_day=asset.start_date,
                  exchange=self.exchange_name,
                  symbols=asset.symbol,
                  symbol_list=asset.symbol,
                  data_frequency=data_frequency,
                  start_dt=asset_start_dt,
                  end_dt=end_dt,
              )
  
          periods = self.get_calendar_periods_range(
              asset_start_dt, end_dt, data_frequency
          )
          # This does not behave well when requesting multiple assets
          # when the start or end date of one asset is outside of the range
          # looking at the logic in load_raw_arrays(), we are not achieving
          # any performance gain by requesting multiple sids at once. It's
          # looping through the sids and making separate requests anyway.
          arrays = reader.load_raw_arrays(
              sids=[asset.sid],
              fields=[field],
              start_dt=start_dt,
              end_dt=end_dt,
          )
          if len(arrays) == 0:
              raise DataCorruptionError(
                  exchange=self.exchange_name,
                  symbols=asset.symbol,
                  start_dt=asset_start_dt,
                  end_dt=end_dt,
              )
  
          field_values = arrays[0][:, 0]
  
          try:
              value_series = pd.Series(field_values, index=periods)
              series[asset] = value_series
          except ValueError as e:
              raise PricingDataValueError(
                  exchange=asset.exchange,
                  symbol=asset.symbol,
                  start_dt=asset_start_dt,
                  end_dt=end_dt,
                  error=e,
              )
  
      return 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 19 for calling the ExchangeBundle obj's underlying member method code with example usage: obj.get_history_window_series(assets, end_dt, bar_count, field, data_frequency, reset_reader) and returns: series