override fun afterProjectGenerated()

in intellij-plugin/Edu-Python/src/com/jetbrains/edu/python/learning/newproject/PyCourseProjectGenerator.kt [31:67]


  override fun afterProjectGenerated(
    project: Project,
    projectSettings: PyProjectSettings,
    openCourseParams: Map<String, String>,
    onConfigurationFinished: () -> Unit
  ) {
    var sdk = projectSettings.sdk
    if (sdk is PySdkToInstall) {
      val selectedSdk = sdk

      @Suppress("UnstableApiUsage")
      val installedSdk = invokeAndWaitIfNeeded {
        selectedSdk.install(null) {
          detectSystemWideSdks(null, emptyList())
        }.getOrElse {
          LOG.warn(it)
          null
        }
      }
      if (installedSdk != null) {
        createAndAddVirtualEnv(project, projectSettings, installedSdk)
        sdk = projectSettings.sdk
      }
    }
    if (sdk is PySdkToCreateVirtualEnv) {
      val homePath = sdk.homePath ?: error("Home path is not passed during fake python sdk creation")
      createAndAddVirtualEnv(project, projectSettings, PyDetectedSdk(homePath))
      sdk = projectSettings.sdk
    }
    sdk = updateSdkIfNeeded(project, sdk)
    SdkConfigurationUtil.setDirectoryProjectSdk(project, sdk)
    if (sdk == null) {
      return
    }
    installRequiredPackages(project, sdk)
    super.afterProjectGenerated(project, projectSettings, openCourseParams, onConfigurationFinished)
  }