452 Commits
Author SHA1 Message Date
ekaterina.itsenko 31a35cf636 [pycharm] PY-79461 PY-79531 Debugger: add progress bar
(cherry picked from commit 1008967b0dc07850d0d4f84018035915a9416e49)

GitOrigin-RevId: 6288eef0db6ab05f3fc89f6ae11525358b34ded9
2025-05-21 18:01:21 +00:00
David Lysenko d4c7f59265 [pycharm] PY-79031 Implement uv run configuration
GitOrigin-RevId: d3dcb83ef586a206c5deb862f0adcfb9c2031b1a
2025-05-19 16:56:50 +00:00
Vitaly Legchilkin c5ca662b4b [python] implement python package manager actions (PY-79451)
* PythonPackageManagerJobService.kt added to manage tool jobs
* Base PythonPackageManagerAction.kt was added to cover all python package manager actions
* Implementations for Poetry / Hatch / uv
* Poetry pyproject.toml watcher was removed (replaced with poetry actions)

(cherry picked from commit 0bbc5a7802826674140ca1c80be27b6cd7d0f59e)

GitOrigin-RevId: d3b6486ca9a24ecd7188e8c5308fb38aae5ed318
2025-05-08 12:48:27 +00:00
Ilya Kazakevich b3a87dc49e PY-78817: Compound cherry-pick for PyCharm and training API changes.
Reviewed by training API devs: IJ-MR-160099.


Merge-request: IJ-MR-160630
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: aa1b2848c8292dafb2f42a805f173ddd505430dc
2025-04-17 12:13:41 +00:00
Ilya.Kazakevich 6f93b92fa1 PY-77808: fix typo
(cherry picked from commit bdbff28de8bbb309024b46885a881081cd6280b8)

IJ-CR-160557

GitOrigin-RevId: 6f507d2c69071953fe7eead622c1d800b4804cbc
2025-04-16 12:14:55 +00:00
Aleksandr Sorotskii 06e89114d0 PY-80062: Cherry-pick from the master (all three commits)
fix displaying unavailable python run configurations from pro tier; start with django; PY-80062

Merge-request: IJ-MR-159510, IJ-MR-159657.,  IJ-CR-159849
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

PY-80062: ignore Django facet (WIP)

PY-80062: Disable "locked" configs in PyProf.

we might have two configs in prof otherwise

GitOrigin-RevId: c3b2d2c9cf2981b207408a1c5357d2331420c2bc
2025-04-09 22:50:23 +00:00
David Lysenko 6bee12baf1 [pycharm] PY-80191 Improve uv promo popup
(cherry picked from commit cd49f8e6ef9c58688a4fccd1c8fa4f3dbb9ddf9a)

IJ-MR-159556

GitOrigin-RevId: d28a9c5fc5de17fd3ced1643f23bead2e47d5e15
2025-04-07 14:22:34 +00:00
David Lysenko 6d2067458d [pycharm] PY-78615 Add .venv validation to uv env creator
(cherry picked from commit 13f8b89608a9a6530a916c30103d5c3ed183d810)

IJ-MR-158109

GitOrigin-RevId: 32c8c6269a171ba493d67e46b5cc2a39f3b8de43
2025-03-28 14:02:38 +00:00
Vladimir.Koshelev 9477aefd16 [pycharm] remove a Professional edition from the PyCharm product
(cherry picked from commit 8095dd3db50ec157adb3ca78373ed9c817532fc1)

IJ-CR-158096

GitOrigin-RevId: 016cc9f4b995523da85bd68fb0d1e71606ec8d66
2025-03-28 12:49:25 +00:00
David Lysenko 826cbd1587 [pycharm] PY-79134 Tweak uv promo popup colors
(cherry picked from commit 29d23defa7fb045c0342e0f103165aaf776209b0)

IJ-MR-158068

GitOrigin-RevId: a37193992a71de3458cfea32c5bab0a032b607fa
2025-03-20 16:03:23 +00:00
David Lysenko 21c2092087 [pycharm] PY-79134 Add promo popup for uv
(cherry picked from commit b4bc4e54a676d5fdef7fe8afa26a07e2eca68924)

IJ-MR-157420

