@Override
  public void persistAttribute(@NotNull Project project, @NotNull VirtualFile fileOrDir, @NotNull LanguageLevel level) {
    LanguageLevel oldLanguageLevel = KEY.getPersistentValue(fileOrDir);
    boolean changed = KEY.setPersistentValue(fileOrDir, level);
    if (!changed) return;

    if (!areLanguageLevelsCompatible(oldLanguageLevel, level) || !ProjectFileIndex.getInstance(project).isInContent(fileOrDir)) {
      PushedFilePropertiesUpdater.getInstance(project).filePropertiesChanged(fileOrDir, PythonLanguageLevelPusher::isPythonFile);
    }
    if (fileOrDir.isDirectory() || isPythonFile(fileOrDir)) {
      clearSdkPathCache(fileOrDir);
    }
  }
@Override
  public void persistAttribute(@NotNull Project project, @NotNull VirtualFile fileOrDir, @NotNull LanguageLevel level)