'Return True if `config_filename` does not exist or if modtime and hash have changes, else return False.'

def _should_cleanup(self, config_filename):

    if (not os.path.exists(config_filename)):
        return True
    new_mtime = os.path.getmtime(config_filename)
    if (self._mod_time_by_path.get(config_filename) < new_mtime):
        if (md5_hash_file(config_filename) != self._hash_by_tool_paths.get(config_filename)):
            return True
    return False
