Commit Graph

526 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
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
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
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
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
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
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
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
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
bogdan.kirilenko
0105c053bb [PyCharm] PY-78165 converted PyCellLineMarkerProvider to kotlin, hopefully fix for leaks in this class
GitOrigin-RevId: 95248547f076f299080215a56b6585c3a7b78899
2025-10-02 16:18:34 +00:00
Tatiana Ber
10e16c0236 PY-84168 UI Texts: Fix typos and grammar mistakes (September)
GitOrigin-RevId: d69dd2abed8cec96e25c3714f9fe0cfac6647d18
2025-09-30 15:46:24 +00:00
Vitaly Legchilkin
fe3004fa2b [python] i18n of constants
GitOrigin-RevId: e88347583e21a47802c8b7e5e866e24acfa3d936
2025-09-25 14:27:19 +00:00
Vitaly Legchilkin
0999615909 [python] add TraceContext as a trace tracker for coroutine inner calls
* will be used by the Process Tool Window to show the context of the executed command

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

GitOrigin-RevId: 70d41845943b5c19b0647ef4711b16f48c53b28c
2025-09-24 18:56:23 +00:00
Nikita.Ashihmin
b804677f62 PY-83138 requirements.txt: To update icon and wording for floating toolbar
GitOrigin-RevId: a4ee64089960c93a45c7f758ddb34fb2047205b1
2025-09-12 09:51:32 +00:00
Nikita Pavlenko
ce3e5aada4 [PyCharm] SingleDistributive (feat): Reworked Django and JS promo pages in NPW in PyCharm Community and Standard. #PY-78995 Ready For Merge
1. In Community on promo buttons and text titles now have "Pro" suffix
2. In Standard, when a user has no license, we started to show promo pages.
3. Promo pages in Standard are looking closer to sketches.

GitOrigin-RevId: f95c8ab0dd83c86b3068e29a29353b0b9f1b87d7
2025-09-10 11:40:56 +00:00
Vladimir.Koshelev
d1c9862263 [PY-83677] remove notification about enabling compatibility inspection
GitOrigin-RevId: 789b9b73bac6761cd3e267d3a186f336f1d1ff46
2025-08-26 16:21:36 +00:00
Vitaly Legchilkin
56fbdf6fee [python][poetry] don't create pyproject.toml if it already exists (PY-76274)
+ project.basePath -> module.basePath migrations

GitOrigin-RevId: 8461d6d273f7482aca180abe63d958e551c3c7dd
2025-08-19 15:49:34 +00:00
Timur Malanin
716ad92ab6 PY-82801 Introduce support for error display and quick fixes in Python Packaging Toolwindow
- Integrated error nodes into the Packaging Toolwindow UI and implemented rendering strategies.
- Introduced `SyncLockFileQuickFix` interface and UV-specific synchronization quick fix.

GitOrigin-RevId: e47ae06a5772a9fd2f3a176805483fe32f2110c1
2025-08-18 16:01:59 +00:00
Nikita Ashihmin
82eace9398 PY-83179 PySDK: Support read only
Merge-request: IJ-MR-171680
Merged-by: Nikita Ashihmin <Nikita.Ashihmin@jetbrains.com>

GitOrigin-RevId: 0518786baf820fc50f8f7e8346157e98380f2f36
2025-08-07 23:38:52 +00:00
David Lysenko
486881b398 [pycharm] PY-79132 Address feedback
GitOrigin-RevId: fc4fe9431d163a015053e36fff5912c06f5e90a0
2025-08-06 18:26:50 +00:00
Marcus Mews
8637e79bf7 PY-76572 Extract method with typehints
- refactor platform expand-all folding action
- introduce platform folding attribute 'keepExpandedOnFirstCollapseAll'
- use 'keepExpandedOnFirstCollapseAll' for Python type annotation regions
- add tests for new PyCharm two-step collapse action
- add tests for legacy PyCharm two-step expand action

GitOrigin-RevId: ad0931b1b64d2ce6dfee52086193f17234fa537e
2025-08-06 14:39:32 +00:00
Nikita.Ashihmin
f73b3c2e2e PY-83031 Packaging toolwindow: Do not show all packages if not filtered
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>

