Commit Graph

32564 Commits

Author SHA1 Message Date
Alexey Katsman
a03643bb9c [python] PY-84777 Use system pythons as a fallback for SDK configuration
There was a problem with detecting system-wide pythons, which relied on
binary not being a part of conda env or virtualenv. But it led to
unrelated Hatch and Poetry pythons automatically configured as
interpreters in new projects. Another problem is that free-threaded
python was chosen as default interpreter with highest priority because
of the newest version.

This change uses SystemPythonService to detect system pythons properly,
also free-threaded python used as a default interpreter only if it's the
only available option.

Merge-request: IJ-MR-179008
Merged-by: Alexey Katsman <alexey.katsman@jetbrains.com>

GitOrigin-RevId: 73bc98aed2918c44832b57f22b86c9c7d17a4301
2025-10-22 13:10:20 +00:00
Alexey Katsman
9140cb4e7b [python] PY-84315: Use SDK configurators for inspection
There was a problem that we can detect uv environment as a virtualenv in
PyInterpreterInspection. The problem is that we don't use the knowledge
about the existing environment anyhow.

This change relies on SDK configurators to tell whether environment is
present or can be configured.

GitOrigin-RevId: 27f55c7d1b4712b0b8c3d39b1b8f7d8643680910
2025-10-22 13:10:20 +00:00
Alexey Katsman
033d7cc704 [python] PY-83881: Remove check for new project when configuring SDK
GitOrigin-RevId: d610fa41848daf0512640c5a87d98d85cf29382d
2025-10-22 13:10:20 +00:00
David Lysenko
fc7d863a50 IJ-MR-176106-to-253
[pycharm] PY-81494 Fix deadlocking code


Merge-request: IJ-MR-179432
Merged-by: David Lysenko <david.lysenko@jetbrains.com>
[pycharm] PY-81494 Config fixes

PY-81494

[pycharm] PY-81494 Fix further flakiness

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Fix flakiness

[pycharm] PY-81494 Separate modules

[pycharm] PY-81494 Fix tests

[pycharm] PY-81494 Change waitFor to awaitExit for coroutines

[pycharm] PY-81494 Configuration fixes

[pycharm] PY-81494 Add usage statistics

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Add more limit tests

[pycharm] PY-81494 Post-rebase fixes

[pycharm] PY-81494 Implement logging tests

[pycharm] PY-81494 Final design adjustments

[pycharm] PY-81494 Refactor flows

[pycharm] PY-81494 Add more OutputSection tests

[pycharm] PY-81494 Add Toolbar tests

[pycharm] PY-81494 Add InterText tests

[pycharm] PY-81494 Add FilterActionGroup tests

[pycharm] PY-81494 Add EmptyContainerNotice tests

[pycharm] PY-81494 Add CollapsibleListSection tests

[pycharm] PY-81494 Add ActionIconButton tests

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Post-rebase fixes

[pycharm] PY-81494 Address initial feedback

[pycharm] PY-81494 Fix existing tests & add new to tree

[pycharm] PY-81494 Implement copy to clipboard button

[pycharm] PY-81494 Amend design

[pycharm] PY-81494 Begin implementing output tests

[pycharm] PY-81494 Refactor file structure

[pycharm] PY-81494 Implement tests for process list

[pycharm] PY-81494 wip tests for process list

[pycharm] PY-81494 Finishing touches

[pycharm] PY-81494 Consolidate list logic in the model

[pycharm] PY-81494 Add logging limits

[pycharm] PY-81494 Implement open tool window on exec service error

[pycharm] PY-81494 Implement open command in terminal

[pycharm] PY-81494 Add expansion actions

[pycharm] PY-81494 Implement categorization by coroutine names

[pycharm] PY-81494 Memorize expansion states between tool window openings

[pycharm] PY-81494 Memorize scroll state between tool window openings

[pycharm] PY-81494 Introduce collapsible section for process info

[pycharm] PY-81494 Implement view setting filtering

[pycharm] PY-81494 Refactor process logging to use shared flows

[pycharm] PY-81494 Implement tests for ProcessList composable

[pycharm] PY-81494 Implement process toolwindow prototype

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


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

