diff --git a/python/pluginResources/intellij.python.community.impl.xml b/python/pluginResources/intellij.python.community.impl.xml
index 6dcf16be68f8..59aaea2e9d4d 100644
--- a/python/pluginResources/intellij.python.community.impl.xml
+++ b/python/pluginResources/intellij.python.community.impl.xml
@@ -677,7 +677,6 @@
-
diff --git a/python/src/com/jetbrains/python/sdk/uv/run/UvRunConfiguration.kt b/python/src/com/jetbrains/python/sdk/uv/run/UvRunConfiguration.kt
index 09390ef85a94..9b4c59f3dc90 100644
--- a/python/src/com/jetbrains/python/sdk/uv/run/UvRunConfiguration.kt
+++ b/python/src/com/jetbrains/python/sdk/uv/run/UvRunConfiguration.kt
@@ -9,7 +9,6 @@ import com.intellij.execution.runners.ExecutionEnvironment
import com.intellij.openapi.options.SettingsEditor
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
-import com.intellij.openapi.util.NlsActions
import com.intellij.openapi.util.NlsSafe
import com.intellij.util.xmlb.XmlSerializer
import com.jetbrains.python.PyBundle
@@ -34,7 +33,7 @@ enum class UvRunType {
@ApiStatus.Internal
data class UvRunConfigurationOptions(
var runType: UvRunType = UvRunType.SCRIPT,
- @NlsActions.ActionText var scriptOrModule: String = "",
+ var scriptOrModule: String = "",
var args: List = listOf(),
var env: Map = mapOf(),
var checkSync: Boolean = true,
@@ -42,18 +41,18 @@ data class UvRunConfigurationOptions(
var uvArgs: List = listOf()
) {
val uvSdk: Sdk?
- get() = uvSdkKey?.let { PythonSdkUtil.findSdkByKey(it) }
+ get() = uvSdkKey?.let {PythonSdkUtil.findSdkByKey(it)}
val workingDirectory: Path?
get() = (uvSdk?.sdkAdditionalData as? UvSdkAdditionalData)?.uvWorkingDirectory
- ?: tryResolvePath(uvSdk?.associatedModulePath)
+ ?: tryResolvePath(uvSdk?.associatedModulePath)
}
@ApiStatus.Internal
class UvRunConfiguration(
project: Project,
factory: ConfigurationFactory,
-): AbstractPythonRunConfiguration(project, factory) {
+) : AbstractPythonRunConfiguration(project, factory) {
var options: UvRunConfigurationOptions = UvRunConfigurationOptions(
uvSdkKey = module?.pythonSdk?.name ?: project.pythonSdk?.name,
)
@@ -63,7 +62,7 @@ class UvRunConfiguration(
override fun getState(
executor: Executor,
environment: ExecutionEnvironment,
- ): RunProfileState =
+ ): RunProfileState? =
UvRunConfigurationState(this, environment, project)
override fun readExternal(element: Element) {
@@ -83,21 +82,6 @@ class UvRunConfiguration(
override fun getSdk(): Sdk? {
return options.uvSdk
}
-
- override fun suggestedName(): String? {
- return when (options.runType) {
- UvRunType.SCRIPT -> {
- val path = options.scriptOrModule
- if (path.isBlank()) null else fileNameFromPath(path)
- }
- UvRunType.MODULE -> {
- val moduleName = options.scriptOrModule
- moduleName.ifBlank { null }
- }
- }
- }
-
- private fun fileNameFromPath(path: String): @NlsSafe String = Path.of(path).fileName.toString()
}
@ApiStatus.Internal
diff --git a/python/src/com/jetbrains/python/sdk/uv/run/UvRunConfigurationProducer.kt b/python/src/com/jetbrains/python/sdk/uv/run/UvRunConfigurationProducer.kt
deleted file mode 100644
index 37c4a3e098c3..000000000000
--- a/python/src/com/jetbrains/python/sdk/uv/run/UvRunConfigurationProducer.kt
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.jetbrains.python.sdk.uv.run
-
-import com.intellij.execution.Location
-import com.intellij.execution.actions.ConfigurationContext
-import com.intellij.execution.actions.ConfigurationFromContext
-import com.intellij.execution.actions.LazyRunConfigurationProducer
-import com.intellij.execution.configurations.ConfigurationFactory
-import com.intellij.execution.configurations.ConfigurationTypeUtil
-import com.intellij.openapi.module.Module
-import com.intellij.openapi.module.ModuleUtilCore
-import com.intellij.openapi.project.DumbAware
-import com.intellij.openapi.util.Ref
-import com.intellij.openapi.util.text.StringUtil
-import com.intellij.openapi.vfs.VirtualFile
-import com.intellij.psi.PsiElement
-import com.intellij.psi.PsiFile
-import com.intellij.testFramework.LightVirtualFile
-import com.jetbrains.python.PythonFileType
-import com.jetbrains.python.PythonLanguage
-import com.jetbrains.python.psi.types.TypeEvalContext
-import com.jetbrains.python.run.PythonRunConfigurationProducer
-import com.jetbrains.python.run.RunnableScriptFilter
-import com.jetbrains.python.sdk.pythonSdk
-import com.jetbrains.python.sdk.uv.isUv
-
-internal class UvRunConfigurationProducer : LazyRunConfigurationProducer(), DumbAware {
- override fun getConfigurationFactory(): ConfigurationFactory {
- val type = ConfigurationTypeUtil.findConfigurationType(UvRunConfigurationType::class.java)
- return type.configurationFactories.first()
- }
-
- override fun setupConfigurationFromContext(configuration: UvRunConfiguration, context: ConfigurationContext, sourceElement: Ref): Boolean {
- val location: Location<*> = context.location ?: return false
- val script: PsiFile = location.psiElement.containingFile ?: return false
- if (!isAvailable(location, script)) return false
-
- val module: Module? = ModuleUtilCore.findModuleForPsiElement(script)
- val uvSdk = module?.pythonSdk?.takeIf { it.isUv } ?: context.project.pythonSdk?.takeIf { it.isUv }
- if (uvSdk == null) return false
-
- val vFile: VirtualFile = script.virtualFile ?: return false
-
- configuration.options = configuration.options.copy(
- runType = UvRunType.SCRIPT,
- scriptOrModule = vFile.path,
- uvSdkKey = uvSdk.name,
- )
-
- val parent = vFile.parent
- if (parent != null && StringUtil.isEmpty(configuration.workingDirectory)) {
- configuration.workingDirectory = parent.path
- }
-
- if (module != null) {
- configuration.isUseModuleSdk = true
- configuration.module = module
- }
-
- configuration.setGeneratedName()
- return true
- }
-
- override fun isConfigurationFromContext(configuration: UvRunConfiguration, context: ConfigurationContext): Boolean {
- val location: Location<*> = context.location ?: return false
- val script: PsiFile = location.psiElement.containingFile ?: return false
- if (!isAvailable(location, script)) return false
-
- val vFile: VirtualFile = script.virtualFile ?: return false
- if (vFile is LightVirtualFile) return false
-
- val uvSdk = (ModuleUtilCore.findModuleForPsiElement(script))?.pythonSdk?.takeIf { it.isUv }
- ?: context.project.pythonSdk?.takeIf { it.isUv }
- ?: return false
-
- return configuration.options.scriptOrModule == vFile.path && configuration.options.uvSdkKey == uvSdk.name
- }
-
- override fun isPreferredConfiguration(self: ConfigurationFromContext, other: ConfigurationFromContext): Boolean {
- return other.isProducedBy(PythonRunConfigurationProducer::class.java)
- }
-
- override fun shouldReplace(self: ConfigurationFromContext, other: ConfigurationFromContext): Boolean {
- return other.isProducedBy(PythonRunConfigurationProducer::class.java)
- }
-
- private fun isAvailable(location: Location<*>, script: PsiFile?): Boolean {
- if (script == null || script.fileType != PythonFileType.INSTANCE || !script.viewProvider.baseLanguage.isKindOf(PythonLanguage.INSTANCE)) {
- return false
- }
- val module = ModuleUtilCore.findModuleForPsiElement(script)
- if (module != null) {
- for (f in RunnableScriptFilter.EP_NAME.extensionList) {
- if (f.isRunnableScript(script, module, location, TypeEvalContext.userInitiated(location.project, null))) {
- return false
- }
- }
- }
- return true
- }
-}
\ No newline at end of file