774 Commits
Author SHA1 Message Date
Nikita Iarychenko e0972d8d7a OPENIDE remove pycharm pro configurations 2026-03-26 13:12:36 +04:00
Aleksandr EliseevandNikita Iarychenko cf4831f3c5 Show different error message when thread is waiting to stop after sleep
(cherry picked from commit 9d9dd9d028)
2026-03-26 13:12:35 +04:00
Vitaly Legchilkinandintellij-monorepo-bot af3a616572 PY-88280 Replace switchToSdk with PySdkListener-based transferred roots handling
- Add PySdkTransferredRootsListener that handles root transfer and
  virtualenv exclusion reactively on PySdkListener.TOPIC
- Remove switchToSdk function from AddInterpreterActions
- Register listener in intellij.python.community.impl.xml
- Update PySdkPopupFactory, advancedActions, PySdkFromEnvironmentVariable
  to set module.pythonSdk directly

(cherry picked from commit 989a0d0d0be5722a92be8709868b97343e4889ae)

GitOrigin-RevId: b5d01f47409b127020a3021b1f3dc7ff8147ce9c
2026-03-18 17:22:13 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 1dc7eb5123 PY-88280 Convert PyModuleService to Kotlin project-level service with suspended SDK resolution
- Convert PyModuleService (abstract class) to Kotlin interface
- Convert PyModuleServiceImpl to Kotlin with project-level scope
- Change from application-level to project-level service
- Add findPythonSdkWaitingForProjectModel suspend method that awaits
  JPS project model loading before resolving the SDK
- Mark old findPythonSdk as @ApiStatus.Obsolete
- Update all call sites to use getInstance(project)

(cherry picked from commit 4dc39a57dbc6063d37522fac8befe01329c10cde)

GitOrigin-RevId: 529405c76d8e2fa503ccc40e15dd0834dd59f469
2026-03-18 17:22:13 +00:00
Egor.Eliseevandintellij-monorepo-bot 54a1d7a280 PY-87975 debugpy: add Jupyter backend switch handler and improve debugpy switcher UI
JupyterDebugBackendSwitchHandler — new handler for backend switching: restarts the Jupyter kernel for a clean state.
PyDebuggerBackendSwitcherAction — Beta instead of New for debugpy;
"Report Issue" now pre-fills the description with system information

Merge-request: IJ-MR-195507
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>
(cherry picked from commit ba620baef07b931fe85f62e582dd075fdc2517c1)

GitOrigin-RevId: 101da0656ca06fcfcfee2c687a7ade4920b92eae
2026-03-18 12:38:25 +00:00
Egor.Eliseevandintellij-monorepo-bot f706d1e04c [python] PY-87496 The user experience of debugging has changed a lot
Simply modify the configuration in the background and always restart the session.
If the session has already ended, hide the quick fix.

Merge-request: IJ-MR-194323
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit fd6c55fda3950e756d62bf508b4e274f069282c0)

GitOrigin-RevId: a39a345e6ad5ae121186680585c7e22f66877807
2026-03-18 12:38:25 +00:00
Egor Eliseevandintellij-monorepo-bot 4abe6f0b4d PY-87975 UI for switching between debug backends
Add a segmented button to Settings | Python | Debugger
Add ComboBoxAction in the Debug tool window toolbar (Python.DebuggerBackendSwitcher)
Show a one-time GotIt tooltip on the first debug session
Show a confirmation dialog when switching backend during an active session

Merge-request: IJ-MR-194172
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>
(cherry picked from commit 965677f0668b3493290f9f3bb59ed6e7da2f2f38)