GitOrigin-RevId: 44552a582dd628d206b207e02e6f24c7749b4d9f
2025-10-22 09:04:47 +00:00
Vitaly Legchilkin
bf299d23c2 [python] (PY-84985) add a second property for the hatch environment
There is a second field for selected existing env because the lookup values are different and the UI component doesn't reflect changes if the selected env is not in the list.

(selection of non-existing env on the create new view and switching to the select existing view makes the UI inconsistent otherwise)


(cherry picked from commit a897842aa68753c7709553e979bb8610facc0bdf)

IJ-MR-179439

GitOrigin-RevId: 358246846fd4d6bea610b2bf41fd48f90cecb2ec
2025-10-22 08:28:09 +00:00
Alexey Katsman
ac0e3e0cee [python] PY-83881 Fix virtualenv detection
GitOrigin-RevId: 41a4f1298cbf461289aef937a75122e56ede9d3c
2025-10-21 21:47:11 +00:00
Alexey Katsman
cc191a617f [python] PY-83881 Detect existing environments when creating SDK
Before the changes, there wasn't any mechanism to detect that
environment was already created (for example, .venv exists in the
project). In these situations, during SDK creation we could've created
another environment which was not expected by users.

With these changes, it's now possible to detect in the configurator that
environment already exists, and use it when creating SDK.

Merge-request: IJ-MR-177317
Merged-by: Alexey Katsman <alexey.katsman@jetbrains.com>

GitOrigin-RevId: dd0cf0c02b18e90022e9ec828b7f9ad2282cd5b3
2025-10-21 21:47:11 +00:00
Egor Eliseev
90b09141f1 PY-84038 Merge debugpy configuration to our standard debug configuration
Add all debuggable configurations except for UvRunConfiguration
Fix an exception message in DjangoServerRunConfigProvider
Don't add an empty working directory
Fix modules’ dependencies
Move some providers to their configuration modules

Original merge-request: IJ-MR-178473


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

GitOrigin-RevId: 77818c6bd405cc0d5ad43166d2a351511ba1d6f3
2025-10-21 15:27:27 +00:00
Sergei Tachenov
4ffd5876e8 [python] IJPL-210924 Fix the Python Packages dark theme detection
Now that UIThemeLookAndFeelInfo has the nice isDark property,
we no longer need to hardcode exact themes here,
except for the high contrast one.


(cherry picked from commit 4d8f267d1b7d2c24a04093334a49ca6b5be32a9a)

IJ-CR-179276

GitOrigin-RevId: 58dea94f83569070d2961b1cc5c6325cc0f52437
2025-10-21 13:51:32 +00:00
Pavel Karateev
c371e4b876 [python] PY-84951 fix uv capitalization on the new project screen
(cherry picked from commit 0dce63c24272b3288addaebc79fb46d39499dbdb)

IJ-MR-179232

GitOrigin-RevId: 80666ba1e76bed30115300aa7242780601983eb7
2025-10-21 13:26:17 +00:00
Ilia Zakoulov
f4342aa9cc Update text for PyCharm non modal welcome screen
(cherry picked from commit fdbf777974fdc1c5302763c2a8c317d7ccb19161)

IJ-MR-179317

GitOrigin-RevId: 6bb713915f90154f80e135dc3ac1f2707c2d289e
2025-10-21 12:11:06 +00:00
Morgan Bartholomew
00cdda225b [python] PY-83733 ruff support
(cherry picked from commit df443269c3a29cfe9b5f3b67663a1f998396e738)

GitOrigin-RevId: f7d5bf3905cbe4e9092ee3976509777005f3f3bb
2025-10-21 06:20:05 +00:00
Morgan Bartholomew
efd52e7623 [python] PY-81505 pyrefly support
(cherry picked from commit 2b2169da6e400e956efd6f0d92c150dbe843731c)

GitOrigin-RevId: debd99667404f4e000e8aebaea832b089fc6feed
2025-10-21 06:20:05 +00:00
Morgan Bartholomew
29f330dab6 [python] PY-65674 pyright support
(cherry picked from commit ca3727d7eb017ec61e93d1336d9ca97dfa39c325)

GitOrigin-RevId: 02c10705a3dbe186d2db70f7a249854494c50e3d
2025-10-21 06:20:05 +00:00
Morgan Bartholomew
3b5f60b3a7 [python] PY-81279 ty support
(cherry picked from commit a13a2695061921add80ebf2844eb5f6a56d396f1)

