void (@NotNull final Project project, @NotNull final VirtualFile baseDir, @NotNull final T settings, @NotNull final Module module) { // Use NO_SETTINGS to avoid nullable settings of project generator if (settings == NO_SETTINGS) { // We are in Intellij Module and framework is implemented as project template, not facet. // See class doc for mote info configureProjectNoSettings(project, baseDir, module); return; } /*Instead of this method overwrite ``configureProject``*/ // If we deal with remote project -- use remote manager to configure it final Sdk sdk = settings.getSdk(); if (sdk instanceof PyLazySdk) { final Sdk createdSdk = ((PyLazySdk)sdk).create(); settings.setSdk(createdSdk); if (createdSdk != null) { SdkConfigurationUtil.addSdk(createdSdk); } } final PyProjectSynchronizer synchronizer = sdk != null ? PyProjectSynchronizerProvider.getSynchronizer(sdk) : null; if (synchronizer != null) { // Before project creation we need to configure sync // We call "checkSynchronizationAvailable" until it returns success (means sync is available) // Or user confirms she does not need sync String userProvidedPath = settings.getRemotePath(); while (true) { final String syncError = synchronizer.checkSynchronizationAvailable(new PySyncCheckCreateIfPossible(module, userProvidedPath)); if (syncError == null) { break; } userProvidedPath = null; // According to checkSynchronizationAvailable should be cleared final String message = PyBundle.message("python.new.project.synchronization.not.configured.dialog.message", syncError); if (Messages.showYesNoDialog(project, message, PyBundle.message("python.new.project.synchronization.not.configured.dialog.title"), General.WarningDialog) == Messages.YES) { break; } } } configureProject(project, baseDir, settings, module, synchronizer); var statisticsInfo = settings.getInterpreterInfoForStatistics(); if (statisticsInfo instanceof InterpreterStatisticsInfo interpreterStatisticsInfo && settings.getSdk() != null) { PythonNewProjectWizardCollector.logPythonNewProjectGenerated(interpreterStatisticsInfo, PyStatisticToolsKt.getVersion(settings.getSdk()), this.getClass()); } }