class_docstr: Parameters
  ----------
  - trading_calendar : catalyst.utils.trading_calendar.TradingCalendar
  - asset_finder : catalyst.assets.AssetFinder
  - readers : dict
      A dict mapping Asset type to the corresponding
      [Minute|Session]BarReader
  - last_available_dt : pd.Timestamp or None, optional
      If not provided, infers it by using the min of the
      last_available_dt values of the underlying readers.
class_docstr_tok: ["Parameters","--","--","--","--","--","-","trading_calendar",":","catalyst.utils.trading_calendar.TradingCalendar","-","asset_finder",":","catalyst.assets.AssetFinder","-","readers",":","dict","A","dict","mapping","Asset","type","to","the","corresponding","[","Minute|Session","]","BarReader","-","last_available_dt",":","pd.Timestamp","or","None",",","optional","If","not","provided",",","infers","it","by","using","the","min","of","the","last_available_dt","values","of","the","underlying","readers","."]
code: def get_value(self, sid, dt, field):
      asset = self._asset_finder.retrieve_asset(sid)
      r = self._readers[type(asset)]
      return r.get_value(asset, dt, field)
  
imports: from abc import ABCMeta, abstractmethod
  from numpy import full, nan, int64, float64, zeros
  from six import iteritems, with_metaclass
  from catalyst.utils.memoize import lazyval
label_desc: Use image node_id 9 for calling the AssetDispatchBarReader obj's underlying member method code with example usage: obj.get_value(sid, dt, field) and returns: r