GitOrigin-RevId: 7e1252e72314702c05fbe1afd507eae9e8b8c293
2025-10-21 06:20:05 +00:00
Morgan Bartholomew
1514a1fc00 [python] python-lsp-core
(cherry picked from commit e07d457d959a1b589861180c1be06b995218aa2c)

GitOrigin-RevId: 032d78e90ff3263c494ceeafb2411aaceb29c643
2025-10-21 06:20:05 +00:00
Vitaly Legchilkin
b8ca0ca70a [python] (PY-84877) associate new sdk with the module for venv / conda
+ rename ToolState -> PythonToolViewModel
+ rename all ViewModels
+ makeAvailableForAllProjects flag is available only for new plain venv, so should not affect others

(cherry picked from commit 83da5b7a52d0626360ffbf14ff62fbd358942107)

GitOrigin-RevId: 8c59f80b1576b9142f8081e758a5ae3bb84205c7
2025-10-20 22:38:43 +00:00
Timur Malanin
266c5fa121 PY-84905 Introduce run.with.py.tool registry key to enable running with specific run tools.
(cherry picked from commit d62efa40233864a49bf0c4c79395b9a726b0eca9)

IJ-MR-178963

GitOrigin-RevId: 8d564387328ebf00dd6a6124c69d1fdacf492069
2025-10-20 21:08:19 +00:00
Timur Malanin
ea39ed6ad9 PY-84846 Log Python "Run with" tool usage.
(cherry picked from commit ee13b27a80b759d2c12169a30499ba8dd39a03ea)

IJ-MR-178767

GitOrigin-RevId: a1c87d6cb426ef195c4fbf1c60cf01a56547ffad
2025-10-20 20:19:30 +00:00
Vitaly Legchilkin
5bd261f8ea [python] (PY-84885) sdk v2 model refactoring
* move tool specific properties to tool sections

(cherry picked from commit 543c1f6ba44c564e31a956309bfaee44c6492b67)

GitOrigin-RevId: 84b1f2af49dffe7a5e1928b4362917c2a9194fb0
2025-10-20 19:01:51 +00:00
Vitaly Legchilkin
7e64eff197 [python] (PY-84885) (PY-84869) add sdk dialog / fix tool autodetection
(cherry picked from commit 7bfefab68b17b6abfe9a46718f4933b12b80ca56)

GitOrigin-RevId: 81dfe55e4a4f0de03116a1da9cd753c02a527d7f
2025-10-20 19:01:51 +00:00
Vitaly Legchilkin
93714e1608 [python] (PY-84870) disable buttons on the target custom tool wizard in case of tool validation errors
Originally the "Create" button on the Target Custom Tool Wizard (it is used only for Python now) was always active not depending on the tool internal state. registerStateChangedCallback was added to the CustomToolLanguageConfigurable interface to notify controls of changes inside the tool form.

CustomToolLanguageConfigurable was marked as Internal to align with TargetCustomToolPanel.


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

GitOrigin-RevId: ecbf55364bfcdd8dea9d05a154c548aae63da445
2025-10-20 12:38:01 +00:00
Timur Malanin
8564d2dbd1 Add support for UV environment creation and selection in a custom environment
(cherry picked from commit 6c41992f3969f669b902efded3cb52e5ac8b61dd)

IJ-MR-179058

GitOrigin-RevId: ee9c3c5f39bb4d10c8a47aa9e56ac3bae68087ba
2025-10-18 22:45:55 +00:00
Timur Malanin
0d76aa8817 PY-77929 Move uv project creation from custom section to top-level in new project panel
(cherry picked from commit 6bb6eda2b554de46fbdf4616eb6d9b17fd1949f9)

IJ-MR-178621

GitOrigin-RevId: 537158b52cf7e3f6cb49eb669fccafb229f65b56
2025-10-18 20:37:50 +00:00
Ilya.Kazakevich
011c111b86 [python] PY-84910 PY-79486: (WIP) Replace old SDK configuration process with new one if enabled.
When registry key is enabled, we replace all other SDK configurations (done by inspection and open processors) with a new one.

