PY-87232 Move SDK configurators away from ide customizations module

This was done for two reasons. To support these configurators in Python
plugin, not only PyCharm. And to make it easier to split tools by plugins.

GitOrigin-RevId: 9954c0c70be4e0d87405e88a0547ba4984db3dc1
This commit is contained in:
Alexey Katsman
2026-01-29 13:25:49 +00:00
committed by intellij-monorepo-bot
parent 199b3f0851
commit 71cb91d1b6
32 changed files with 163 additions and 285 deletions
@@ -1,7 +0,0 @@
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9367 16H13.0779L16 9H14.7207L12.5545 14.4893L10.3157 9H9L11.9367 16Z" fill="#6C707E"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00001 1C11 1 11 2 11 4L11 6.5C11 7.32843 10.3284 8 9.5 8H6.5C5.11929 8 4 9.11929 4 10.5V11C2 11 1 11 1 7.99999C1 4.99999 2 4.99998 4 4.99998L7.5 5C7.77614 5 8 4.77614 8 4.5C8 4.22386 7.77614 4 7.5 4H5.00001C5.00001 2 5.00001 1 8.00001 1ZM6.5 3C6.77614 3 7 2.77614 7 2.5C7 2.22386 6.77614 2 6.5 2C6.22386 2 6 2.22386 6 2.5C6 2.77614 6.22386 3 6.5 3Z" fill="#4682FA"/>
<path d="M12 6.5V5C14 5.00001 15 5.00002 15 7.99999C15 7.99999 15 7.99998 15 7.99999L14.0403 8L12.8608 10.9889C12.6587 10.9975 12.4422 10.9995 12.2114 10.9999L11.1442 8.38331C11.6687 7.92503 12 7.25121 12 6.5Z" fill="#FFAF0F"/>
<path d="M7.91562 9H6.5C5.67157 9 5 9.67157 5 10.5L5.00001 12C4.99946 14 5.00001 15 8.00001 15C9.11708 15 9.8182 14.8614 10.2583 14.5841L9.17419 12L8.5 12C8.22386 12 8 11.7761 8 11.5C8 11.2239 8.22386 11 8.5 11L8.75466 11L7.91562 9Z" fill="#FFAF0F"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

@@ -1,7 +0,0 @@
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9367 16H13.0779L16 9H14.7207L12.5545 14.4893L10.3157 9H9L11.9367 16Z" fill="#CED0D6"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00001 1C11 1 11 2 11 4L11 6.5C11 7.32843 10.3284 8 9.5 8H6.5C5.11929 8 4 9.11929 4 10.5V11C2 11 1 11 1 7.99999C1 4.99999 2 4.99998 4 4.99998L7.5 5C7.77614 5 8 4.77614 8 4.5C8 4.22386 7.77614 4 7.5 4H5.00001C5.00001 2 5.00001 1 8.00001 1ZM6.5 3C6.77614 3 7 2.77614 7 2.5C7 2.22386 6.77614 2 6.5 2C6.22386 2 6 2.22386 6 2.5C6 2.77614 6.22386 3 6.5 3Z" fill="#548AF7"/>
<path d="M12 6.5V5C14 5.00001 15 5.00002 15 7.99999C15 7.99999 15 7.99998 15 7.99999L14.0403 8L12.8608 10.9889C12.6587 10.9975 12.4422 10.9995 12.2114 10.9999L11.1442 8.38331C11.6687 7.92503 12 7.25121 12 6.5Z" fill="#F2C55C"/>
<path d="M7.91562 9H6.5C5.67157 9 5 9.67157 5 10.5L5.00001 12C4.99946 14 5.00001 15 8.00001 15C9.11708 15 9.8182 14.8614 10.2583 14.5841L9.17419 12L8.5 12C8.22386 12 8 11.7761 8 11.5C8 11.2239 8.22386 11 8.5 11L8.75466 11L7.91562 9Z" fill="#F2C55C"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