GitOrigin-RevId: 7f0429d17e817a9e0c043b25a69d244a064320c6
2026-03-18 12:38:25 +00:00
Egor.Eliseevandintellij-monorepo-bot 4a12a549cc [python] PY-87496 The user experience of debugging has changed a lot
PyDebugProcess implements PyStepIntoSupport (pydevd path unchanged).
PythonDapDebugProcess implements PyStepIntoSupport:
justMyCode=true: "Step Into My Code" enabled, "Step Into" disabled;
justMyCode=false → "Step Into My Code" disabled with a tooltip.
Add PyDapStepIntoAction as a DAP-aware replacement for the platform "Step Into" action in the debug toolbar.

Merge-request: IJ-MR-193319
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit 6ee6b7afda307e11e4d477bfa9c05a2f80734b6e)

GitOrigin-RevId: afc464225112e49b7404dc2277f11f78023f9a56
2026-03-18 12:38:25 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 67235b83d2 PY-88099 Normalize project names and improve new project wizard UX
- Add PyPackageName.normalizeProjectName() per PEP 503 name normalization spec
- Normalize project names in uv, poetry, and hatch project generators
- Fix hatch createNewProject to use NioFiles.copyRecursively instead of broken EEL move
- Add background progress indicators for module structure creation and SDK setup
- Refresh VFS with markDirtyAndRefresh after module structure creation
- Add TraceContext to project generation and packaging tool window coroutines


(cherry picked from commit b64dfb4ae541e4a220698d804aec3fe95103bdf2)

IJ-MR-194426

GitOrigin-RevId: 0a1212d70d8136e1ba8821b736d09e00d78f310e
2026-03-04 18:44:08 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 9a36684baf PY-88057 Replace "Configure Python Interpreter" with "Custom Environment" dropdown
- Add a dropdown menu listing available interpreters (venv, conda, system, etc.)
  instead of a single "Configure Python Interpreter" link
- Introduce BusyGuardExecutor interface and InterpreterFixExecutor service
  that shares busy state across all notification panels via MutableStateFlow;
  while a fix is running, panels show a spinner instead of action links
- Move SDK creation work off EDT through the executor's coroutine scope
- Refresh module content roots after SDK creation instead of full VFS refresh
- Remove redundant SdkConfigurationService and InspectionRunnerService,
  consolidating their scopes into InterpreterFixExecutor

(cherry picked from commit 513beeaf0565721540aec4e248ea00ba7948e0cf)

GitOrigin-RevId: b1eed6952e43b229b01363a0ddac9b9269f241f3
2026-03-04 08:38:55 +00:00
Andrey Vokinandintellij-monorepo-bot 459f7ad63f PY-87526 Remove the collector for python.job.statistics
GitOrigin-RevId: c421ebc79ed9d8785462674e13b0402836727dfa
2026-03-02 18:02:48 +00:00
Vitaly Legchilkinandintellij-monorepo-bot ae6192980a PY-88015 Improve pyproject.toml notification and settings wording
- Update notification text to be shorter and more meaningful
- Add [beta] label to notification title and settings checkbox
- Use "workspace structure" wording consistently


(cherry picked from commit 7df0d727e61fa877a0ff9f83aed88c1c9b8cbd84)

IJ-MR-193755

GitOrigin-RevId: 73f4df4dd4f5de92a98d39a7746550d26faa3272
2026-02-28 00:13:33 +00:00
David Lysenkoandintellij-monorepo-bot c23c78ac0d potw-changes-to-261
This MR cherry picks changes done for PY-87723 and PY-87578

Merge-request: IJ-MR-193482
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

GitOrigin-RevId: c74229ed48ae8702667dda201613a2d0c3f25369
2026-02-26 19:55:47 +00:00
Morgan Bartholomewandintellij-monorepo-bot 92a861df05 PY-87740/PY-87763 type engine: ui features
GitOrigin-RevId: c1ee6bd5e0e0e31af41dcb403bccecada40096b7
2026-02-26 07:10:45 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 110fe78aab [python] PY-87445 Disable module dependencies UI when managed by pyproject.toml
GitOrigin-RevId: fa4e35248e7f8e33784cdbad06fb4010c3ea40e9
2026-02-25 01:20:01 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 830d38cead [python] PY-87445 Add pyproject.toml-based project model settings and configuration notification
Add PyProjectModelSettings with persistent state for pyproject.toml
workspace configuration. Show a notification when pyproject.toml is
detected, allowing users to enable the feature or dismiss it.
Convert PythonContentEntriesConfigurable to Kotlin and guard the
checkbox with the registry flag.

