Commit Graph
54 Commits
Author SHA1 Message Date
Ilya.Kazakevichandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 434590383d [python] PY-79486: (WIP) Move tools to separate modules to access them from the frontend.
We are slowly moving all tools to the separate modules to register them as EP. On the front we might have `ToolId` only. To map it to an icon we will use EP.

GitOrigin-RevId: 3cd0ad9f8da4a69739c8f632a6305ddd7c29d62d
2025-11-24 16:35:26 +00:00
Alexey Katsmanandintellij-monorepo-bot 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 Katsmanandintellij-monorepo-bot 1ac353ef9a [python] PY-83881 Provide python info during environment detection
GitOrigin-RevId: 4382680255fc78925c4b23ce825a2894114040c5
2025-11-03 12:05:45 +00:00
Alexey Katsmanandintellij-monorepo-bot 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
Vladimir Krivosheevandintellij-monorepo-bot d7875f7d97 IJPL-209419 remove unused dependency on intellij.platform.eel.impl
GitOrigin-RevId: 4335e0cc630a881691909b11cc23b140acccbbc1
2025-10-03 15:08:44 +00:00
Vladimir.Koshelevandintellij-monorepo-bot 657e9ebee3 update bazel files
GitOrigin-RevId: f8ee7c74051e66b41bddbc976d457d25939bc008
2025-09-30 18:46:16 +00:00
Vladimir.Koshelevandintellij-monorepo-bot 68caf2edce [python] fix symver packaging into python core plugin.
GitOrigin-RevId: 10d17df2e222722ebf1e3206dea7ac88c5201bd1
2025-09-30 18:46:16 +00:00
Ilia Kirianovskiiandintellij-monorepo-bot f43aa95086 [bazel] Update build files (IJI-3062)
GitOrigin-RevId: 98a67396a48bddc3d084cc93c50ae2f2017bfe8c
2025-09-29 00:11:15 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 1b3c93d736 IJ-CR-146078 IJPL-209510 use kotlinx-serialization core and json product modules instead of jps lib (except fleet - no idea what to do)
GitOrigin-RevId: b74e1ac62eb7917aac3d5edb4bbfd2be2a4a191e
2025-09-26 20:36:41 +00:00
Vladimir.Koshelevandintellij-monorepo-bot c5b44ca085 [python] PY-84398 get rid of package prefix in python modules.
It doesn't work. Sad, but true.

GitOrigin-RevId: c6cf4f2971ce813a2ce18afb2dcee22c2c5dad75
2025-09-26 15:15:29 +00:00
Vladimir.Koshelevandintellij-monorepo-bot 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
Ilya.Kazakevichandintellij-monorepo-bot 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
Nikolay Chashnikovandintellij-monorepo-bot 4f63150cff [intellij project configuration] change JVM target level from 17 to 21 in Kotlin facets (IJPL-176259)
GitOrigin-RevId: d518be3562a359b9d4034c2972d7c8444741b7f0
2025-08-30 07:50:09 +00:00
Aleksei.Cherepanovandintellij-monorepo-bot c7515bfd3a KTIJ-35250 [Bazel] Promote "Missing dependency superclass" warning to error (part 2)
This commit enables check only for modules WITH a Kotlin facet
Bazel generator was updated as well

GitOrigin-RevId: 90a3427d4b5a3ebc29e257693cb3748ac09bfc6a
2025-08-24 18:49:00 +00:00
Ilia Kirianovskiiandintellij-monorepo-bot dc268560b6 [bazel] Update build files (IJI-2835)
GitOrigin-RevId: 275260ab73f59d3c08f0b4cb9f4c89b74054094a
2025-08-20 08:49:22 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 42e77f6682 [python][evolution] Python Sdk Evolution widget (PoC)
Merge-request: IJ-MR-172341
Merged-by: Vitaly Legchilkin <Vitaly.Legchilkin@jetbrains.com>

GitOrigin-RevId: 46dd03abe5bbcb02a9b0202d232979dff5f4e492
2025-08-13 21:51:41 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 12960161ff Python: Introduce functions to call code against SDK:
See `sdkExecApi.kt`

GitOrigin-RevId: 0014b607ee6efa058e9144cfb208c7e75dff1e47
2025-08-06 23:27:57 +00:00
Ilya Kazakevichandintellij-monorepo-bot 8f83b52355 Python: Support Targets API in ExecService.
API changes:
Class `Args` is not used to provide arguments for commands. Previous implementation was incompatible with Targets.
Instead of `Path` we now accept `BinaryToExec` which is either Eel or Target based.

