53 Commits

Author SHA1 Message Date
Vitaly Legchilkin
f038c271b6 PY-85756 update sdks.json registry - bump python/conda versions
(cherry picked from commit 7699f7ed417a4c73bf9b18093c31c8950f9a1192)

IJ-MR-183564

GitOrigin-RevId: 7edbe174f2ff067761799baf1ed60bcf509f2eff
2025-11-25 18:32:55 +00:00
Ilya.Kazakevich
a1b92b2591 [python] PY-79486: (WIP) split pyproject.toml tools into backend/common.
Each tool (uv, poetry) now has `common` and `backend` part. `common` has icons because we need them both on the front and on the back.

We might need to create `front` module also if we wouldn't be able to use icons in compose.

GitOrigin-RevId: 560b5aa67e4e747a1653ad6e4f780301a3fae289
2025-11-24 16:35:26 +00:00
Alexey Katsman
27838bc2da PY-84953: Unify tool detection approach
Our tool detection approach varies a lot. We have different logic for
uv, poetry and other tools. Also, uv detection is not suspendable and
doesn't have any explicit thread requirements, even though it performs
I/O operations.

This change makes such detection unified and suspendable (where
possible) and moves it to BGT.

GitOrigin-RevId: 18e9c4cc085c8d373c82ad2874033b53711f09c6
2025-11-03 16:25:22 +00:00
Vitaly Legchilkin
84934e9e9e [python] (IJPL-205889) (BAZEL-2462) don't call getOrCreateAdditionalData for non-python sdks
+ add requirePythonSdk() verification for the Sdk extension functions, these methods are not designed to be called for non-python sdks and now will throw IllegalArgumentException.

also corrects dependency tree:
+ move PythonSdkUtil to the python.sdk module, remove dependency on psi.impl
+ create PySkeletonUtil for skeleton utils and leave it in the psi.impl

[python] (IJPL-205889) (BAZEL-2462) don't call getOrCreateAdditionalData for non-python sdks

+ add requirePythonSdk() verification for the Sdk extension functions, these methods are not designed to be called for non-python sdks and now will throw IllegalArgumentException

also corrects dependency tree:
+ move PythonSdkUtil to the python.sdk module, remove dependency on psi.impl
+ create PySkeletonUtil for skeleton utils and leave it in the psi.impl

GitOrigin-RevId: 20d958c5e15cc4e05545b2e61b126b5e015696ed
2025-10-10 18:17:28 +00:00
Nikolay Chashnikov
3a8344fcad [plugin model] use 'public' visibility for content modules which classes are used from external plugins (IJPL-207059)
153 modules which contain classes used from external plugins from the Marketplace are marked as public. This is needed to ensure that it'll be possible to use that API after converting code from these external plugins to content modules.

GitOrigin-RevId: dc48e8970041fddd3bf50d280711e95ce9e9ad9b
2025-10-08 18:39:06 +00:00
Vladimir.Koshelev
ba393efaa7 [python] PY-84398 get rid of embedded loading rules in PythonCore plugin, fix related issues
GitOrigin-RevId: 54f4bb333e0ca06a002a86c75f0bbc474863253e
2025-09-26 15:15:29 +00:00
Nikita.Ashihmin
248b69f8cc PY-78749 Packages: Remove not used PyPackageManagers
GitOrigin-RevId: 64afac916b5e99bdb6eecfbd0714dea88f5ad626
2025-08-10 12:31:15 +00:00
Pavel Karateev
cf43cbc747 PY-82014 Jun 16, 2025: Update Python versions available for installation in PyCharm
- replace 3.13.0 with 3.13.5
- replace 3.12.7 with 3.12.10
- remove "source only" ...
  - 3.11.10
  - 3.10.15
  - 3.9.20
  - 3.8.20
- add Miniconda ...
  - 25.3.1-1
  - 25.1.1-2
  - 25.1.1-1
  - 25.1.1-0
  - 24.11.1-0


(cherry picked from commit 4caa63b3eae9926a400500954116df151762e06f)

IJ-MR-166035

GitOrigin-RevId: 9f47c4bb3af2c99a62a08c383354c15452bf6597
2025-07-10 12:03:44 +00:00
Ilya.Kazakevich
2e14347844 Python: extract python-specific extensions from exec service to simplify API and make it extendable for intepreters.
Use `ExecService` `api.kt` to exec any binary and extensions from `execService.python/api.kt` for python-specific things (i.e helpers)