# Conflicts:
#	community/python/python-pyproject/src/com/intellij/python/pyproject/model/internal/AutoImportstarter.kt

GitOrigin-RevId: 4f07afe0ad1179f99c8a05f596379e83c7b299fc
2026-02-25 01:20:01 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 20b5c8c972 PY-86864 Replace PyInterpreterInspection with EditorNotificationProvider
Replace the LocalInspectionTool-based "no interpreter" warning with an
EditorNotificationProvider banner. This extends coverage to pyproject.toml
and README.md files (in addition to .py files) and simplifies the fix
architecture.

Key changes:
- Delete PyInterpreterInspection, replace with PyInterpreterNotificationProvider
- Add PyInterpreterNotificationFileOpenedListener for split-editor timing
- Replace LocalQuickFix with a simpler InterpreterFix interface (no ProblemDescriptor)
- Simplify PyAsyncFileInspectionRunner: use refreshAfterWrite for flicker-free
  cache refresh, use EditorNotifications instead of DaemonCodeAnalyzer
- Remove PyInterpreterInspectionSuppressor (no longer needed without inspection)
- Add isPythonModule check for the module
- Move bundle keys from PyPsiBundle to PyBundle with python.sdk.* prefix
- Extract CONFIGURABLE_ID constant in PyActiveSdkModuleConfigurable

IJ-MR-192977

(cherry picked from commit 6b3584d6c6beac53f4b8f0abb9a34e698b4ad03f)

GitOrigin-RevId: 1df48bbfbade2f7f31ffae7b02a0cab2f1f68389
2026-02-24 08:23:28 +00:00
Tatiana Berandintellij-monorepo-bot 2bf9d316a5 PY-87796 UI Texts: Fix typos and grammar mistakes (Feb 2026)
(cherry picked from commit f4b52fc04911cc80b05fc155485fa5aafcd70bf4)

GitOrigin-RevId: 76b3859ef35485c1704d9d12419fae927a3989c6
2026-02-20 23:47:12 +00:00
Alexey Katsmanandintellij-monorepo-bot fc0731b0ef PY-87227 Suggest a tool installation if it is not already installed
Support a mechanism for recommending a tool installation if we're
confident it should be used for SDK configuration. For now, it only
supports uv (with uv.lock check).

It also fixes PY-87744, since we dropped all usages of PyDetectedSdk in
our SDK configurators.

GitOrigin-RevId: f99a1089025079313db9aae09e3cfc0205e7e37f
2026-02-20 22:53:20 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 538a8c9c3e PY-87535: use modal progress for package installation from settings dialog
Migrate PyIntegratedToolsConfigurable from deprecated PyPackageManagerUI
to PythonPackageManagerUI with modal progress, since the install is
triggered from a modal settings dialog where background progress is not
visible.

Also:
- surface InvalidPathException as ConfigurationException in
  setRequirementsPath instead of silently logging
- detach PythonSdkUpdater.scheduleUpdate into a separate coroutine
  to avoid blocking refreshPaths
- increase flaky test timeouts in PythonPackageManagerTest


Merge-request: IJ-MR-191326
Merged-by: Vitaly Legchilkin <Vitaly.Legchilkin@jetbrains.com>

(cherry picked from commit 9fe0b8d94456e73fca90b1b6cac447f20a4cbcd9)

IJ-MR-191326

GitOrigin-RevId: cdf12afe10f63e97872f5b56be2ed983461eec20
2026-02-19 00:59:02 +00:00
Alexey Katsmanandintellij-monorepo-bot edcf151012 PY-80890 Support uv for remotes
Also fixes PY-87708