We also have an action to start this process

GitOrigin-RevId: 425ae78b769c5b5d40974cee9f19227410f63d45
2025-10-17 18:12:21 +00:00
Ilya.Kazakevich
13f1e3ccaf [python] PY-79486, PY-84609, PY-84572: Fix pyproject.toml-based opener.
1. Obey registry key.
2. Use `readAction` to prevent race when file chaned from another thread.
3. Extract action title to the i18n


(cherry picked from commit eb9ca0841c13de06fb636d1e14f34d4a1b72b598)

GitOrigin-RevId: 8ccfd060f45e4da4f12492c0e3f9fbbf5f6c0ff4
2025-10-17 13:05:01 +00:00
Vladimir Lagunov
d7e0b918d7 Revert "Python Env Tests: support python.exe from Windows Apps in PYTHON_FOR_TESTS"
This reverts commit dc3c04ab43749a1c02285ccdc4deab01f49b13c1.


(cherry picked from commit 93aaf56d801631313443cf9f04b58f6da1cd964e)

IJ-CR-178048

GitOrigin-RevId: f44adec30cb46f26f8717a9bb4b8174766e8fea0
2025-10-17 10:18:34 +00:00
Alexey Katsman
fd7ad7fcd7 [python] PY-82518 Support GraalPy python version
(cherry picked from commit 3311ca83f0875a77c0fd370d5d66afc66f7393ca)

IJ-MR-178647

GitOrigin-RevId: 1d3583e8524ccee70a90918dfa57e11bd51c9641
2025-10-16 15:53:59 +00:00
Vitaly Legchilkin
96be92568d [python] (PY-78749) support ssh upload
Merge-request: IJ-MR-178510
Merged-by: Vitaly Legchilkin <Vitaly.Legchilkin@jetbrains.com>

(cherry picked from commit 1085eccff5433c0902aac46d648c9f536241e5d5)

IJ-MR-178510

GitOrigin-RevId: bf18b88f5b6ea2129d05374df722699ab605b2e3
2025-10-15 20:11:52 +00:00
Vitaly Legchilkin
9b3dddd4a1 [python] (PY-78749) fix UI issues in ValidatedPathField
(cherry picked from commit df67f149b802c27bdacefcce2711794fab0d0180)

IJ-MR-178410

GitOrigin-RevId: 0ff76ff03b7a58db011ff3b869655ca305ac5dba
2025-10-15 18:30:27 +00:00
Vitaly Legchilkin
f0b20abc45 [python] (PY-84251) check for invalid executable
(cherry picked from commit 1f530f9b03058bdf9997f68aeeb34c06c3785bea)

IJ-MR-178452

GitOrigin-RevId: 0abb76aaf9998e937facb0fdd5109b0131f7f26e
2025-10-15 17:53:40 +00:00
Vitaly Legchilkin
d1fda599b8 [python] correct width of dialogs for conda and hatch (PY-74587)
* preferredHeight = 30 hack was removed because the python interpreter field was different from other fields.

* this line does the magic of correct width calculation
   -> preferredSize = JBUI.size(preferredSize)

* isEditable = true <- this line make correct background color for the interpreter combobox (dark as on other fields)

GitOrigin-RevId: d21817e8c4d9140ff67f55f508890acd5d4c1e99
2025-10-13 22:54:32 +00:00
Vitaly Legchilkin
8cd1721c45 [python] catch ServerRuntimeException from target SDKs
* Docker client throws it when docker agent is not available for example.

GitOrigin-RevId: 4e3a06467423ecbb0862beb5a7f8c692181855c9
2025-10-13 22:54:32 +00:00
Vitaly Legchilkin
5e2028d129 [python] (PY-78749) single dialog for all types of Python SDKs
+ old dialogs were removed

