'Is this a valid git repository?
Cache the result to avoid hitting the filesystem.'

def is_valid(self):

    git_dir = self.paths.git_dir
    try:
        valid = (bool(git_dir) and self._valid[git_dir])
    except KeyError:
        valid = self._valid[git_dir] = is_git_dir(git_dir)
    return valid