(cherry picked from commit e5c119e9f06f57ecd34464d9bc23bf63b8b8d95e)

IJ-MR-189717

GitOrigin-RevId: bf348b7e298e613aa94999e3cc97c2e1b8d4aa21
2026-02-17 14:59:19 +00:00
Marcus Mewsandintellij-monorepo-bot bb3287b757 PY-76914 Conformance test failure: generics_variance.py
GitOrigin-RevId: a8685c92130b4554072e7b6b482b418c443f2d24
2026-02-16 21:55:31 +00:00
Morgan Bartholomewandintellij-monorepo-bot c89964a84e PY-87130 type engine: add ui
GitOrigin-RevId: ea1b074efb27a07ceccae85d92dda4806d4888eb
2026-02-16 20:27:54 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 12f18602e6 PY-87683 Refactor and extend trace contexts in Python plugin
Rename bundle keys from tracecontext.* to trace.context.*, consolidate
tool-specific detection contexts into a parameterized key, and add new
trace contexts for ToolDetectionService and PyCondaEnvProvider.

GitOrigin-RevId: 8c3933c324366db13934a818b3463a28f4494ae6
2026-02-16 16:18:38 +00:00
Alexey Katsmanandintellij-monorepo-bot 019bd2a161 PY-85913 Drop pipenv from Python Integrated Tools window
This window only contained pipenv, there was no poetry/uv/hatch/etc.
This field is only used to setup a path to tool, but since we do in the
dialogs during SDK setup, there's no need in this field anymore.

GitOrigin-RevId: 07f9a4e8bccc2b41152dd07bee463037f80400ea
2026-02-16 14:54:12 +00:00
Andrey Vokinandintellij-monorepo-bot a7461e16d1 PY-87526 Remove the collector for python.job.statistics
GitOrigin-RevId: b1d48b9c9cf392d7e2ee87d02661ac7d60eb3389
2026-02-12 16:22:26 +00:00
Ilya.Kazakevichandintellij-monorepo-bot d17f8bbe67 cleanup [python]: remove unused symbols
GitOrigin-RevId: fbe0990d113825039ca6341860c24915a1493cf7
2026-02-11 05:14:23 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 8fd70026cb cleanup [python]: remove unused symbols
GitOrigin-RevId: cbefb7c4667b2d2d1a8f38bcddc28fb51a0ce226
2026-02-10 23:07:23 +00:00
David Lysenkoandintellij-monorepo-bot 7906446900 PY-87123
[pycharm] PY-87123 Synchronize build files

[pycharm] PY-87123 Add icons for process weight

[pycharm] PY-87123 Extract Pipenv icons/mapper into a pipenv module

[pycharm] PY-87123 Extract Conda icons/mapper into a separate module

[pycharm] PY-87459 Fix process tree autoscroll

Fixes an issue in which the process tree would not automatically scroll up
after new processes are added.

[pycharm] PY-87112 Change the icon of the tool window to a new one

[pycharm] PY-87123 Rename `Styling` object to `OutputSectionStyling`

This is done to match the naming of `TreeSectionStyling`.

[pycharm] PY-87123 Render spinner instead of an icon for running processes

[pycharm] PY-87123 Refactor TreeSection

* Extract tree content into its own composable
* Extract styling values into a styling object
* Remove redundant icons that can be constructed programmatically

[pycharm] PY-87123 Address feedback

[pycharm] PY-87123 Implement custom styling for critical errors

Critical errors are ones that are displayed to the user via the error sink.

[pycharm] PY-87123 Add tool-dependant icons to POTW process tree

[pycharm] PY-87123 Implement ProcessOutputIconMapping extension point

The extension point provides a way for tooling-related modules to define
custom mapping between file extensions and icons that should be used by
the Process Output Tool Window.


Merge-request: IJ-MR-189367
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

