Gets the amount of time an item has left in the cache (in seconds), before it is evicted.

        :param key: Key to check time for.
        :returns: int

def time_left(self, key):
        """
        Gets the amount of time an item has left in the cache (in seconds), before it is evicted.

        :param key: Key to check time for.
        :returns: int
        """
        self._evict_old()

        if key not in self._store:
            raise KeyError("key {0!r} does not exist in cache".format(key))

        return self.timeout - (time.time() - self._store[key][1])