<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def cached_value(self, source_file, configuration):
 """ Attempt to lookup the cached declarations for the given file and configuration. Returns None if declaration not found or signature check fails. """


        key = record_t.create_key(source_file, configuration)
        if key not in self.__cache:
            return None
        record = self.__cache[key]
        if self.__is_valid_signature(record):
            record.was_hit = True  # Record cache hit
            return record.declarations

        # some file has been changed
        del self.__cache[key]
        return None