274 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
Alexey Katsman
5fa4f67865 PY-85162 Pre-select tool based on existing envs and other markers
GitOrigin-RevId: 3047ea7b0c18bfd591e7551a90c027d543aa5c30
2025-11-24 19:21:50 +00:00
Ilya.Kazakevich
a35535b51a [python] PY-79486 (WIP): Use real EPs to create SDKs.
The process is described in `ModulesSdkConfigurator` doc.

GitOrigin-RevId: 1a21824e488a2d799b229d7c8355b60b0b177809
2025-11-24 16:35:26 +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
Ilya.Kazakevich
b5a1bf61a2 [python] PY-79486: (WIP) EP can only have ToolId and not icon.
Icons can't be sent to the front

GitOrigin-RevId: 4cc4341094fb6f61f1fdcc62da2d8c3586faaff7
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
Alexey Katsman
1ac353ef9a [python] PY-83881 Provide python info during environment detection
GitOrigin-RevId: 4382680255fc78925c4b23ce825a2894114040c5
2025-11-03 12:05:45 +00:00
Alexey Katsman
ffaee73f12 [python] PY-83881 Remove unused API in sdk configuration
GitOrigin-RevId: 5a38b57db1c90279cea4dfbafb682b8227511138
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
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
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
Vladimir Krivosheev
67a6dac7f8 IJPL-209476 IJ-CR-146078 kotlinx-datetime-jvm, kotlinx-document-store-mvstore, kotlinx-html-jvm, kotlinx-serialization-protobuf, kotlinx-collections-immutable
GitOrigin-RevId: 058331a1e834d7780456f98d003afe56abfc36a0
2025-10-12 11:10:47 +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 Krivosheev
aef6fcfb61 IJ-MR-175479 IJ-CR-146078 IJPL-209476 intellij.libraries.kotlinx.coroutines.slf4j, icu4j, jackson, ion as product module
GitOrigin-RevId: 6ec3fc109676944133e91aff3a82c51572bf4dbc
2025-10-04 19:03:47 +00:00
Vladimir Krivosheev
601a44264f IJ-MR-175479 IJ-CR-146078 IJPL-209476 gson as product module
GitOrigin-RevId: 4e0ec5a56b91ff85cef4343c34f36e18adec1e9e
2025-10-04 19:03:47 +00:00
Vladimir Krivosheev
ec3242285e IJ-MR-175479 IJ-CR-146078 IJPL-209476 caffeine as product lib
GitOrigin-RevId: a4585825ed7a9f49d9c74266ea2ebd4323d6405e
2025-10-04 19:03:47 +00:00
Vladimir Krivosheev
9f425c84ea IJ-MR-175479 IJ-CR-146078 IJPL-209476 guava as product module (part 2)
GitOrigin-RevId: 22ee846c39d44cd481ad55d11889ff43ad3b389a
2025-10-04 19:03:47 +00:00
Vladimir Krivosheev
d7875f7d97 IJPL-209419 remove unused dependency on intellij.platform.eel.impl
GitOrigin-RevId: 4335e0cc630a881691909b11cc23b140acccbbc1
2025-10-03 15:08:44 +00:00
Ilya.Kazakevich
5a4843d743 PY-79486: Introduce sdkConfigurator module.
This module listens for topic that model was just rebuilt from `pyproject.toml` and does its best to configure SDK.

It will support UI to make this process configurable

GitOrigin-RevId: c752c94385814b5fc4413316c0d9d4cc2adb41e4
2025-10-02 06:59:28 +00:00
Ilya.Kazakevich
2888d207d9 PY-82580: pyproject.toml refactoring to combine all pyproject.toml EPs to single API
The main idea is to decouple tool implementation from low-level platform APIs: Open project processor, workspace model e.t.c.
Implementing `spi.Tool` should be enough to introduce new tool.

GitOrigin-RevId: 1177b57fc0eee1ca2c88cac5b20618a6170bf521
2025-10-01 02:21:16 +00:00
Ilia Kirianovskii
f43aa95086 [bazel] Update build files (IJI-3062)
GitOrigin-RevId: 98a67396a48bddc3d084cc93c50ae2f2017bfe8c
2025-09-29 00:11:15 +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
Ilia Kirianovskii
644fc5cb1d [python] Add intellij.python.sdk._test module descriptor to run tests in dev-mode (IJPL-116621)
GitOrigin-RevId: a87a4f77bf6d738824a38754619bab1e30beb9b3
2025-09-25 02:24:13 +00:00
Ilia Kirianovskii
6f8920da99 [bazel] Update build files (IJI-3062)
GitOrigin-RevId: 2394c1289e33945f7640f249b17cbf34b31fd695
2025-09-23 09:25:59 +00:00
Ilya.Kazakevich
fd6322f117 Python: move classes to com.jetbrains.python.sdk.impl and close it.
`com.jetbrains.python` was closed by accident.