GitOrigin-RevId: bb217798a9d1ee886c4b12220ec1f66a5ef08336
2025-06-07 22:05:56 +00:00
Ilya.Kazakevich
80f248d842 Python: Move helpers locator out of PSI module
GitOrigin-RevId: 55fb4b41c56fdd41b6d9523cd7a148c002ffb8be
2025-06-07 21:59:42 +00:00
Vladimir.Koshelev
67594cdaad [pycharm] finish community migration to v2
# Conflicts:
#	community/python/pluginCore/resources/META-INF/plugin.xml

GitOrigin-RevId: e4d6969fd15a3fddc4d6a03491fb9f9634285edf
2025-04-30 10:08:56 +00:00
Ilya.Kazakevich
1aec794bc8 Python: refactor validatePythonAndGetVersion to become eel-compatible
GitOrigin-RevId: 8d6e71dcd5694f98a7763204c8848d175c8ea78b
2024-12-23 23:08:06 +00:00
Ilya.Kazakevich
c845e649dd Python: refactor validatePythonAndGetVersion to return error
This error can be processed by a caller which is better than plain null.

GitOrigin-RevId: c68e28631faf84d735770a430d6866a931b2dbc7
2024-12-23 19:34:32 +00:00
Ilya.Kazakevich
1ef66e99af [Python]: Drop PyPy
GitOrigin-RevId: 41608a5a23f6aa5503fdeb8b37b637c7cb96896c
2024-11-27 16:10:15 +00:00
Pavel Karateev
61e1321dc2 PY-76948 Update Python versions installable through PyCharm
+3.13.0
3.12.6 -> 3.12.7
+Anaconda 2024.10-1
+Minicoda 24.9.2-0


(cherry picked from commit 798add3774cda74c5ff669c0344ce1b6588a0620)

IJ-MR-147644

GitOrigin-RevId: 52d0e4c885600faaaaa83b30428a4d0c3f7081d9
2024-11-13 11:36:14 +00:00
Yuriy Artamonov
7810bf8adb [python] IJPL-158521 Actions: fix ellipsis in messages for actions
GitOrigin-RevId: c896f17db89f934ae64c24b920ed3684b605d168
2024-09-15 14:50:09 +00:00
Pavel Karateev
62a8794fdb PY-75865 Update Python version on Sep 12, 2024
* 3.12.2 -> 3.12.6
* +3.11.10
* 3.10.14 -> 3.10.15
* 3.9.19 -> 3.9.20
* 3.8.19 -> 3.8.20
* +Miniconda 24.7.1-0
* +Anaconda 2024.06-1
* +Miniconda 24.5.0-0
* +Miniconda 24.4.0-0


(cherry picked from commit 0afd9c5403c37dbe4376e11d01ecb368941adae6)

IJ-MR-144680

GitOrigin-RevId: aeb897013f2ef1c5f753f99210cd186b2344ce95
2024-09-13 11:19:14 +00:00
Vitaly Legchilkin
9a56930105 Use BinaryInstaller for CPython, update sdks registry, remove os field from FUS (PY-71414)
* os field is a reserved field, it is an autofilled field, no need to add it manually.

GitOrigin-RevId: 9506335e17c6e049adce9ebf17352c609739022a
2024-05-11 17:40:47 +00:00
Vitaly Legchilkin
a3a2a5db18 Add Conda (Miniconda/Anaconda) install manager (PY-63084)
Make project optional (PY-63084)

Fix BinaryInstallerUsagesCollector(PY-63084)

* align eventIds according to naming convention
* fix version regex (allow only digits dots and dashes)

Add Conda (Miniconda/Anaconda) install manager (PY-63084)

* refactor python installers
* add conda updater
* create conda sdks registry


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

GitOrigin-RevId: 1e73d1bd32fced94901c4c9a2c1260fca8aca9e2
2024-03-19 00:50:15 +00:00
Ilya.Kazakevich
b533e29ce0 [python] get rid of classes registered in wrong modules
You must register class in the same v2 module class sits

GitOrigin-RevId: c7fcccd27c2fcaa3d9391d1173f61ad43fe2b076
2024-01-17 04:59:01 +00:00
Ilya.Kazakevich
b599287e32 [python] Refactor icons layout in community
Icons removed from SDK package (no need to have a separate class for it), ultimate icons moved out of community module.

There are only 3 icon packages in community:
* `PythonParserIcons`
* `PythonPsiApiIcons`
* `PythonIcons` (aka `intellij.python.community.impl`)

Latter two have `.json` mapper to replace old icons with new one for New UI which is included into corresponding `.xml` file.