@@ -1,10 +0,0 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<g fill="none" fill-rule="evenodd">
<g fill-opacity=".9" fill-rule="nonzero" transform="translate(1 1)">
<path fill="#40A0CF" d="M6.91022782,0.0258929487 C6.37000109,0.0264652608 5.83075904,0.0719962659 5.2980847,0.162014559 C3.87043029,0.411472936 3.61125094,0.933622118 3.61125094,1.89655803 L3.61125094,3.1683132 L6.98491847,3.1683132 L6.98491847,3.5922176 L2.34509057,3.5922176 C1.32502959,3.56974186 0.436201508,4.28320156 0.237499481,5.28397479 C-0.0791784114,6.39223146 -0.0791784114,7.56702328 0.237499481,8.67527995 C0.330009274,9.60726159 1.09474199,10.3288099 2.03052265,10.3670511 L3.19043766,10.3670511 L3.19043766,8.84246671 C3.22234371,7.69765451 4.15284456,6.78248066 5.29802875,6.76959139 L8.6678079,6.76959139 C9.1164415,6.76870271 9.54631584,6.58948597 9.86271951,6.27142682 C10.1791232,5.95336768 10.3560942,5.52256395 10.3546417,5.07393182 L10.3546417,1.89655803 C10.2917932,0.983846775 9.57841181,0.250288445 8.6678079,0.162014559 C8.08672368,0.068085904 7.49884511,0.0225557014 6.91022782,0.0258929487 Z M5.08567792,1.04873523 C5.34294325,1.04759898 5.57554486,1.20159413 5.67496446,1.43887557 C5.77438406,1.67615701 5.72102999,1.949966 5.53979414,2.13255928 C5.3585583,2.31515256 5.08515505,2.37054826 4.84713837,2.27290199 C4.60912168,2.17525572 4.45339517,1.94380967 4.45261173,1.68654303 C4.45189759,1.33584511 4.73498444,1.05063797 5.08567792,1.04873523 Z"/>
<path fill="#FFC900" d="M8.50000002,13.807406 C7.45109315,14.0968124 6.33993811,14.0804483 5.29807071,13.7583137 C4.41513055,13.643434 3.72150753,12.9461818 3.61123695,12.0626542 L3.61123695,8.88529435 C3.61967392,7.95575276 4.36858581,7.20292244 5.29807071,7.18963478 L8.66784986,7.18963478 C9.82504854,7.16601208 10.7562488,6.23123984 10.7754409,5.07395919 L10.7754409,3.592217 L12.0415733,3.592217 C12.9506997,3.64857649 13.674705,4.37470095 13.7284071,5.28398818 C14.0048744,6.16561371 14.0605486,7.09795037 13.8954295,8 L8.5,8 L8.5,10.3670645 L6.98493245,10.3670645 L6.98493245,10.7909689 L8.5,10.7909689 L8.5,11.7657843 C8.47620541,11.7836604 8.45356774,11.8032931 8.43229119,11.8245979 C8.31355397,11.9434925 8.24694519,12.1047081 8.24713449,12.2727391 C8.24651523,12.4759251 8.3426369,12.6635706 8.5,12.7823028 L8.5,13.8074063 Z"/>
</g>
<polygon fill="#62B543" points="12.752 16 10.258 10 11.428 10 13.242 14.607 15.048 10 16.192 10 13.698 16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

@@ -719,6 +719,9 @@
<registryKey defaultValue="true" description="Show value tooltip" key="python.debugger.show.value.tooltip"/>
<registryKey defaultValue="3" description="Timeout to guess the best suitable SDK when adding new interpreter (seconds)" key="python.guess.sdk.timeout.seconds"/>
<statistics.counterUsagesCollector
implementationClass="com.jetbrains.python.sdk.configuration.PySdkConfigurationCollector"/>
</extensions>
<extensionPoints>
@@ -961,6 +964,23 @@
<runConfigurationEditorExtension implementation="com.jetbrains.python.run.PyRunConfigurationTargetOptions"/>
<projectSdkConfigurationExtension
implementation="com.jetbrains.python.sdk.configuration.PyRequirementsTxtOrSetupPySdkConfiguration"
id="requirementsTxtOrSetupPy" order="before uv"/>
<projectSdkConfigurationExtension
implementation="com.jetbrains.python.sdk.configuration.PyEnvironmentYmlSdkConfiguration"
id="environmentYml"/>
<projectSdkConfigurationExtension implementation="com.jetbrains.python.sdk.configuration.PyPipfileSdkConfiguration"
id="pipfile" order="before requirementsTxtOrSetupPy"/>
<projectSdkConfigurationExtension implementation="com.jetbrains.python.sdk.configuration.PyPoetrySdkConfiguration"
id="poetry"/>"/>
<projectSdkConfigurationExtension implementation="com.jetbrains.python.sdk.configuration.PyHatchSdkConfiguration"
id="hatch" order="after poetry"/>
<projectSdkConfigurationExtension implementation="com.jetbrains.python.sdk.configuration.PyUvSdkConfiguration"
id="uv" order="before venv"/>
<projectSdkConfigurationExtension implementation="com.jetbrains.python.sdk.configuration.PyVenvSdkConfiguration"
id="venv" order="last"/>
</extensions>
<actions resource-bundle="messages.PyBundle">
@@ -1792,3 +1792,23 @@ pycharm.statistics.feedback.ux.survey.title=Help us make PyCharm better
pycharm.statistics.feedback.ux.survey.content=Share your experience in a survey
progress.title.checking.test.framework=Looking for an Installed Test Framework
python.sdk.broken.configuration=Unsupported configuration detected in the Python SDK {0}, please recreate it.
sdk.create.condaenv.suggestion=Create a conda environment using environment.yml
sdk.remote.target.are.not.supported.for.conda.environment=Remote target are not supported for Conda environment
sdk.cannot.create.conda.environment.yml.not.found=Cannot create Conda environment, environment.yml does not exist
sdk.cannot.use.existing.conda.environment=Cannot use existing Conda environment
sdk.set.up.hatch.project.analysis=Hatch project analysis
sdk.set.up.hatch.environment=Set up Hatch 'default' environment
sdk.could.not.find.valid.hatch.environment=Could not find a valid Hatch environment
sdk.create.pipenv.suggestion=Create a pipenv environment using {0}
sdk.set.up.poetry.environment=Set up Poetry environment
sdk.progress.text.setting.up.poetry.environment=Setting up Poetry environment
sdk.create.venv.suggestion=Create a virtual environment using {0}
sdk.use.existing.venv=Use existing virtual environment {0}
sdk.create.venv.suggestion.no.arg=Create a virtual environment
sdk.set.up.uv.environment=Set up a uv {0} environment