GitOrigin-RevId: 78109e34c720abfa2cefb1fa7d8d20db2ed1ad11
2025-09-22 18:50:06 +00:00
Yuriy Artamonov
2cf790a9d6 [python] PY-84203 Reuse PythonParserIcons.PythonFile icon everywhere
GitOrigin-RevId: c485c76e41659f33bd8d86de2470b27be684411d
2025-09-14 23:47:27 +00:00
Ilia Kirianovskii
dc268560b6 [bazel] Update build files (IJI-2835)
GitOrigin-RevId: 275260ab73f59d3c08f0b4cb9f4c89b74054094a
2025-08-20 08:49:22 +00:00
Nikita.Ashihmin
248b69f8cc PY-78749 Packages: Remove not used PyPackageManagers
GitOrigin-RevId: 64afac916b5e99bdb6eecfbd0714dea88f5ad626
2025-08-10 12:31:15 +00:00
Ilya.Kazakevich
de4458089d Python: hide internal symbols
GitOrigin-RevId: 124518f6869409232de94acbbdcd9f7b8b120103
2025-08-01 04:29:56 +00:00
Ilya.Kazakevich
de7de58736 Python: remove unsued arg from PythonFlavorProvider, close a couple if implementations
GitOrigin-RevId: 671271e156e0da7a71d6b62cdb1df7d5f6c65e97
2025-08-01 04:29:56 +00:00
Ilya.Kazakevich
912286589f Python: remove unsued arg from PythonFlavorProvider, close a couple if implementations
GitOrigin-RevId: d3a69f4895393cfc9fa38b10d479cb06131bab5c
2025-07-31 20:33:49 +00:00
Vitaly Legchilkin
9114137195 [python][sdk] check poetry.lock in poetry auto configurator (PY-82840)
+ refactor PyProjectSdkConfiguration to return PyResult for SDK creation methods:
In case of creation failure, the actual error was hidden and some random sdk was assigned instead of the real one. For example, if we open a poetry project and project and poetry sdk creation fails - any random sdk was assigned to the project (last used hatch or conda for example). Now ShowMessageErrorSink is used.

GitOrigin-RevId: 015fc469b6b5d934b49278ccfb3afc683b61554e
2025-07-25 14:03:47 +00:00
Leonid Shalupov
cff76ea65e bazel: split test and build sections in convert jps to bazel:L update Bazel files
GitOrigin-RevId: 90063178de33c2a95bfdebd160a721d6977d8097
2025-07-18 16:18:47 +00:00
Aleksandr Sorotskii
1e3bf294c7 system python providers for unix/mac/win/legacy platform; pyenv/brew system python providers; PY-47379
GitOrigin-RevId: 02c3c3f3e682aa60e48bd429b7862d431ce5ddac
2025-07-14 17:33:19 +00:00
Ilya.Kazakevich
91a7fbcf53 Python: hide various symbols
GitOrigin-RevId: ee604d0040a40da75986a48d702bf96793d9e7cc
2025-07-10 16:00:10 +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
1f8cca090c Python: drop unused symbols
GitOrigin-RevId: dee3a942e0913acc223b0dade9b0f8b2bea53bbf
2025-07-08 22:50:12 +00:00
Roman Shevchenko
01e159fafa [python] migrating environment readers to the new API (IJPL-7387)
GitOrigin-RevId: 0a1e3e457d227d0c58cdeda509cfe3d31f8ecfe7
2025-07-08 10:10:32 +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
Nikita Ashihmin
2c3a5a9f7a PY-82119 Packaging: Rewrite Conda to use EEL
GitOrigin-RevId: 8329d24191bdc1411775dc8e58a65172a2804788
2025-06-19 17:30:40 +00:00
Evgenii Ilichev
06fb3e21e6 Update test definitions in BUILD.bazel
GitOrigin-RevId: 12636c0153e8909f9d9658a07278edac5ceb9c23
2025-06-18 19:05:49 +00:00
Vladimir Krivosheev
c16c64e766 IJ-MR-162467 don't export intellij.platform.jps.model.serialization
GitOrigin-RevId: 4c70b0e49def83b78d1daf23c50bed6b7f41cb57
2025-06-16 14:54:15 +00:00
Vladimir Lagunov
230ec9b156 IJPL-190497 Eel: Rename EelDescriptor.{platform,osFamily}
GitOrigin-RevId: 8f50c3d0adf900298ec54b3e89c539da9c806909
2025-06-14 23:58:35 +00:00
Vladimir Lagunov
0c5c2a29db IJPL-190497 Eel: introduce EelOsFamily
GitOrigin-RevId: 85dc13d238d63f620c799a6e52f6cf50e87fd2b6
2025-06-14 23:58:35 +00:00
Vladimir Krivosheev
b935234c91 IJ-MR-162467 don't export intellij.platform.projectModel
GitOrigin-RevId: 11c0bf5ca0f3a6d892658a2b149d85cace9aa2b8
2025-06-14 13:00:48 +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
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
Ilya.Kazakevich
79b1c49897 Eel and Python: mark exec with throws and use localized text.
GitOrigin-RevId: d427283ad731c4611a04656e5f713025d5a8aac6
2025-06-05 20:57:23 +00:00