class_docstr: Calculates adjustments for continuous futures, based on the
  close and open of the contracts on the either side of each roll.
class_docstr_tok: ["Calculates","adjustments","for","continuous","futures",",","based","on","the","close","and","open","of","the","contracts","on","the","either","side","of","each","roll","."]
code: def _get_adjustments_in_range(self, cf, dts, field):
      if field == "volume" or field == "sid":
          return {}
      if cf.adjustment is None:
          return {}
      rf = self._roll_finders[cf.roll_style]
      partitions = []
  
      rolls = rf.get_rolls(cf.root_symbol, dts[0], dts[-1], cf.offset)
  
      tc = self._trading_calendar
  
      adjs = {}
  
      for front, back in sliding_window(2, rolls):
          front_sid, roll_dt = front
          back_sid = back[0]
          dt = tc.previous_session_label(roll_dt)
          if self._frequency == "minute":
              dt = tc.open_and_close_for_session(dt)[1]
              roll_dt = tc.open_and_close_for_session(roll_dt)[0]
          partitions.append((front_sid, back_sid, dt, roll_dt))
      for partition in partitions:
          front_sid, back_sid, dt, roll_dt = partition
          last_front_dt = self._bar_reader.get_last_traded_dt(
              self._asset_finder.retrieve_asset(front_sid), dt
          )
          last_back_dt = self._bar_reader.get_last_traded_dt(
              self._asset_finder.retrieve_asset(back_sid), dt
          )
          if isnull(last_front_dt) or isnull(last_back_dt):
              continue
          front_close = self._bar_reader.get_value(
              front_sid, last_front_dt, "close"
          )
          back_close = self._bar_reader.get_value(
              back_sid, last_back_dt, "close"
          )
          adj_loc = dts.searchsorted(roll_dt)
          end_loc = adj_loc - 1
          adj = self._make_adjustment(
              cf.adjustment, front_close, back_close, end_loc
          )
          try:
              adjs[adj_loc].append(adj)
          except KeyError:
              adjs[adj_loc] = [adj]
      return adjs
  
imports: from abc import ABCMeta, abstractmethod, abstractproperty
  from numpy import concatenate
  from lru import LRU
  from pandas import isnull
  from pandas.tslib import normalize_date
  from toolz import sliding_window
  from six import with_metaclass
  from catalyst.assets import Equity, Future
  from catalyst.assets.continuous_futures import ContinuousFuture
  from catalyst.lib._int64window import AdjustedArrayWindow
  from catalyst.lib._float64window import AdjustedArrayWindow
  from catalyst.lib.adjustment import Float64Multiply, Float64Add
  from catalyst.utils.cache import ExpiringCache
  from catalyst.utils.math_utils import number_of_decimal_places
  from catalyst.utils.memoize import lazyval
  from catalyst.utils.numpy_utils import float64_dtype
  from catalyst.utils.pandas_utils import find_in_sorted_index
label_desc: Use image node_id 4 for calling the ContinuousFutureAdjustmentReader obj's underlying member method code with example usage: obj._get_adjustments_in_range(cf, dts, field) and returns: adjs, dict, dict