GitOrigin-RevId: 0d728779f04f2066e929954681ec7a23741f5f74
2026-02-10 21:28:26 +00:00
Maxim Popovandintellij-monorepo-bot a45f149b8a [debugger] PY-87450 add debugpy justMyCode checkbox for python configurations, where it is supported
Merge-request: IJ-MR-190905
Merged-by: Maxim Popov <maxim.popov@jetbrains.com>

GitOrigin-RevId: b34a0edf0c89ffd1967516810e0160c5f0cb0fce
2026-02-10 21:12:30 +00:00
Morgan Bartholomewandintellij-monorepo-bot dcd4dbc212 PY-86973 lsp tools: provide configuration option for documentation
GitOrigin-RevId: 8a54d23fe33d8c806b2c3d95f30d453d83ff7cb7
2026-02-09 09:37:32 +00:00
Morgan Bartholomewandintellij-monorepo-bot 4e9cbeefaa PY-83546 Ruff and ty: link console paths
GitOrigin-RevId: 26e4b525cb2beaa7061688eb586886fcaea6d365
2026-02-09 09:06:51 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 3da2fb2642 PY-87021: (Part 1, TBC): Postpone project rebuild until project generation finished and transfer run config. settings
1. Project rebuild process disposes modules and kills `PyV3` project generation (i.e. Django). We now skip autoimport for newly generated projects, and PyV3 calls `startAutoImportIfNeeded` after project generation.

2. EP introduced to update run configurations when module gets renamed.

GitOrigin-RevId: 55183da9c1f9d1e96e837e970254443fbaec6b5e
2026-02-05 21:31:45 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 13045f4379 cleanup [python]: remove deprecated symbols.
If you need venv, use `createVenv(sdk.asBinToExecute()`.

GitOrigin-RevId: d2a2bd6df749ad22bf13496bd11595504a9da5cd
2026-02-04 06:51:26 +00:00
Ilia Zakoulovandintellij-monorepo-bot 6e2d9cc90b PY-84031: Implement PyExternalFilesIndexService to index external files.
Non-project files by default are not indexed, do not have a module and do not have an SDK.
`PyExternalFilesIndexService` is resposible for adding a custom entities to the workspace model.

Space-RevId: dd7c50009e56dea0d69914c9f7f1524c7e77fe20

GitOrigin-RevId: cdfa2a578a01431fb9e0a06ce820c1d9b0f3fc0d
2026-02-03 23:35:47 +00:00
Vladimir.Koshelevandintellij-monorepo-bot 8762304f24 PY-87020 [python]: use PSI resolution for framework detection
GitOrigin-RevId: c85f2ac367c38f70ebc5d6cfcf79d94517819d0a
2026-01-30 21:49:04 +00:00
Alexey Katsmanandintellij-monorepo-bot c817f4821b PY-87232 Move tool configurators to separate packages
GitOrigin-RevId: 5a26d4a94ece7d4b3e49064c259518eb16cd6d6d
2026-01-29 13:25:49 +00:00
Alexey Katsmanandintellij-monorepo-bot 9ebdd29d37 PY-87232 Change venv module name
GitOrigin-RevId: faf2719abc6236f93840f7a2e34e58eec9f6e868
2026-01-29 13:25:49 +00:00
Alexey Katsmanandintellij-monorepo-bot 71cb91d1b6 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
2026-01-29 13:25:49 +00:00
Timur Malaninandintellij-monorepo-bot 887d6b9b74 PY-86247 Introduced an ability to choose folder that contains python binary instead of direct searching of file
GitOrigin-RevId: 20ab5cb28abd08fe05c528f11583bb9f37706926
2026-01-18 16:34:33 +00:00
Andrei.Kuznetsovandintellij-monorepo-bot 89314060c4 IJPL-227045 IJ-MR-187307 add "open=true" to services that have overrides
GitOrigin-RevId: f9795dcc08ef0f29ba20443e13a6ead6eade6d98
2026-01-12 13:56:43 +00:00
Nikita Pavlenkoandintellij-monorepo-bot 66163653d7 [PyCharm] Scientific (fix): Restored missing "move cell up/down" actions in structured python files. #PY-83552 Ready For Merge
GitOrigin-RevId: 3e45fab3310c3f72d56eb614057c974a275d9fb2
2026-01-08 19:39:03 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 5f648e46e5 cleanup [python]: Remove unused, pre-target APIs
(cherry picked from commit 11a0ac8481da2f8dc14d8cce9b7ecce17ae8df5b)