GitOrigin-RevId: 0438ad4485b5a82a89c81ec63ae6e575d5bb52de
2024-01-12 15:53:48 +00:00
Ilya.Kazakevich
826e478335 [python] Move icons in SDK in the right package
GitOrigin-RevId: fcd5331038928a183665a4869c7ea4e34502f1fb
2024-01-12 10:53:46 +00:00
Vitaly Legchilkin
5dc633a1ab Remove 3.6 & 3.7 python versions from install dialog (PY-65338)
+ bump CPython 3.12.0 -> 3.12.1

GitOrigin-RevId: fc29d8f5b49585a93e819acd1926eb33c141c9b0
2024-01-05 11:32:22 +00:00
Vitaly Legchilkin
3e1de3259e Add Python Sdks update script (PY-64546)
also bump sdks.json to latest

(cherry picked from commit 14cc088c20a8b77ee49007d8f7b982920e40c6e6)

IJ-MR-121650

GitOrigin-RevId: db7c0d11a61e239e2f47bd2f1a8dd1156f3712b1
2023-12-07 16:53:33 +00:00
Vitaly Legchilkin
95b312f00e Align python download and install progress text/details with a guideline (PY-64420)
Previous texts were uninformative and didn't comply with our guidelines.

GitOrigin-RevId: ec9f3b6456e504a806c94ff9427f147085be668d
2023-12-04 17:10:54 +00:00
Vitaly Legchilkin
34f3828f5a Redesign of download python sdk (PY-63083)
+ Installer for pkg (MacOS packages)
+ Installer for exe (Windows executable)
- get rid of XCodeSelect installer (command line tools)
* Split PySdkToInstall

(cherry picked from commit c1a0becc70c6e421c48dd03bb80f31b8b7509dfe)

IJ-MR-120874

GitOrigin-RevId: 4fdcaa18c41bcdd0c004fed76de3054683b9ffbd
2023-11-28 09:58:50 +00:00
Alexander Koshevoy
d8a7e9ae1c Remove unused methods of PyCondaPackageService after removing PyCondaManagementService class
GitOrigin-RevId: aa5341421c5a3121a5aecf1d2abd46114153a498
2023-10-23 00:47:09 +00:00
Ilya.Kazakevich
2bb2ea60fc Various validation refactorings
`readableFs` is redundant and unstable. Remove it: we will migrate to ijent anyway.
All validations are in `PathValidator.kt` now. They are used by `ManualPathEntryDialog` and sdk validation.
Lots of thread annotations added to prevent calling validation code from EDT.

In general, this change makes path validation ready for ijent: validation based on nio with slow IO access.

Validation is removed from old, non-target classes

(cherry picked from commit 185b4f7fe8cbd5d7a37dad609c8a4cb8163d6eed)

IJ-MR-112281

GitOrigin-RevId: 12c4a4f3d459d0523ef6694a9e4bb2db7a1582b7
2023-08-04 13:42:38 +00:00
Anton Bragin
ab8a0d3508 PY-57410 Use lowercase for conda
GitOrigin-RevId: c049199904a6d48c311a940df5d1f92f6d69586b
2023-03-10 13:45:21 +00:00
Ilya.Kazakevich
a4dcfdd16e PY-35978: Improve Conda support and refactor other parts to support it.
Each sdk has additional data with flavor and flavor-specific data. For target-based SDK there is also target information. ``PySdkExt`` has extension method that uses this data to execute code on some SDK. For Conda we store path to conda binary and env name.

GitOrigin-RevId: c63b57aac9b5a267b3a6710902670bfe7d10c722
2022-10-12 17:55:25 +00:00
Alexander Koshevoy
a29837f328 PY-55047 When "python.use.targets.api" flag disabled display target-based interpreters as invalid and disable them
If "python.use.targets.api" registry flag is disabled:
 - display target-based interpreters as invalid;
 - show an error on an attempts to run or debug Python run configuration with an assigned target-based Python interpreter;
 - show an error on trying to open Python console with a target-based Python interpreter;
 - show a warning on an attempt to generate skeletons for target-based interpreters;
 - show an empty list of packages for target-based Python interpreters.

GitOrigin-RevId: 97ee828ab289e5104f0539c9ab49e6fab99fe56b
2022-08-02 11:17:33 +00:00
Andrey Vlasovskikh
9cd033354e [python] i18n-ize an error message in a skeleton generator
GitOrigin-RevId: 54d6de5102b200a2341f1b454b8ca63e08d3bb8f
2021-11-17 20:26:58 +00:00
Lada Gagina
f9362a8d03 PY-51198 Fixes in redesigned package installation failure window
- fix absence of package name if installation failed via file-level warning on requirements file
- get rid of unnecessary columns
- make the dialog resizable
- add forgotten dot to the troubleshooting tip#1
- add paddings to output and command text areas
- move hardcoded strings to bundles