GitOrigin-RevId: 61c6765dc9e10f4e08c7731b8900d8b9a766cd87
2025-03-17 12:33:14 +00:00
Vitaly Legchilkin 1be5b4840c [python][hatch] create a new project via hatch new (with structure) (PY-60410)
+ synchronized combobox update (might be a race)
+ add "loading..." caption for environments
+ make environments combobox independent:
  "create new hatch environment" should use its own property and not preselect the one from "select existing". Sometimes during the initialization race condition it was preselected by an existing environment with a red alert information box shown.

(cherry picked from commit 7680f5aa2f7f8625555231e45673ff8b5ce2ed87)

GitOrigin-RevId: 93ca754d2cefba08685f8ae7ef1ec475c78a3714
2025-03-13 19:20:41 +00:00
Vitaly Legchilkin 44da124ea0 [python] Support Hatch SDK (PY-60410)
* add new / select existing for local sdks
* create a new project with hatch sdk
* open hatch-managed project

(cherry picked from commit 86e970a39bc44cec34be7c82717806fc4d0009c4)

GitOrigin-RevId: 305e5363337e9120261f72e964e7d9e3c1a62c7c
2025-03-13 19:20:41 +00:00
Nikita.Ashihmin 2da302f70d PY-79367 PyPackage: Suggest install missed package from console
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>
(cherry picked from commit 4e8ab528aa3662c42d6c41b6c1f39082ba25e158)

GitOrigin-RevId: 7ca223666398c0174dc849b7c242c63dc284a7cf
2025-02-28 23:37:47 +00:00
David Lysenko fcec50d03d [pycharm] PY-78688 Fix UV package versions inspection
GitOrigin-RevId: 1cb6f658e15ff435c7831b436504681a3de644fd
2025-02-28 22:24:39 +00:00
Timur Malanin 841056dcf2 Simplified Package Specification Handling in specForPackage. Replaced direct repository handling in CompositePythonPackageManager with a new CompositePythonRepositoryManager class to unify repository operations. Streamlined package installation, update, and reload processes by removing redundant repository manager resets.
Removed conditional logic differentiating between package managers in `specForPackage`. Now, it defaults to always returning `PythonSimplePackageSpecification`.That allows to avoid errors with new package managers.


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

GitOrigin-RevId: 2f5df050838607d53d96bf7190676d0e315e727f
2025-02-19 18:38:49 +00:00
Ilya.Kazakevich 973f6f6ddc Python: fix UI for new python winget.
see:
https://jetbrains.slack.com/archives/G078ECKMM/p1739372507158069

GitOrigin-RevId: 9158e1a287e9ad16b3313e486556224a2205d911
2025-02-13 00:39:52 +00:00
David Lysenko d61687f0f6 [pycharm] PY-38965 Add debugger response timeout setting
GitOrigin-RevId: 9356bdfb3e7f72e9a6d93391989e68cfc0272e0f
2025-02-11 13:23:37 +00:00
Aleksandr Sorotskii 42b6334183 pycharm uv support survey; #PY-78501 Fixed
GitOrigin-RevId: 314259d784d9cbf471a661ee51aa337d312fd613
2025-02-06 13:40:10 +00:00
Ilya.Kazakevich 962b52d8a0 Python: installer to the separate module.
We need python services not to depend on community.impl

GitOrigin-RevId: e0259aba8d41bc02aa347e3d1d77697162fcc9ce
2025-01-29 00:07:48 +00:00
Daniil Kalinin 36622ecb7f [python] black - paraphrase the label regarding the fragments formatting, remove the semantic duplicate
GitOrigin-RevId: 99b27abf9c23154ae5fe36060985489f35ed3929
2025-01-24 12:51:52 +00:00
Ilya.Kazakevich ca2148932f PY-78649: Improve error handling.
There were three problems:

1.
There was `PyExecutionException` with an optional message which was intended to be displayed via dialog using a message as a title.
It breaks an exception contract (code that isn't aware of this particular class should still be able to fetch info, and a message is usually blank).

2.
Moreover, `ErrorSink` wasn't aware of it either and displayed it as a plain text.

3.
`PyExecutionException` didn't distinguish between "process can't be started" and "process died with error code != 0". Those are different cases.

This change:
1. Fixes `PyExecutionException` for 1 and 3.
2. Introduces API in `ErrorSink.kt` to display `PyExecutionException`

GitOrigin-RevId: a8d835afb086b23c73ced15f243d2b27b59dcf82
2025-01-22 23:07:52 +00:00
Daniil Kalinin 6b1edd02d4 PY-77985 Add a notification that warns about fragments' formatting
GitOrigin-RevId: 3f360474e29e20cbd10db106a76dad11744ef9a0
2025-01-21 17:38:36 +00:00
Daniil Kalinin c63d9f192a PY-77985 Black formatter: support --line-ranges option
GitOrigin-RevId: 83fad467d5120e2b8138196d5f2c52b3fc7e21a1
2025-01-21 17:38:36 +00:00
Aleksandr Sorotskii a4341fa730 more consistent naming for uv; PY-75983
GitOrigin-RevId: 111a9ffb7b7107d3fbdfe01df649a38be2b5b821
2025-01-10 10:07:58 +00:00
Egor.Eliseev 7f91ebad31 PY-77381 Unable to select an existing Poetry environment as a project interpreter
Add PoetryExistingEnvironmentSelector

GitOrigin-RevId: 4fc75a24669d8a2fc12b5ff963cc5715ebc6ab3a
2025-01-08 11:44:19 +00:00
Mikhail Golubev 8fcefcb14c PY-77456 Add a dedicated project tree node for bundled .pyi stubs
GitOrigin-RevId: e0504ba6a77ad29dfe900c721201333388910306
2025-01-06 17:58:30 +00:00
Aleksandr Sorotskii 260b4c3aba work around suspend/legacy api and threading isssues; #PY-77996 fixed
Merge-request: IJ-MR-151488
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: db9e012e187c62fbc53ddfa0c31603eb834058f9
2024-12-12 19:09:46 +00:00
Roman Shevchenko 4be2c65cc2 [project] using extension-based filters with FileSaverDescriptor (IJPL-150176)
GitOrigin-RevId: dadcca85adaaea04798079e03fc239689d1f7e26
2024-12-05 13:10:19 +00:00
Roman Shevchenko 566798a22d Cleanup (suppressions; formatting)
GitOrigin-RevId: 6f8194053768d455aed91d858a346fc2ea22ec28
2024-12-03 17:23:54 +00:00
Roman Shevchenko 0172ffc393 [project] replacing FileChooserDescriptor#isFileVisible with extension-based filters (IJPL-150176)
GitOrigin-RevId: a57a425773b04b22cfceba4e12b18626d269a523
2024-12-03 17:23:54 +00:00
Ilya.Kazakevich 650ae28b8a PY-77574: Do not allow hyphen in Django Project and Application names.
`ProjectPathProvider.bindProjectName` is improved and support list of denied chars (as regex) and covered with test.

Regex used both: for escaping and for substitution.

GitOrigin-RevId: 6d4e4643a66358c485e4849ece347af8d1fa32aa
2024-11-24 19:51:36 +00:00
Daniil Kalinin 770ffc389a PY-76640 change wording for promotion message
GitOrigin-RevId: 5d1b976da6c4e10dbb35afca12a386be956abb5f
2024-11-19 09:26:14 +00:00
Aleksandr Sorotskii 9b76b13e69 basic support for uv env & package manager; PY-75983
GitOrigin-RevId: 2597e4de17e167d8a0b0038190b5127a9dc4b155
2024-11-15 17:27:12 +00:00
Egor Eliseev 2b707f28c7 PY-52265 Poetry in-project environment
Add the new setting: create poetry env in the project.


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

GitOrigin-RevId: ed85efe339518cdf6949752be286172113931c22
2024-11-15 14:04:44 +00:00
Egor Eliseev f79c7ad550 PY-77160 Poetry/Pipenv modules refactoring
Split pipenv into separate files.
Rewrite functions/methods using coroutines.
Add `internal` or `@Internal`.


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

GitOrigin-RevId: b398d04bfa358ce97bf1d30d59b2113548e7983c
2024-11-07 16:15:06 +00:00
Aleksei Kniazev 88df1335c4 [python] in-product survey about user's job for pycharm (PY-74269)
(cherry picked from commit 5ce25d3c418b54649e6a52a892bc84b837251e76)

IJ-MR-148062

GitOrigin-RevId: 0f3602d64459a2632bff07243e7e166ec59e9665
2024-10-31 17:23:14 +00:00
Egor Eliseev 4f6f7ad4c8 PY-65295 Poetry installation
Fix poetry executable detection for the "Add new local interpreter" panel.
There was a problem in `ModalityState`, which prevented updating `state.poetryExecutable` from EDT.


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

GitOrigin-RevId: 43a807c20f8572bcf570121792269d6ee0c67acd
2024-10-23 11:40:33 +00:00
Ilya.Kazakevich 6a89cc4d73 Python SDK Widget: Remove duplicated string
GitOrigin-RevId: ef613ca7a845560cd84adb6fb35d0686098e6eab
2024-10-21 23:38:43 +00:00
Tatiana Ber d63c9d73de Fix typo in UI text
GitOrigin-RevId: 3dda1f99c3d4bda3686c78534b893504ef1cb73a
2024-10-18 18:15:53 +00:00
Nikita Pavlenko ff567970a9 [PyCharm] Jupyter (fix): Fixed suggestion to install Jupyter to view rich tables, added restart IDE. #PY-75914 Fixed
GitOrigin-RevId: 60ea3742324774979f6db883b0d2b2d63db3227d
2024-10-14 17:46:18 +00:00
Ilya.Kazakevich ae6bda01df Python: Make createVirtualenv suspend, process error and cover with tests.
We now fail silently in case of any error. This commit fixes it.

GitOrigin-RevId: 76977843a892dd450d8292378a7cefb522cb78c1
2024-10-04 01:08:48 +00:00
Nikita Pavlenko 382b256f33 [PyCharm] PY-75914 Jupyter (feat): From scientific.py.tables also removed dependency to intellij.notebooks.visualization. Added suggestion to install Jupyter to view rich tables.
GitOrigin-RevId: 705a0f5f7883517da51da0f0c532eb90fd50e5ac
2024-10-01 13:04:25 +00:00
Ilya.Kazakevich d1446af5c6 Duplicate entry removed
GitOrigin-RevId: d2c25a22a1d3d681fe738962a5c2928755525536
2024-09-30 23:35:22 +00:00
Roman Shevchenko 9b43719207 [project] reviewing use of file-based filters in choosers (IJPL-150176)
... and amending/replacing them with extension-based filters where possible

GitOrigin-RevId: 422e4f42ac96c295a707eae76ef25686753fc6ce
2024-09-30 20:14:03 +00:00
Nikita.Ashihmin 7283943f42 PY-75725 Packages(fix): simultaneous upgrading of multiple packages isn't working
GitOrigin-RevId: 503a98b90762ba21f1e5a628e9c929ee32eb1a29
2024-09-28 15:35:03 +00:00
Andrey Lisin 4843e1d6e4 PY-73432 Introduce checkbox option for enabling debugger server mode
GitOrigin-RevId: 7a9bc66ab59b2a209c15d3313256f2ebf61e2193
2024-09-26 13:47:19 +00:00
Andrey Lisin 95e95ad914 PY-21325 Add option to configure debugger port
GitOrigin-RevId: 312da6bbb2aafadc9600c0d5cc36a07052d52886
2024-09-25 20:36:51 +00:00
Ilya.Kazakevich 8457d2ae09 Python NPW: Heavy refactoring:
1. lots of funs now `suspend`
2. errors reported to `ErrorSink`
3. validation improved (yet, still not perfect)
4. tests added

GitOrigin-RevId: 5cbf674a70ad0e0b40180dd358398bf498d6f76d
2024-09-12 05:36:51 +00:00
Ilya Kazakevich 7bd141a993 PyCharm: Rewrite NPW API: See com.jetbrains.python.newProjectWizard
This package (aka PyV3) fixes several issues, including
1. Lots of `DirectoryProjectGenerator` misuses: We now create UI and settings with `ProjectGeneratorPeer`: no more manuals casts in callback
2. Decouples project generation from UI: Settings aren't aware of UI but generate a project instead. Settings are mapped to the UI using Kotlin DSL UI
3. Kotlin DSL UI panel enables validation
4. `PySdkCreator` (an interface implemented by all "v2" SDK panels) now accepts `Module`, so we can provide it Poetry

The whole machinery of `PythonGenerateProjectCallback` (a pack of manual casts only mother could love) is completely deprecated and will be removed soon.

Lots of small changes towards `suspend` functions, Kotlin DSL UI and `Flow` decrease the technical debt.


Merge-request: IJ-MR-144503
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: 21963e843b0ae67c71a6fc5ea1229cb0f57915a9
2024-09-10 19:50:12 +00:00