GitOrigin-RevId: ff233c2f781985804c817665224e18101ef02bdf
2025-08-02 11:41:03 +00:00
Nikita Ashihmin
78fc24c815 PY-82919 PyPackages: Refactor Stub inspection
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>


Merge-request: IJ-MR-170639
Merged-by: Nikita Ashihmin <Nikita.Ashihmin@jetbrains.com>

GitOrigin-RevId: 9697165e74ea2e1c897de1f72312043d003796d5
2025-07-30 14:26:37 +00:00
Anton Efimchuk
054fec554e PY-78368 Fix package install problem
GitOrigin-RevId: a2855bb9a8d7eab48efc2f4d23d49b8a1d794c5d
2025-07-30 11:18:44 +00:00
Marcus Mews
93db5ef469 PY-35287 Extract method with typehints
- customize extract method refactoring for Python using prefix Py
- option to enable/disable type annotations
- persist value of checkbox.isSelected
- run all extract method tests using types
- add specific typed test
- adjust api-dump.txt since some members of AbstractExtractMethodDialog were raised from private to protected

GitOrigin-RevId: d1b12a20efe1c56df501a2d0beccb2108413edc7
2025-07-28 22:31:41 +00:00
Nikita.Ashihmin
94a946682b PY-82838 Pipenv: rewrite to PythonPackageManager
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>

GitOrigin-RevId: 213a8c34d554c443fd77a6f0e60c75ed97f844eb
2025-07-23 23:08:33 +00:00
Ilya.Kazakevich
151a77b26b PY-78995: Fix text and link after the demo
GitOrigin-RevId: ce2c08ed38cbb733408bd2ff797997036ec4c2f7
2025-07-23 15:31:48 +00:00
Nikita.Ashihmin
c35bacc607 PY-82800 Requirements: Add floting toolbar for requirements.txt for venv interpreters
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>

GitOrigin-RevId: b9fb948d7f12fce1f60e0990e47657f9b17e94f6
2025-07-22 19:05:39 +00:00
Pavel Karateev
5f96f297be PY-77535 use capitalized Python in UI
(cherry picked from commit 2d9b247b5efc72a1e93e0e204cbf59f3fb75afa1)

IJ-MR-169089

GitOrigin-RevId: ce13c872df87b46252992ed916642ec1c5aa447d
2025-07-14 20:24:29 +00:00
David Lysenko
db2e02861c [pycharm] PY-81856 Add colons to uv run configuration form
GitOrigin-RevId: 2997dd278b34c1cc2cfaa65c79777a2f659743ce
2025-07-10 15:51:22 +00:00
Mikhail Golubev
82604f9dae [python][i18n] Move messages in RenamePyElementProcessor.findExistingNameConflicts to a bundle
GitOrigin-RevId: 744c3c814264cc270848debefa1f06c123abaaad
2025-07-10 13:01:27 +00:00
Ilya.Kazakevich
1ceecdf002 PY-78995: (WIP): Display banner for locked run configurations in free mode
GitOrigin-RevId: 63ad1943e856fa2e964839b908e639c0d58002f8
2025-07-01 14:38:05 +00:00
Konstantin Nisht
55adc62299 [i18n] Fix hardcoded string literals
GitOrigin-RevId: de932bb8509ba9531fae90f8d7753303e5f8aef0
2025-06-30 21:19:18 +00:00
Aleksandr Sorotskii
82ae13556e cleanup; unbundle vagrant plugin #PY-80258 Ready for Merge
GitOrigin-RevId: 43f8dda8114f1d78e43f54d11d43b072fd5e7bda
2025-06-30 16:07:06 +00:00
Vitaly Legchilkin
e255e8d0d0 [python] i18n strings (remove hardcoded literals)
GitOrigin-RevId: 14ad16249d0b030f4d3b88fc6b86dc7146dc3c72
2025-06-25 12:51:22 +00:00
Nikita Ashihmin
7a7c9b3f2d PY-82191 PySDK: Refactor new priject creation to support progress
GitOrigin-RevId: 6af82359528b086811c958577f296669eb578353
2025-06-23 15:41:20 +00:00
Natalia.Murycheva
903405fd87 [PyCharm] PY-81850 Python Settings follow-up improvements #PY-81850 Ready for Merge
* Added a description for the "Python" group of Settings
* Added a description for the "Type Renderers" settings page
* Added a description for the "External Documentation" settings page
* Added a helpId for the "Type Renderers" settings page