IJ-CR-16145

GitOrigin-RevId: 6bafccd46dc6eb01db31d33d8979cca9c2b99c20
2021-11-17 12:54:36 +00:00
Lada Gagina
b8a6b65f89 Fix the message for failed virtualenv creation
GitOrigin-RevId: 2a566d48619aced61da4c18b8e45c86e4cdb9c15
2021-11-03 12:40:50 +00:00
Alexander Koshevoy
3647ee3e84 Remove unused message form bundle
The usage removed in da24a7bef8e812d8f5fefeebed7852bf3bb726c5.

GitOrigin-RevId: 88464549365d82ac9f397272b096c68a93a29690
2021-10-24 15:01:11 +00:00
Lada Gagina
18d0c28655 PY-50160 Implement the redesigned dialog for package installation failures
IJ-CR-13328

GitOrigin-RevId: 2cfa6c468411391772639441f0d2aeda4fddc435
2021-10-19 15:30:24 +00:00
Mikhail Golubev
0a9eb7e19e i18n: Remove unused properties
GitOrigin-RevId: fbfac80b55e8e0bb78bde54253c8100f951ac9f9
2021-07-07 11:44:14 +00:00
Lada Gagina
9504153383 PY-42196 PY-41238 Switch to virtualenv library for virtual environment creation
It speeds up virtual environment creation (PY-41172), although from now on the latest releases of packaging tools will be installed in the created virtual environment after the 28 days period that should guarantee we are not pulling in automatically releases that have known bugs within (https://virtualenv.pypa.io/en/latest/user_guide.html#wheels)

IJ-CR-9549

GitOrigin-RevId: 563409e9f7ef1d61572989555f572b06b19ded85
2021-06-16 21:53:58 +00:00
Alex Plate
79820165d3 [IDEA-270680] Use an ellipsis character in the py bundle
GitOrigin-RevId: adea0d6db24bc18295954f1a48a9a04db8cf8d0b
2021-06-03 17:21:10 +00:00
Mikhail Golubev
52bbfc2ec7 i18n: Process a couple of new problems
GitOrigin-RevId: f42121994fb6cfe072eb60f8c526ec48a6dfce9c
2021-05-19 17:36:39 +00:00
alla redko
2fe7d30e5e IDEA-248849
GitOrigin-RevId: cce2d88891e4e0f7142f48fa681b5f557b303b49
2020-11-30 22:16:33 +00:00
Semyon Proshev
11b0b97c80 Move common sdk ui strings to the sdk bundle
GitOrigin-RevId: 48074459333e959644f51c87270a6bee2dc59ea7
2020-10-06 15:17:19 +00:00
Semyon Proshev
d53595adcf Update sdk configurator and inspection to suggest creating venv using requirements.txt or setup.py (PY-44743)
GitOrigin-RevId: e46b817ea085bca4b538c84eed3cf6d4a0a75013
2020-10-06 15:17:17 +00:00
Lada Gagina
29b48b5508 Rename some packaging-related strings in PySdkBundle
Because they were accidentally named wrong

GitOrigin-RevId: f6136835a72b5b22f3eadde7b6726ce9c9703096
2020-08-27 17:29:33 +00:00
Mikhail Golubev
aed8daa4fb i18n: Extract a few remaining Python packaging errors
GitOrigin-RevId: dc902f2b8ba0f725f65ae0f61f232b04f90cae26
2020-08-27 10:46:25 +00:00
Lada Gagina
23916d6193 i18n: Packaging
GitOrigin-RevId: 73d936e525ed9216c44956ef6842274119dd539b
2020-08-26 23:59:39 +00:00
Lada Gagina
7eb35e867a i18n: Packaging
GitOrigin-RevId: 602284d48899ae8c896922dcb27e0ab928638750
2020-08-26 14:39:13 +00:00
Lada Gagina
0dcb9cb443 i18n: Interpreter settings
GitOrigin-RevId: ae4251440959bd70d01402b35c1a6b19a275524b
2020-08-21 17:07:43 +00:00
Lada Gagina
2f53b0d8f2 i18n: Interpreter settings
GitOrigin-RevId: 6eed8f2f1e4725ec617e7df0c861744cdf8e2be9
2020-08-20 17:44:55 +00:00
Nikita Eshkeev
52f0baa14d [i18n] idea-ui
This patch replaces hard coded strings with i18n properties in idea-ui

Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>

GitOrigin-RevId: f481ab904b8648a9f0d68d4de91e1f31c01be49f
2020-08-07 00:16:50 +00:00