class_docstr: A simple struct for maintaining a cached object with an expiration date.
  
  Parameters
  ----------
  value : object
      The object to cache.
  expires : datetime-like
      Expiration date of `value`. The cache is considered invalid for dates
      **strictly greater** than `expires`.
  
  Examples
  --------
  >>> from pandas import Timestamp, Timedelta
  >>> expires = Timestamp('2014', tz='UTC')
  >>> obj = CachedObject(1, expires)
  >>> obj.unwrap(expires - Timedelta('1 minute'))
  1
  >>> obj.unwrap(expires)
  1
  >>> obj.unwrap(expires + Timedelta('1 minute'))
  ... # doctest: +IGNORE_EXCEPTION_DETAIL
  Traceback (most recent call last):
      ...
  Expired: 2014-01-01 00:00:00+00:00
class_docstr_tok: ["A","simple","struct","for","maintaining","a","cached","object","with","an","expiration","date",".","Parameters","--","--","--","--","--","value",":","object","The","object","to","cache",".","expires",":","datetime-like","Expiration","date","of","`","value","`",".","The","cache","is","considered","invalid","for","dates","*","*","strictly","greater","*","*","than","`","expires","`",".","Examples","--","--","--","--",">",">",">","from","pandas","import","Timestamp",",","Timedelta",">",">",">","expires","=","Timestamp","(","'2014","'",",","tz='UTC","'",")",">",">",">","obj","=","CachedObject","(","1",",","expires",")",">",">",">","obj.unwrap","(","expires","-","Timedelta","(","'","1","minute","'",")",")","1",">",">",">","obj.unwrap","(","expires",")","1",">",">",">","obj.unwrap","(","expires","+","Timedelta","(","'","1","minute","'",")",")","...","#","doctest",":","+IGNORE_EXCEPTION_DETAIL","Traceback","(","most","recent","call","last",")",":","...","Expired",":","2014-01-01","00:00:00+00:00"]
docstr: Get the cached value.
  
  Returns
  -------
  value : object
      The cached value.
  
  Raises
  ------
  Expired
      Raised when `dt` is greater than self.expires.
code: def unwrap(self, dt):
      """
      Get the cached value.
  
      Returns
      -------
      value : object
          The cached value.
  
      Raises
      ------
      Expired
          Raised when `dt` is greater than self.expires.
      """
      expires = self._expires
      if expires is AlwaysExpired or expires < dt:
          raise Expired(self._expires)
      return self._value
  
imports: from collections import MutableMapping
  import errno
  from functools import partial
  import os
  import pickle
  from distutils import dir_util
  from shutil import rmtree, move
  from tempfile import mkdtemp, NamedTemporaryFile
  import pandas
  from .compat import PY2
  from .context_tricks import nop_context
  from .paths import ensure_directory
  from .sentinel import sentinel
label_desc: Use image node_id 3 for calling the CachedObject obj's underlying member method code with example usage: obj.unwrap(dt) and returns: self