class_docstr: A cache of multiple CachedObjects, which returns the wrapped the value
  or raises and deletes the CachedObject if the value has expired.
  
  Parameters
  ----------
  cache : dict-like, optional
      An instance of a dict-like object which needs to support at least:
      `__del__`, `__getitem__`, `__setitem__`
      If `None`, than a dict is used as a default.
  
  Examples
  --------
  >>> from pandas import Timestamp, Timedelta
  >>> expires = Timestamp('2014', tz='UTC')
  >>> value = 1
  >>> cache = ExpiringCache()
  >>> cache.set('foo', value, expires)
  >>> cache.get('foo', expires - Timedelta('1 minute'))
  1
  >>> cache.get('foo', expires + Timedelta('1 minute'))
  Traceback (most recent call last):
      ...
  KeyError: 'foo'
class_docstr_tok: ["A","cache","of","multiple","CachedObjects",",","which","returns","the","wrapped","the","value","or","raises","and","deletes","the","CachedObject","if","the","value","has","expired",".","Parameters","--","--","--","--","--","cache",":","dict-like",",","optional","An","instance","of","a","dict-like","object","which","needs","to","support","at","least",":","`","__del__","`",",","`","__getitem__","`",",","`","__setitem__","`","If","`","None","`",",","than","a","dict","is","used","as","a","default",".","Examples","--","--","--","--",">",">",">","from","pandas","import","Timestamp",",","Timedelta",">",">",">","expires","=","Timestamp","(","'2014","'",",","tz='UTC","'",")",">",">",">","value","=","1",">",">",">","cache","=","ExpiringCache","(",")",">",">",">","cache.set","(","'foo","'",",","value",",","expires",")",">",">",">","cache.get","(","'foo","'",",","expires","-","Timedelta","(","'","1","minute","'",")",")","1",">",">",">","cache.get","(","'foo","'",",","expires","+","Timedelta","(","'","1","minute","'",")",")","Traceback","(","most","recent","call","last",")",":","...","KeyError",":","'foo","'"]
docstr: Get the value of a cached object.
  
  Parameters
  ----------
  key : any
      The key to lookup.
  dt : datetime
      The time of the lookup.
  
  Returns
  -------
  result : any
      The value for ``key``.
  
  Raises
  ------
  KeyError
      Raised if the key is not in the cache or the value for the key
      has expired.
docstr_tok: ["Get","the","value","of","a","cached","object",".","Parameters","--","--","--","--","--","key",":","any","The","key","to","lookup",".","dt",":","datetime","The","time","of","the","lookup",".","Returns","--","--","--","-","result",":","any","The","value","for","``","key","``",".","Raises","--","--","--","KeyError","Raised","if","the","key","is","not","in","the","cache","or","the","value","for","the","key","has","expired","."]
code: def get(self, key, dt):
      """Get the value of a cached object.
  
      Parameters
      ----------
      key : any
          The key to lookup.
      dt : datetime
          The time of the lookup.
  
      Returns
      -------
      result : any
          The value for ``key``.
  
      Raises
      ------
      KeyError
          Raised if the key is not in the cache or the value for the key
          has expired.
      """
      try:
          return self._cache[key].unwrap(dt)
      except Expired:
          del self._cache[key]
          raise KeyError(key)
  
imports: from collections import MutableMapping
  import errno
  import os
  import pickle
  from distutils import dir_util
  from shutil import rmtree, move
  from tempfile import mkdtemp, NamedTemporaryFile
  import pandas
  from .context_tricks import nop_context
  from .paths import ensure_directory
label_desc: Use image node_id 2 for calling the ExpiringCache obj's underlying member method code with example usage: obj.get(key, dt) and returns: self