IJ-MR-187064

GitOrigin-RevId: 979870da15b64fdeea9b202888193dafbc2b74f0
2026-01-07 23:28:39 +00:00
Mikhail Golubevandintellij-monorepo-bot 4b2d29bfbb cleanup [python, remote interpreters]: Remove PyRemoteSkeletonGeneratorFactory EP and PyRemoteSkeletonGenerator implementations
This API was introduced for pre-Targets API interpreter introspection.
Now that Targets API is the only implementation and the corresponding
flag was removed in ab0469410b4a699ce516c2054e38b63753c726fb,
all the target-specific skeleton generators are no longer used
(they were created in PySkeletonRefresher#createRemoteSkeletonGenerator).

GitOrigin-RevId: 12d391970e49f3c2f841fb1bc41cd4ef9cc94297
2026-01-06 16:52:56 +00:00
Vitaly Legchilkinandintellij-monorepo-bot f37cdcfc8d PY-86614 additional FUS logging for python tools
+ more tools added (including pixi)
+ scan for file markers (like pixi.toml, uv.lock, poetry.lock, etc)

Merge-request: IJ-MR-186939
Merged-by: Vitaly Legchilkin <Vitaly.Legchilkin@jetbrains.com>

GitOrigin-RevId: e9dfe9e4d1f5719c9ab387ec0159735e4d893eae
2026-01-05 21:03:13 +00:00
Alexey Utkinandintellij-monorepo-bot bb2a820c8d IJPL-225367 [platform]: Fix the order of CodeFoldingOptionsProvider
- introduce the language-name order for the options
- provide the id for each CodeFoldingOptionsProvider

GitOrigin-RevId: cad30078fc4ff3be6584c4890a5deccc3136f794
2026-01-03 17:52:37 +00:00
Timur Malaninandintellij-monorepo-bot 755e75cb4b PY-85970 Handle cases where no interpreter is selected in the PyPackagingToolWindow. Add UI updates for missing interpreter state.
When the user typed in the search field without a configured interpreter:
1. textChanged → handleSearch() → accesses manager property
2. manager getter accesses managerUI.manager
3. managerUI is lateinit var, NOT initialized when sdk == null
4. UninitializedPropertyAccessException thrown during Swing text rendering
5. Exception corrupts Swing component state → text displays reversed

Fix:
- Add early return in handleSearch() when currentSdk is null

GitOrigin-RevId: 01f5607c8150ca73cc96fdd691820b08c4de96fa
2025-12-23 22:00:19 +00:00
Aleksandr.Govenkoandintellij-monorepo-bot b51231f76a PY-86123 Move inlay provider to a separate file, add tests and preview
GitOrigin-RevId: 8b5e353dd533824f532d608547eb64034fe82bf3
2025-12-22 22:36:14 +00:00
Aleksandr.Govenkoandintellij-monorepo-bot af0f19abb9 PY-86123 Add navigation to attribute for keyword pattern inlay hints
GitOrigin-RevId: aeabf8a75d4725be7a17a20be34a22ad45a31c15
2025-12-22 22:36:14 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 971b906415 PY-85211 mark pre-target sdks as invalid (we don't support them anymore)
GitOrigin-RevId: 1cb0b31bcb00a1a9f70fad91f082facb7b517183
2025-12-10 21:08:52 +00:00