class_docstr: A SessionBarReader backed by a dictionary of in-memory DataFrames.
  
  Parameters
  ----------
  frames : dict[str -> pd.DataFrame]
      Dictionary from field name ("open", "high", "low", "close", or
      "volume") to DataFrame containing data for that field.
  calendar : str or trading_calendars.TradingCalendar
      Calendar (or name of calendar) to which data is aligned.
  currency_codes : pd.Series
      Map from sid -> listing currency for that sid.
  verify_indices : bool, optional
      Whether or not to verify that input data is correctly aligned to the
      given calendar. Default is True.
class_docstr_tok: ["A","SessionBarReader","backed","by","a","dictionary","of","in-memory","DataFrames",".","Parameters","--","--","--","--","--","frames",":","dict","[","str","-",">","pd.DataFrame","]","Dictionary","from","field","name","(","``","open","''",",","``","high","''",",","``","low","''",",","``","close","''",",","or","``","volume","''",")","to","DataFrame","containing","data","for","that","field",".","calendar",":","str","or","trading_calendars.TradingCalendar","Calendar","(","or","name","of","calendar",")","to","which","data","is","aligned",".","currency_codes",":","pd.Series","Map","from","sid","-",">","listing","currency","for","that","sid",".","verify_indices",":","bool",",","optional","Whether","or","not","to","verify","that","input","data","is","correctly","aligned","to","the","given","calendar",".","Default","is","True","."]
docstr: Parameters
  ----------
  asset : zipline.asset.Asset
      The asset identifier.
  dt : datetime64-like
      Midnight of the day for which data is requested.
  
  Returns
  -------
  pd.Timestamp : The last know dt for the asset and dt;
                 NaT if no trade is found before the given dt.
docstr_tok: ["Parameters","--","--","--","--","--","asset",":","zipline.asset.Asset","The","asset","identifier",".","dt",":","datetime64-like","Midnight","of","the","day","for","which","data","is","requested",".","Returns","--","--","--","-","pd.Timestamp",":","The","last","know","dt","for","the","asset","and","dt",";","NaT","if","no","trade","is","found","before","the","given","dt","."]
code: def get_last_traded_dt(self, asset, dt):
      """
      Parameters
      ----------
      asset : zipline.asset.Asset
          The asset identifier.
      dt : datetime64-like
          Midnight of the day for which data is requested.
  
      Returns
      -------
      pd.Timestamp : The last know dt for the asset and dt;
                     NaT if no trade is found before the given dt.
      """
      try:
          return (
              self.frames["close"].loc[:, asset.sid].last_valid_index()
          )
      except IndexError:
          return NaT
  
imports: from six import iteritems
  import numpy
  import pandas
  from pandas import NaT
  from trading_calendars import TradingCalendar
  from zipline.data.bar_reader import OHLCV, NoDataOnDate, NoDataForSid
  from zipline.data.session_bars import CurrencyAwareSessionBarReader
  from zipline.utils.input_validation import expect_types, validate_keys
  from zipline.utils.pandas_utils import check_indexes_all_same
label_desc: Use image node_id 8 for calling the InMemoryDailyBarReader obj's underlying member method code with example usage: obj.get_last_traded_dt(asset, dt) and returns: self, NaT