GitOrigin-RevId: 29e93e8dd7fc7f54adea825b60cf8d95540fc6b0
2025-06-20 13:07:53 +00:00
Nikita Ashihmin
2c3a5a9f7a PY-82119 Packaging: Rewrite Conda to use EEL
GitOrigin-RevId: 8329d24191bdc1411775dc8e58a65172a2804788
2025-06-19 17:30:40 +00:00
Mikhail Golubev
8f563ba889 PY-79488 PY-81774 Lowercase "uv" in user-visible messages about the project model
GitOrigin-RevId: 8499393523ade719ffdf0e91c4c0ed0ef48b35ea
2025-06-18 11:23:24 +00:00
Nikita Ashihmin
05e32e764d PY-19974 Packages: Add conda envinroment.yml support, refactor sync methods
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>


Merge-request: IJ-MR-164824
Merged-by: Nikita Ashihmin <Nikita.Ashihmin@jetbrains.com>

GitOrigin-RevId: 85cbf7b873742ded72029af1f4ff3e34af9bae22
2025-06-17 00:18:33 +00:00
Timur Malanin
4cc34127cf PY-80189 Replace PyPackagesTable with tree-based PyPackagesTreeTable.
Migrated to a tree-based UI for managing Python packages, replacing the previous table-based implementation. This change introduces `PyPackagesTreeTable`, consolidating UI functionality and improving package management UX. Removed redundant table-based classes and refactored associated functionality.


Merge-request: IJ-MR-164644
Merged-by: Timur Malanin <timur.malanin@jetbrains.com>

GitOrigin-RevId: 6e99398f0aa970806428221c194d09185554d2f5
2025-06-16 13:38:02 +00:00
Ilya.Kazakevich
cd9fd36b44 PY-81939: Do not show the full log on exec error dialog.
`PyError.message` contains the full log: all `orReturn("some text")` messages.

While they help user sometimes, some of them duplicate otuput and mustn't be displayed two times.

GitOrigin-RevId: 9a726cfcc8cb6b23825adc5d7dd505e1b8afd9c2
2025-06-14 03:52:50 +00:00
Petr
748017efe4 PY-81471 Move PythonColorsPage to python.syntax
GitOrigin-RevId: 402caeea59f52bde6cb93c6c9964efc770516bd9
2025-06-13 20:21:11 +00:00
Nikita Ashihmin
1480554414 PY-81864 PyPackages: Move saved requirements.txt path from module to sdk
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>


Merge-request: IJ-MR-165494
Merged-by: Nikita Ashihmin <Nikita.Ashihmin@jetbrains.com>

GitOrigin-RevId: fc852bf8db5ebda9a138c2b7cc2f096143adce7b
2025-06-13 15:38:02 +00:00
Natalia.Murycheva
598478e28e [PyCharm] PY-81850 Follow up on the "Python" Settings pages improvements: settings pages re-ordering
GitOrigin-RevId: 8dcd8f5b62b61f4409902abaff323bf6236fcfb3
2025-06-11 23:06:31 +00:00
Alexander.Kass
ad81a4e009 ds: drop non-intractiv consoles
GitOrigin-RevId: 21569629f8a81dc12ccc47f02ae354a4dfb10bf3
2025-06-11 18:31:22 +00:00
Pavel Karateev
1ce9894d63 PY-81774 use lowercase uv for actions
(cherry picked from commit b7c60b8aba9041c98a9656e3a822f8fc8a468b71)

IJ-MR-165278

GitOrigin-RevId: 695441592759bf1f8f8186c7795088c605b64f9b
2025-06-11 17:02:33 +00:00
Pavel Karateev
6331021c68 PY-81774 use lowercase uv for lock file actions
(cherry picked from commit 5f96e07e643863594e1b27d9bd0d5e8be88dd988)

IJ-MR-165278

GitOrigin-RevId: 292ee4faf7376d3925081b4f5ba6f1eb943693b2
2025-06-11 17:02:33 +00:00
Ilya.Kazakevich
105554c91d Python: introduce getOr("message"){} API to add errors on an appropriate level.
See `getOr` extension doc.

GitOrigin-RevId: 859af221e99f03b99ee2f82e829e83e0f00a9e6d
2025-06-07 22:05:56 +00:00