[platform] IJPL-224518 Cleanup private modifier usages with extensions/services in intellij.python.*

GitOrigin-RevId: 8a3b9d6763dbb00e30c9266ca1decc9803ef6304
This commit is contained in:
Yuriy Artamonov
2025-12-22 22:17:32 +00:00
committed by intellij-monorepo-bot
parent 782d94c537
commit 9514b1d461
43 changed files with 52 additions and 52 deletions
@@ -4,6 +4,6 @@ package com.intellij.pycharm.community.ide.impl
import com.intellij.codeInsight.codeVision.CodeVisionAnchorKind
import com.intellij.codeInsight.codeVision.settings.CodeVisionSettingsDefaults
private class PyCharmCodeVisionSettingsDefaults : CodeVisionSettingsDefaults {
internal class PyCharmCodeVisionSettingsDefaults : CodeVisionSettingsDefaults {
override val defaultPosition: CodeVisionAnchorKind get() = CodeVisionAnchorKind.Right
}
@@ -32,7 +32,7 @@ import kotlin.time.Duration.Companion.milliseconds
* This class is called **only in PyCharm**.
* It does not work in plugin
*/
private class PyCharmCorePluginConfigurator : ApplicationInitializedListener {
internal class PyCharmCorePluginConfigurator : ApplicationInitializedListener {
init {
if (ApplicationManager.getApplication().isHeadlessEnvironment()) {
throw ExtensionNotApplicableException.create()
@@ -3,4 +3,4 @@ package com.intellij.pycharm.community.ide.impl
import com.jetbrains.python.PythonIdeLanguageCustomization
private class PyCharmPythonIdeLanguageCustomization : PythonIdeLanguageCustomization()
internal class PyCharmPythonIdeLanguageCustomization : PythonIdeLanguageCustomization()
@@ -46,7 +46,7 @@ private val LOGGER = fileLogger()
internal val PY_REQ_TOOL_ID = ToolId("requirements.txt")
private class PyRequirementsTxtOrSetupPySdkConfiguration : PyProjectSdkConfigurationExtension {
internal class PyRequirementsTxtOrSetupPySdkConfiguration : PyProjectSdkConfigurationExtension {
override val toolId: ToolId = PY_REQ_TOOL_ID // This is nonsense, but will be dropped soon
@@ -33,7 +33,7 @@ private const val ID: String = "pythonInterpreterWidget"
fun isDataSpellInterpreterWidgetEnabled(): Boolean = PlatformUtils.isDataSpell() && Registry.`is`("dataspell.interpreter.widget")
private class PySdkStatusBarWidgetFactory : StatusBarWidgetFactory {
internal class PySdkStatusBarWidgetFactory : StatusBarWidgetFactory {
override fun getId(): String = ID
override fun getDisplayName(): String = PyBundle.message("configurable.PyActiveSdkModuleConfigurable.python.interpreter.display.name")
@@ -45,7 +45,7 @@ private class PySdkStatusBarWidgetFactory : StatusBarWidgetFactory {
override fun createWidget(project: Project, scope: CoroutineScope): StatusBarWidget = PySdkStatusBar(project, scope)
}
private class PySwitchSdkAction : DumbAwareAction(PyBundle.message("switch.python.interpreter"), null, null) {
internal class PySwitchSdkAction : DumbAwareAction(PyBundle.message("switch.python.interpreter"), null, null) {
override fun update(e: AnActionEvent) {
e.presentation.isVisible = e.getData(CommonDataKeys.VIRTUAL_FILE) != null && e.project != null
}
@@ -32,7 +32,7 @@ import java.nio.file.Path
private val logger = fileLogger()
private class PyUvSdkConfiguration : PyProjectTomlConfigurationExtension {
internal class PyUvSdkConfiguration : PyProjectTomlConfigurationExtension {
private val existingSdks by lazy { PythonSdkUtil.getAllSdks() }
private val context = UserDataHolderBase()
@@ -20,7 +20,7 @@ import com.jetbrains.python.sdk.legacy.PythonSdkUtil
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
private class PyVenvSdkConfiguration : PyProjectSdkConfigurationExtension {
internal class PyVenvSdkConfiguration : PyProjectSdkConfigurationExtension {
private val existingSdks by lazy { PythonSdkUtil.getAllSdks() }
private val context = UserDataHolderBase()
@@ -1,4 +1,4 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.pycharm.community.ide.impl.miscProject.impl
private class PyNewMiscScriptAction : PyMiscFileAction(MiscScriptFileType)
internal class PyNewMiscScriptAction : PyMiscFileAction(MiscScriptFileType)
@@ -14,7 +14,7 @@ import kotlinx.coroutines.withContext
/**
* New project wizard entry point
*/
private class PyCharmNewProjectAction : DumbAwareAction() {
internal class PyCharmNewProjectAction : DumbAwareAction() {
override fun actionPerformed(e: AnActionEvent) {
e.coroutineScope.launch {
runCatching {
@@ -53,7 +53,7 @@ import org.jetbrains.annotations.CalledInAny
import org.jetbrains.concurrency.CancellablePromise
import java.util.concurrent.Callable
private class PyWelcomeConfigurator : DirectoryProjectConfigurator {
internal class PyWelcomeConfigurator : DirectoryProjectConfigurator {
override val isEdtRequired: Boolean
get() = false
@@ -16,7 +16,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import java.nio.file.Path
private class PyCharmWelcomeScreenProjectProvider : WelcomeScreenProjectProvider() {
internal class PyCharmWelcomeScreenProjectProvider : WelcomeScreenProjectProvider() {
override fun getWelcomeScreenProjectName(): String = MISC_PROJECT_WITH_WELCOME_NAME
override fun getWelcomeScreenProjectPath(): Path = miscProjectDefaultPath
@@ -167,4 +167,4 @@ interface PythonHelpersLocator {
}
}
private class PythonHelpersLocatorDefault : PythonHelpersLocator
internal class PythonHelpersLocatorDefault : PythonHelpersLocator
@@ -52,7 +52,7 @@ internal class ImportsRankingModelService {
}
}
private class QuickfixRankingModelLoading : ProjectActivity {
internal class QuickfixRankingModelLoading : ProjectActivity {
override suspend fun execute(project: Project) {
if (!service<FinalImportRankingStatusService>().shouldLoadModel) return
ImportsRankingModelService.getInstance()
@@ -98,7 +98,7 @@ private suspend fun <T : PyFlavorData> createInterpreter(provider: InterpreterPr
}
}
private class VanillaInterpreterProvider : InterpreterProvider<PyFlavorData.Empty> {
internal class VanillaInterpreterProvider : InterpreterProvider<PyFlavorData.Empty> {
override val ui: PyToolUIInfo? = null
override val flavorDataClass: Class<PyFlavorData.Empty> = PyFlavorData.Empty::class.java
@@ -11,7 +11,7 @@ import com.jetbrains.python.run.configuration.PyPathMappingsEditorFragment
import javax.swing.JPanel
import kotlin.io.path.Path
private class PyPluginCommonFragmentsBuilder: PyCommonFragmentsBuilder() {
internal class PyPluginCommonFragmentsBuilder: PyCommonFragmentsBuilder() {
override fun <T : AbstractPythonRunConfiguration<*>> createEnvironmentFragments(fragments: MutableList<SettingsEditorFragment<T, *>>,
config: T) {
val sdkFragment: SettingsEditorFragment<T, JPanel> = PyPluginSdkFragment()
@@ -13,7 +13,7 @@ import javax.swing.Icon
*
* It suggests creating a new Python virtual environment for your new project to follow Python best practices.
*/
private class PythonNewProjectWizard : LanguageGeneratorNewProjectWizard {
internal class PythonNewProjectWizard : LanguageGeneratorNewProjectWizard {
override val name: String
get() = NewProjectWizardConstants.Language.PYTHON
@@ -17,7 +17,7 @@ import com.maddyhome.idea.copyright.psi.UpdatePsiFileCopyright
import java.util.function.Predicate
import java.util.regex.Pattern
private class PyUpdateCopyrightsProvider : UpdateCopyrightsProvider() {
internal class PyUpdateCopyrightsProvider : UpdateCopyrightsProvider() {
override fun createInstance(project: Project,
module: Module?,
file: VirtualFile,
@@ -10,7 +10,7 @@ import java.util.regex.Pattern
private val PY_DOC_PARAM = Pattern.compile("[a-z0-9_]+\\s*:\\s+\\p{L}+( or \\p{L}+)*")
private class PythonProblemFilter : ProblemFilter() {
internal class PythonProblemFilter : ProblemFilter() {
override fun shouldIgnore(problem: TextProblem): Boolean {
val domain = problem.text.domain
return domain == TextContent.TextDomain.DOCUMENTATION &&
@@ -18,7 +18,7 @@ import com.intellij.python.sdk.ui.evolution.ui.components.EvoTreeLazyNodeElement
import com.intellij.python.sdk.ui.evolution.ui.components.EvoTreeLeafElement
import com.intellij.python.sdk.ui.evolution.ui.components.EvoTreeSection
private class HatchSelectSdkProvider : EvoSelectSdkProvider {
internal class HatchSelectSdkProvider : EvoSelectSdkProvider {
override fun getTreeElement(evoModuleSdk: EvoModuleSdk): EvoTreeElement =
EvoTreeLazyNodeElement("Hatch", PythonHatchIcons.Logo) {
val hatchExecutablePath = HatchConfiguration.getOrDetectHatchExecutablePath().getOr {
@@ -16,7 +16,7 @@ import com.jetbrains.python.sdk.basePath
import java.nio.file.Path
import kotlin.collections.plus
private class VenvSelectSdkProvider() : EvoSelectSdkProvider {
internal class VenvSelectSdkProvider() : EvoSelectSdkProvider {
override fun getTreeElement(evoModuleSdk: EvoModuleSdk) = EvoTreeLazyNodeElement("pip", PythonSdkUIIcons.Tools.Pip) {
val environments = VenvEvoSdkManager.findEnvironments(evoModuleSdk.module).getOr {
return@EvoTreeLazyNodeElement it
@@ -23,7 +23,7 @@ import kotlinx.coroutines.CoroutineScope
private const val ID: String = "EvoPySdkStatusBarWidget"
private class PySdkStatusBarWidgetFactory : StatusBarWidgetFactory {
internal class PySdkStatusBarWidgetFactory : StatusBarWidgetFactory {
override fun getId(): String = ID
override fun getDisplayName(): String = PySdkUiBundle.message("evo.sdk.status.bar.widget.factory.display.name")
@@ -31,7 +31,7 @@ internal val defaultUvAction = object : AnAction(
}
private class AutoconfigSelectSdkProvider() : EvoSelectSdkProvider {
internal class AutoconfigSelectSdkProvider() : EvoSelectSdkProvider {
override fun getTreeElement(evoModuleSdk: EvoModuleSdk) = EvoTreeLazyNodeElement(
text = PySdkUiBundle.message("evo.sdk.status.bar.popup.shortcuts.best.options"),
icon = AllIcons.General.Layout
@@ -57,7 +57,7 @@ private val ratingIcons = listOf(
AllIcons.Ide.Rating1,
)
private class RunConfiguratorAction(
internal class RunConfiguratorAction(
intention: String,
order: Int,
) : AnAction({ intention }, { intention }, ratingIcons.getOrElse(order, { AllIcons.Ide.Rating1 })) {
@@ -15,7 +15,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
private class AsdfSystemPythonProvider : SystemPythonProvider {
internal class AsdfSystemPythonProvider : SystemPythonProvider {
private val LOGGER: Logger = Logger.getInstance(AsdfSystemPythonProvider::class.java)
override suspend fun findSystemPythons(eelApi: EelApi): PyResult<Set<PythonBinary>> {
@@ -14,7 +14,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
private class BrewSystemPythonProvider : SystemPythonProvider {
internal class BrewSystemPythonProvider : SystemPythonProvider {
private val LOGGER: Logger = Logger.getInstance(BrewSystemPythonProvider::class.java)
private val binDirectory = Path.of("/opt/homebrew/bin")
@@ -13,7 +13,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
private class MacSystemPythonProvider : SystemPythonProvider {
internal class MacSystemPythonProvider : SystemPythonProvider {
private val LOGGER: Logger = Logger.getInstance(MacSystemPythonProvider::class.java)
private val directories = listOf(
@@ -15,7 +15,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
private class PyenvSystemPythonProvider : SystemPythonProvider {
internal class PyenvSystemPythonProvider : SystemPythonProvider {
private val LOGGER: Logger = Logger.getInstance(PyenvSystemPythonProvider::class.java)
override suspend fun findSystemPythons(eelApi: EelApi): PyResult<Set<PythonBinary>> {
@@ -14,7 +14,7 @@ import kotlinx.coroutines.withContext
import java.nio.file.Path
private class UnixSystemPythonProvider : SystemPythonProvider {
internal class UnixSystemPythonProvider : SystemPythonProvider {
private val LOGGER: Logger = Logger.getInstance(UnixSystemPythonProvider::class.java)
private val directories = listOf(
@@ -6,7 +6,7 @@ import com.intellij.psi.impl.cache.impl.OccurrenceConsumer
import com.intellij.psi.impl.cache.impl.id.LexerBasedIdIndexer
import com.jetbrains.python.lexer.PythonLexer
private class PyIdIndexer : LexerBasedIdIndexer() {
internal class PyIdIndexer : LexerBasedIdIndexer() {
override fun createLexer(consumer: OccurrenceConsumer): Lexer {
return createPyIndexingLexer(consumer)
}
@@ -8,9 +8,9 @@ import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.actionSystem.EditorAction
import com.jetbrains.python.PythonFoldingBuilder
private class PyCollapseTypeAnnotationsAction : EditorAction(PyTypeAnnotationsFoldingHandler(false))
internal class PyCollapseTypeAnnotationsAction : EditorAction(PyTypeAnnotationsFoldingHandler(false))
private class PyExpandTypeAnnotationsAction : EditorAction(PyTypeAnnotationsFoldingHandler(true))
internal class PyExpandTypeAnnotationsAction : EditorAction(PyTypeAnnotationsFoldingHandler(true))
internal class PyTypeAnnotationsFoldingHandler(val expand: Boolean) : BaseFoldingHandler() {
override fun doExecute(editor: Editor, caret: Caret?, dataContext: DataContext) {
@@ -27,7 +27,7 @@ import java.nio.file.Path
import kotlin.io.path.exists
import kotlin.io.path.name
private class CondaSelectSdkProvider() : EvoSelectSdkProvider {
internal class CondaSelectSdkProvider() : EvoSelectSdkProvider {
override fun getTreeElement(evoModuleSdk: EvoModuleSdk) = EvoTreeLazyNodeElement("Conda", PythonIcons.Python.Anaconda) {
val condaExecutablePath = findCondaExecutablePath().getOr {
return@EvoTreeLazyNodeElement it
@@ -161,7 +161,7 @@ internal class PythonInterpreterMasterDetails(private val moduleOrProject: Modul
/**
* Note that implementing [MasterDetailsComponent.ActionGroupWithPreselection] guarantees that the group action will be handled as popup.
*/
private class PopupActionGroup(actions: List<AnAction>) : DefaultActionGroup(actions), ActionGroupWithPreselection {
internal class PopupActionGroup(actions: List<AnAction>) : DefaultActionGroup(actions), ActionGroupWithPreselection {
override fun getActionGroup(): ActionGroup = this
}
@@ -14,7 +14,7 @@ import com.jetbrains.python.packaging.pip.PypiPackageCache
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
private class PythonPackagesUpdater : ProjectActivity {
internal class PythonPackagesUpdater : ProjectActivity {
init {
if (ApplicationManager.getApplication().isUnitTestMode || Registry.`is`("disable.python.cache.update")) {
throw ExtensionNotApplicableException.create()
@@ -18,7 +18,7 @@ import kotlinx.coroutines.withContext
* This class represents a post-startup activity for PyProjectToml files in a project.
* It finds valid python versions in PyProjectToml files and saves them in PyProjectTomlPythonVersionsService.
*/
private class PoetryPyProjectTomlPostStartupActivity : ProjectActivity {
internal class PoetryPyProjectTomlPostStartupActivity : ProjectActivity {
override suspend fun execute(project: Project) {
val modulesRoots = PythonSdkUpdater.getModuleRoots(project)
for (module in modulesRoots) {
@@ -27,7 +27,7 @@ internal class PoetryPackageRequirementsTreeExtractor(private val sdk: Sdk) : Py
}
}
private class PoetryPackageRequirementsTreeExtractorProvider : PythonPackageRequirementsTreeExtractorProvider {
internal class PoetryPackageRequirementsTreeExtractorProvider : PythonPackageRequirementsTreeExtractorProvider {
override fun createExtractor(sdk: Sdk): PythonPackageRequirementsTreeExtractor? =
if (sdk.isPoetry) PoetryPackageRequirementsTreeExtractor(sdk) else null
}
@@ -51,7 +51,7 @@ internal class PoetryPackageRequirementExtractor(private val sdk: Sdk) : PythonP
}
}
private class PoetryRequiresExtractorProvider: PythonPackageRequiresExtractorProvider {
internal class PoetryRequiresExtractorProvider: PythonPackageRequiresExtractorProvider {
override fun createExtractor(sdk: Sdk): PythonPackageRequirementExtractor? {
if (!sdk.isPoetry) return null
return PoetryPackageRequirementExtractor(sdk)
@@ -31,7 +31,7 @@ import java.nio.file.Path
import kotlin.io.path.Path
import kotlin.io.path.name
private class PoetrySelectSdkProvider() : EvoSelectSdkProvider {
internal class PoetrySelectSdkProvider() : EvoSelectSdkProvider {
override fun getTreeElement(evoModuleSdk: EvoModuleSdk): EvoTreeElement = EvoTreeLazyNodeElement("Poetry", PythonIcons.Python.Origami) {
getPoetryExecutable() ?:PyResult.localizedError(PyBundle.message("python.sdk.poetry.execution.exception.no.poetry.message"))
@@ -84,7 +84,7 @@ private class PoetrySelectSdkProvider() : EvoSelectSdkProvider {
}
}
private class SelectPoetryEnvAction(
internal class SelectPoetryEnvAction(
title: String,
installedVersion: Version?,
@@ -124,7 +124,7 @@ private class PythonLockedRunConfigurationFactory(type: ConfigurationType)
}
}
private open class PythonLockedRunConfigurationTypeBase(val theId: String, @Nls val name: String)
internal open class PythonLockedRunConfigurationTypeBase(val theId: String, @Nls val name: String)
: ConfigurationType {
private val factory: ConfigurationFactory = PythonLockedRunConfigurationFactory(this)
@@ -167,11 +167,11 @@ private open class PythonLockedRunConfigurationTypeBase(val theId: String, @Nls
}
private class DjangoServerLockedRunConfigurationType : PythonLockedRunConfigurationTypeBase("Python.DjangoServer", PyBundle.message("python.run.configuration.django.name"))
private class FlaskServerLockedRunConfigurationType : PythonLockedRunConfigurationTypeBase("Python.FlaskServer", PyBundle.message("flask.name"))
private class DbtRunLockedConfigurationType : PythonLockedRunConfigurationTypeBase("DbtRunConfiguration", PyBundle.message("python.run.configuration.dbt.name"))
private class FastAPILockedRunConfigurationType : PythonLockedRunConfigurationTypeBase("Python.FastAPI", PyBundle.message("python.run.configuration.fastapi.name"))
internal class DjangoServerLockedRunConfigurationType : PythonLockedRunConfigurationTypeBase("Python.DjangoServer", PyBundle.message("python.run.configuration.django.name"))
internal class FlaskServerLockedRunConfigurationType : PythonLockedRunConfigurationTypeBase("Python.FlaskServer", PyBundle.message("flask.name"))
internal class DbtRunLockedConfigurationType : PythonLockedRunConfigurationTypeBase("DbtRunConfiguration", PyBundle.message("python.run.configuration.dbt.name"))
internal class FastAPILockedRunConfigurationType : PythonLockedRunConfigurationTypeBase("Python.FastAPI", PyBundle.message("python.run.configuration.fastapi.name"))
private class DjangoFacetIgnorer : FacetIgnorer {
internal class DjangoFacetIgnorer : FacetIgnorer {
override fun isIgnored(facet: InvalidFacet): Boolean = facet.name == "Django"
}
@@ -115,7 +115,7 @@ internal class AddLocalInterpreterAction(
fun addLocalInterpreter(moduleOrProject: ModuleOrProject, onSdkCreated: (Sdk) -> Unit): Unit =
createAddLocalInterpreterAction(moduleOrProject, onSdkCreated).createDialog().show()
private class AddInterpreterOnTargetAction(
internal class AddInterpreterOnTargetAction(
private val project: Project,
private val targetType: TargetEnvironmentType<*>,
private val onSdkCreated: (Sdk) -> Unit,
@@ -15,7 +15,7 @@ import com.jetbrains.python.sdk.pythonSdk
import com.jetbrains.python.sdk.switchToSdk
private class AdvancedSelectSdkProvider() : EvoSelectSdkProvider {
internal class AdvancedSelectSdkProvider() : EvoSelectSdkProvider {
override fun getTreeElement(evoModuleSdk: EvoModuleSdk) = EvoTreeLazyNodeElement(
text = PySdkUiBundle.message("evo.sdk.status.bar.popup.select.advanced"),
icon = AllIcons.Toolwindows.ToolWindowInternal
@@ -16,7 +16,7 @@ import kotlinx.coroutines.sync.withLock
/**
* PyRunToolProvider implementation that runs scripts/modules using `uv run`.
*/
private class UvRunToolProvider : PyRunToolProvider {
internal class UvRunToolProvider : PyRunToolProvider {
override suspend fun getRunToolParameters(): PyRunToolParameters {
if (!runToolParameters.isCompleted) {
@@ -36,7 +36,7 @@ internal class UvPackageRequirementsTreeExtractor(private val uvWorkingDirectory
}
private class UvPackageRequirementsTreeExtractorProvider : PythonPackageRequirementsTreeExtractorProvider {
internal class UvPackageRequirementsTreeExtractorProvider : PythonPackageRequirementsTreeExtractorProvider {
override fun createExtractor(sdk: Sdk): PythonPackageRequirementsTreeExtractor? {
if (!sdk.isUv) return null
val data = sdk.sdkAdditionalData as? UvSdkAdditionalData ?: return null
@@ -28,7 +28,7 @@ internal class UvPackageRequirementExtractor(private val uvWorkingDirectory: Pat
}
}
private class UvPackageRequiresExtractorProvider: PythonPackageRequiresExtractorProvider {
internal class UvPackageRequiresExtractorProvider: PythonPackageRequiresExtractorProvider {
override fun createExtractor(sdk: Sdk): PythonPackageRequirementExtractor? {
val data = sdk.sdkAdditionalData as? UvSdkAdditionalData ?: return null
return UvPackageRequirementExtractor(data.uvWorkingDirectory)
@@ -22,7 +22,7 @@ import kotlin.collections.component1
import kotlin.collections.component2
private class UvSelectSdkProvider() : EvoSelectSdkProvider {
internal class UvSelectSdkProvider() : EvoSelectSdkProvider {
override fun getTreeElement(evoModuleSdk: EvoModuleSdk): EvoTreeLazyNodeElement {
val icon = PythonCommunityImplUVCommonIcons.UV
return EvoTreeLazyNodeElement("uv", icon) {