Impl:
`ExecServiceImpl` now delegates execution to `com.intellij.python.community.execService.impl.processLaunchers`: there are two functions (Eel and Targets)


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

GitOrigin-RevId: 4c4ac7023e6605caaacb1880d60faf145b4160bf
2025-08-06 16:10:47 +00:00
Leonid Shalupovandintellij-monorepo-bot 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
Vitaly Legchilkinandintellij-monorepo-bot 0dbe740d84 [python] support of two ways of possible responses from Hatch (make it internal) (PY-60410)
GitOrigin-RevId: 79fd57310a7861e6ef4923296749d264b71df43c
2025-07-07 19:06:34 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 09369d9e73 [python] support of two ways of possible responses from Hatch (PY-60410)
GitOrigin-RevId: d47225d7606fca1d65339b919b8250204360593a
2025-07-07 16:41:58 +00:00
Vitaly Legchilkinandintellij-monorepo-bot e2c9b90b03 [python] remove the not installed inspection from pyproject.toml/build-system (PY-82182)
GitOrigin-RevId: 5668767874c720af7794a33d38626a7531610c33
2025-06-25 22:43:47 +00:00
Nikita.Ashihminandintellij-monorepo-bot 024d2ae147 PY-82119 Packaging: Fix env tests for conda
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>

GitOrigin-RevId: 47286211e8ca894aa2e04c3f65528a2ab22fc37c
2025-06-25 17:06:43 +00:00
Nikita Ashihminandintellij-monorepo-bot 7a7c9b3f2d PY-82191 PySDK: Refactor new priject creation to support progress
GitOrigin-RevId: 6af82359528b086811c958577f296669eb578353
2025-06-23 15:41:20 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 37827d23f7 Python: separate advancedApi.kt (low-level) from simple (api.kt) in ExecService.
Consider using `api.kt` whenever possible.

GitOrigin-RevId: fc08d3ffdcce1b68cfb568c9a4c94381c1f58042
2025-06-06 18:53:37 +00:00
Mikhail Filippovandintellij-monorepo-bot 40e854e522 IJPL-188826 bump Kotlin language version to 2.2
GitOrigin-RevId: 61c9fecae6a713d7e328e74b83186bc5d2f6bf66
2025-05-26 13:41:54 +00:00
Vladimir Lagunovandintellij-monorepo-bot 3fcec7e44c IJPL-172897 Rename EelDescriptor.{upgrade,toEelApi}
According to feedback, the name `upgrade` confuses people.

We refused `getEelApi` because this call usually implies a getter, and a getter usually implies some lightweight operation.

We refused `make`, `convert`, `get` and other short methods because they're as confusing as `upgrade`.

GitOrigin-RevId: 56adf5362f93bc4f98954db79c039e5e898b4550
2025-05-20 16:27:30 +00:00
Andrii Zinchenkoandintellij-monorepo-bot 5ace6d13eb [eel] IJPL-184988: Get rid of EelResult
- remove results from the channels

GitOrigin-RevId: 25c5ab5cfcc56c5bf62e53427e7702de1e3368a3
2025-05-15 08:24:55 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 6bf17f551a Python: introduce PyExecResult as an alias for Result<T, ExecError>.
It is just more convenient to right less generic params.

GitOrigin-RevId: cd33be23da4bb3cb09658aa6564e4d298a3ba72d
2025-05-14 20:47:57 +00:00
Ilya.Kazakevichandintellij-monorepo-bot d04ce81a54 PyCharm ExecService: provide a listener to awaitWithReporting to capture output.
It is not convenient to use progress reporting: it is sometimes better to collect it explicitly to customize output

GitOrigin-RevId: 79a68ec8b35540cfdc6aab4fda54245a7a270247
2025-05-13 21:22:14 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 924a192984 Python: separate api and impl in ExecService
GitOrigin-RevId: b390c2c626fe14fc576da34de5b6ecd360bf6fd5
2025-05-09 04:12:06 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 11c31cfde7 Python: refactor ExecService to get rid of ProcessOutput and better support interactive execution.
1. `ProcessOutput` is a legacy thing with some redundant flags: replaced with modern `EelProcessExecutionResult`.

