def METHOD_NAME(self, key, default=None, version=None, acquire_lock=True):
    key = self.make_key(key, version=version)
    self.validate_key(key)
    pickled = None
    with (self._lock if acquire_lock else dummy()):
        if not self._has_expired(key):
            pickled = self._cache[key]
    if pickled is not None:
        try:
            return pickle.loads(pickled)
        except pickle.PickleError:
            return default
    with (self._lock if acquire_lock else dummy()):
        try:
            del self._cache[key]
            del self._expire_info[key]
        except KeyError:
            pass
        return default