def __get__(self, inst, owner):
        now = time.time()
        try:
            value, last_update = inst._cache[self.__name__]
            if now - last_update > self.ttl > 0:
                raise AttributeError
        except (KeyError, AttributeError):
            value = self.fget(inst)
            try:
                cache = inst._cache
            except __HOLE__:
                cache = inst._cache = {}
            cache[self.__name__] = (value, now)
        return value
dataset/ETHPy150Open smiley/steamapi/steamapi/decorators.py/cached_property.__get__