2. There was a bug in `ProcessInteractiveHandler`: one could fetch all data from stdout, and we then did that again to get a result. That leads to an empty result. It is now fixed, see `executeInteractive` doc.

GitOrigin-RevId: 7fa57f8110a202a32a3531ff6507d42a270075a3
2025-05-08 23:32:15 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 91a13e2436 [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)

GitOrigin-RevId: 0bbc5a7802826674140ca1c80be27b6cd7d0f59e
2025-05-08 01:15:49 +00:00
Vladimir.Koshelevandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 803e270d45 Python: refactor PyError hierarchy, migrate to PyResult.
DO:
For upper-level (public) API use `PyResult`.
(Optionally) for low-level APIs inside your modules use python `Result<S, E>`.
Represent errors as `PyError` whenever possible.
Report `PyError` to `ErrorSink` at the top of your code.

DON'T:
Use `kotlin.Result`
Use `PyExecutionException`
Use any exception to represent user errors.

GitOrigin-RevId: 4ecf69e1fae8be9192cd33b90e0147c725a98964
2025-04-29 00:43:56 +00:00
Mikhail Filippovandintellij-monorepo-bot 493c93a4bf IJPL-182711 bump Kotlin language version
GitOrigin-RevId: 0beaed34efbd3b42a739dddd78de097b4e1d09c5
2025-04-09 14:26:59 +00:00
Andrii Zinchenkoandintellij-monorepo-bot 25825f5e6a [eel] IJPL-172897: move where function to the EelExecApi
GitOrigin-RevId: 349bd28772b8bf537ecc8421bccfeb00844ee1b6
2025-04-08 16:10:58 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 61ec26ac28 [python][hatch] create module structure only for pure python projects (PY-79939)
+ add work directory and hatch env name to hatch sdk data
+ support hatch run on cli level

GitOrigin-RevId: 4782bc52fcd23775b51903ae05f2575f574401cc
2025-03-25 19:45:38 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 131241962d update bazel files
GitOrigin-RevId: b9299ef37d68f348f932f02341e0e1535efc3893
2025-03-13 00:44:46 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 388604d4a9 [python] Code Review Changes(PY-60410)
GitOrigin-RevId: c4054e33a65db334dd5c9c2a7e2e6a9b38766eb2
2025-03-12 20:49:14 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 57e40ddd7c [python] add concurrency limit for env resolving (PY-60410)
+ change required background thread to explicit withContext(IO) where it is needed.

GitOrigin-RevId: 79948000391765fcf0b8c24d1814a8dbe52d83a2
2025-03-12 20:49:14 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 4c781d0d26 [python][hatch] support matrix environments (PY-60410)
+ add HatchServiceTest

GitOrigin-RevId: a19006a801ca5848ec3bc5a0398c17e4516c10bb
2025-03-12 20:49:14 +00:00
Vitaly Legchilkinandintellij-monorepo-bot ba56847745 [python][hatch] add HatchService (PY-60410)
HatchService is the middle layer API and has the CliBasedHatchService implementation.
For now it allows to:
* manage virtual environments
* detect if the project is managed by Hatch (hatch.toml or [tool.hatch.*] sections in project.toml)
* create a new project structure (might be reused in 'welcome script' on new projects)

GitOrigin-RevId: f19210180e69bfd968bcc4cfdcf3a1b7925e3841
2025-03-12 20:49:14 +00:00
David Lysenkoandintellij-monorepo-bot a782da7be5 [pycharm] PY-78648 Resolve uv correctly on windows
GitOrigin-RevId: f280a79ce566d43682fd77da735d037fff2e9ed3
2025-02-17 13:58:20 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 2744060f54 IJ-CR-146078 add support for whenGuards, set 17 as default jvm target for custom kotlinc opts
GitOrigin-RevId: 9b107d08ff3b588c3c5099a95276ac714ac6ea19
2025-02-17 12:06:29 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 3599f1909f update bazel files
GitOrigin-RevId: 5bbd03b7b8439e9d917275ebbb320df4cd63e8d6
2025-02-13 08:51:32 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 10c1a56720 [python] get real temp dir paths in test (PY-60410)
on MacOS X there is a symlink /private/var to /var. TempDir fixture returns a path without it, i.e. "/var/....". But the real path is "/private/var/...".

GitOrigin-RevId: 58b14d9ebe565396cb5e0acb5ee00795ac4e459e
2025-02-12 21:19:30 +00:00