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)
}