GitOrigin-RevId: 00ed85ba578c6419373d8605ed50954e7aa58f0a
2025-10-13 22:54:32 +00:00
Ilia Zakoulov
120fc27a41 PY-84747: Do not create welcome main.py file for the welcome project
GitOrigin-RevId: 561d1439ba9b126e239187aa18ff1f7485ed35bd
2025-10-13 21:56:06 +00:00
Timur Malanin
defbf5a1d0 PY-80882 Introduce support for "Run with" tools in Python run configurations. Introduce PyRunToolProvider and UvRunToolProvider to enable uv run for UV SDKs and update Python run configuration logic accordingly
GitOrigin-RevId: 0323bba73b2f9d3530280c5d03e749c664adb425
2025-10-13 19:57:17 +00:00
Pavel Karateev
ce96881257 PCQA-654 switch helpers tests to use uv.lock
(cherry picked from commit 9767528c49d8e098249ecb99eb5dcda5df7e534f)

IJ-MR-178328

GitOrigin-RevId: 2031288daefcff51969ef3f376d45828b86aebd1
2025-10-13 18:37:10 +00:00
Egor Eliseev
7a42214867 PY-84038 Merge debugpy configuration to our standard debug configuration
Add Attach to DAP enable by default
Add DAP implementation for PythonRunConfiguration
Add base part for test runners debugging via DAP
Add a Registry key for debugpy
Remove separate PythonDapRunConfiguration


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

GitOrigin-RevId: 6adabc9f7ac468f8a7eda74ba4a0663ead9ed91f
2025-10-13 18:16:32 +00:00
Ilia Zakoulov
1d36558e0d PY-84746: Do not notify about configured sdk for the welcome screen project
GitOrigin-RevId: 5c05a4eb1f55182bd3b705462297cc51c2e91af6
2025-10-13 16:37:04 +00:00
Nikita.Ashihmin
db7593a3e3 PY-82390 Jupyter Test: Add logging for package install
GitOrigin-RevId: 2b746587a38a1c41f54aaea6b283adeb96b6c0a7
2025-10-13 15:25:44 +00:00
Daniil Kalinin
e9b00e98e2 PY-82344 Mark PyCharm unified promotion actions as internal and update action descriptors
GitOrigin-RevId: a03070ce7671b8d597b5ca60e766c70381fe771c
2025-10-13 15:11:48 +00:00
Daniil Kalinin
0e6db87baf PY-82344 Fix icons class
GitOrigin-RevId: ec7b1d589de59f2fe239901b7ecb12234c47bede
2025-10-13 15:11:48 +00:00
Daniil Kalinin
97ce0f6cd7 PY-82344 Enable the new UI for Update Dialog for PyCharm
GitOrigin-RevId: 794ca7ea6ccba61e4a2ead522c672dcfcd592502
2025-10-13 15:11:48 +00:00
Daniil Kalinin
0bca830d9e PY-82344 Adjust update check conditions
GitOrigin-RevId: d2a5f2c10db15453bf9d7be898ea3a88dfd3605c
2025-10-13 15:11:47 +00:00
Daniil Kalinin
e0feb3b473 PY-82344 Remove update mock logic as the same logic is already presented in the platform
Remove outdated registry key for PyCharm promo testing

GitOrigin-RevId: fb22ce164ad88c54de6cd6938c6e91a9feea47ba
2025-10-13 15:11:47 +00:00
Daniil Kalinin
c25ab985dc PY-82344 Restrict PyCharm unified promotion updates to builds with baseline version >= 253
GitOrigin-RevId: a6f6f208c57cb25f2fcd4eb1657aba8d2db0d13f
2025-10-13 15:11:47 +00:00
Daniil Kalinin
7578c556a6 PY-82344 Track update ready restart notifications in PyCharm unified promotion
GitOrigin-RevId: 83d5f1b69ba960a5aef19206d0bc262f31b25a2e
2025-10-13 15:11:47 +00:00
Daniil Kalinin
742c256b45 PY-82344 Add FUS collector for PyCharm unified promotion tracking
GitOrigin-RevId: c0cc624a6af2f8d4acbcffa5d193c663ecab8d73
2025-10-13 15:11:47 +00:00
Daniil Kalinin
6880e7ff75 PY-82344 Add internal actions for PyCharm unified promotion testing
GitOrigin-RevId: ae1c6fb962c853a10ceb02c3af47449f4b19bcc2
2025-10-13 15:11:47 +00:00
Daniil Kalinin
0ffc947c7f PY-82344 Implement main promo components and project activities
GitOrigin-RevId: 5fec5e7f2b88743a97d10b7f0d27f9173c8424fd
2025-10-13 15:11:47 +00:00