Commit Graph

32697 Commits

Author SHA1 Message Date
axiom
e7a176730e OPENIDE remove backup-and-sync plugin
(cherry picked from commit 675a1b5828c4b2570c386b469a440d5512713d02)

(cherry picked from commit a114659a11)

(cherry picked from commit f343db0751)
(cherry picked from commit 12147c0161)
2025-12-15 12:53:22 +04:00
Vladimir.Koshelev
26941a7bcf PY-85989 [pycharm]: update what's new for 2025.3 part 2
GitOrigin-RevId: 6c03902cc33df864c5c6efee8dfe53b85b469b46
2025-12-04 11:44:38 +00:00
Mikhail Golubev
fd7a53a276 fixup! PY-86002 Disable "python.typing.strict.unions" and revert the tests updated for PY-24834 in 253
Revert the revert of test changes that are not directly related to strict unions.


(cherry picked from commit 3f00d59e604a3488960c2907650ec9da4b611166)

IJ-MR-184663

GitOrigin-RevId: df38eadedc142c91771ceeb11f3fe4a1bb93b961
2025-12-03 21:51:26 +00:00
Mikhail Golubev
9aea2d445a fixup! PY-86002 Disable "python.typing.strict.unions" and revert the tests updated for PY-24834 in 253
(cherry picked from commit 980a5ad341400a271acadf07d40f346f6919d421)

IJ-MR-184663

GitOrigin-RevId: fe632291357677359b5186160ce2e14cb7fdde60
2025-12-03 21:51:25 +00:00
Mikhail Golubev
7e974e8f51 PY-86002 Fix more new tests that were expected to generate type hints with weak unions
Because UnsafeUnion is not denotable, we used to generate Any in such cases.


(cherry picked from commit 37a29f635920c9c4ac1c1d4036ddd4594a0fd3bd)

IJ-MR-184663

GitOrigin-RevId: 058d7d214b16611230feb418b0ce93b680985936
2025-12-03 21:51:25 +00:00
Mikhail Golubev
2ea12b55ab PY-86002 Revert also PY-25989 PY-84544 to fix new test failures after the revert to weak unions
Namely, `generics_basic.py` in the conformance test suite and
Py3TypeCheckerInspectionTest.testTypeVarWidening.

Revert 07803c6243370d55df0d870e2e32b38170c1fb49


(cherry picked from commit 24d3313cb944dc2e511191efd3b4d2cf2631ac92)

IJ-MR-184663

GitOrigin-RevId: 97d42c56b99ca3c6bb663294524af53769977203
2025-12-03 21:51:25 +00:00
Mikhail Golubev
729823e2d1 PY-86002 Adjust PyUnnecessaryCastInspectionTest.test okay expected result
`UnsafeUnion[int | str]` is considered a subtype of `str`, so the cast is redundant.


(cherry picked from commit 07319408575ee102041eb03a2ded0f3e8ece877e)

IJ-MR-184663

GitOrigin-RevId: bc34b40d5c2bf423a383b570625876cf4f58652e
2025-12-03 21:51:25 +00:00
Mikhail Golubev
4ccc6df7a5 PY-86002 Update some tests introduced after PY-24834 to expect legacy unions
(cherry picked from commit e7aec62dc64f94efc596ebf731c439d757afec72)

IJ-MR-184663

GitOrigin-RevId: cfec379dd871fa0fb844dd374ea181e32603128c
2025-12-03 21:51:25 +00:00
Mikhail Golubev
739515adb6 PY-86002 Disable "python.typing.strict.unions" and revert the tests updated for PY-24834 in 253
(cherry picked from commit f54931279f65a9dbcd16c771217b16dfdee63934)

IJ-MR-184663

GitOrigin-RevId: d56e15c4dacb22f474713cff8932fddee2d5e2b3
2025-12-03 21:51:25 +00:00
Hlib.Saliuk
ba5d4445d5 [python] RELEASE-609: PyCharm 2025.3
(cherry picked from commit 05616ebf1942be69312011456986cc1b8de67254)

IJ-MR-184516

GitOrigin-RevId: b9bd75d057ff0d5ff46ee0f2b3185649c2778412
2025-12-02 23:24:43 +00:00
Vladimir.Koshelev
056e4fc122 PY-85989 [pycharm]: update what's new for 2025.3
GitOrigin-RevId: 583ab1ae20d0e7ac96a1566367cc709653b2c367
2025-12-02 17:39:53 +00:00
Vladimir.Koshelev
4cbee7b464 docs [pycharm]: add what's new for 2025.3
GitOrigin-RevId: 8fa1d50bc5e23e3d07c1aadf3a3fa80f8727fb48
2025-12-01 19:15:26 +00:00
Natalia.Murycheva
720b2d7f86 [PyCharm Tables] PY-84611 Fixed once again
(cherry picked from commit af34abdd058021f5ee9ece44d0aa5b9268ae5eca)

IJ-CR-184067

GitOrigin-RevId: c8b4ead6d0ac985bbc543b449c0fee2bd6f8f241
2025-11-28 22:45:02 +00:00
Morgan Bartholomew
00ff371a5c PY-85473/PY-85475 black/lsp modal use of forSdk
(cherry picked from commit 82a51fa36cf336450dda2e137aca0e9d06a92fb4)

IJ-MR-183301

GitOrigin-RevId: 56dac821cb07cffa6d39408926c8001443a7a12f
2025-11-27 11:36:58 +00:00
Hlib.Saliuk
f9fb715e80 [python] RELEASE-578: PyCharm 2025.3 RC
(cherry picked from commit 34a044798cb94d389fe363664644480a4eb4b44c)

IJ-MR-183786

GitOrigin-RevId: 6758ba482623fc5c27388c00632d25d8ee790677
2025-11-26 18:52:46 +00:00
Petr
9465c4b585 PY-25989 PY-84544 Widen types during type parameters substitution
(cherry picked from commit 627673fc7ed27621df839a5c1d4d31e677ce7f8c)

GitOrigin-RevId: 34bf38c4d79fe08cdddfce9bfefb0d0b94a0f60e
2025-11-26 18:04:03 +00:00
Ilya.Kazakevich
3e9fa8d2dd [python]: PY-85585 : Do not display vens as system pythons in "Add new interpreter" window.
Instead of old `addManuallyAddedInterpreter` we now have two functions: one that requires system python and one that doesn't.

Both functions register system python if provided, but the latter one accepts any python (venv included).

Various "selectors" use these functions.

We also make sure no non-system python is set to `baseInterpreters`: base are always system!

As a bonus, we show "system" or "virtual env" title near interpreter.

It now checks that python is system (see `ensureSystemPython`).

Non-system pythons are never reported, and `registerSystemPython` also returns an error for non-system pythons

We need `execGetBoolFromStdout` for the further changes

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

(cherry picked from commit 2950f5f0cd2745c12987a92e40774d366568f312)

(cherry picked from commit f30e9a6cd7b5d103454d66f26a0c2282d7c587fc)

GitOrigin-RevId: 6894d00debe969ecdfdadd1a7ba0d44866d9bf53
2025-11-26 16:42:51 +00:00
Ilya.Kazakevich
f26e31b994 [python]: PY-85585 : (WIP) Introduce method to map errors
Utility method to map `Result<S, E>`` into `Result<S, E2>`` is required for the next changes

(cherry picked from commit 811ddf171794ffdf20f77de6c735ac7ac19ce30a)
(cherry picked from commit b13ddca080644357a738ffc10795703d11b18d97)

GitOrigin-RevId: 3b4e5448ed2aa9526933e579be871a0b69b7f2f9
2025-11-26 16:42:51 +00:00
Ilya.Kazakevich
5dd452f0c2 [python] PY-85433: Survive IOException thrown by read.
While closing remote stream should lead to `EOF` (`-1`), `read` might still throw `IOException`.

This is documented by the `read` contract, and we face it when underlying stream gets closed i.e: one thread was blocked by `read` and another one called `close`.


(cherry picked from commit 2c49be37333a794c6ed1f5ce4ad3d8d2f29b93fa)

IJ-MR-181675


(cherry picked from commit f3f40e8edbc0caa2450b297ae278b37a754a5f49)

IJ-CR-183687

GitOrigin-RevId: aaffb92704a0a52c89d75de83fcb0433a2ce3d54
2025-11-26 16:41:14 +00:00
Alexander Koshevoy
a983a237df [pycharm][wsm] PY-85327 Disable per‑environment Workspace Model separation in PyCharm
- Python interpreters' `homePath` is the in‑environment absolute path (e.g., `/usr/local/bin/python3`) with no scheme; it can be identical across WSL, Docker, and SSH. With per‑environment separation enabled, these SDKs get routed into the `LocalEelDescriptor` environment bucket, making them unavailable to WSL projects and contributing to broken Remote Docker SDK workflows on Windows.
- Trade‑off: native opening of Dev Containers (without a backend running inside the container) isn't available with this default; that flow currently has other issues and isn't something we can ship now.

IJ-MR-181211


(cherry picked from commit 81e43569a48cc42f48d3e2b5472c16944b940318)

IJ-CR-183680

GitOrigin-RevId: b7d7a13a04d39b0710465b9fa3a33fe30f6031ff
2025-11-26 16:05:28 +00:00
Alexey Katsman
b30b281f5d PY-85634: Make PyInterpreterInspection async for PyCharm
PyInterpreterInspection uses SDK configurators to find existing
environments and find the most suitable SDK. This operation takes time
(especially with conda on Windows), and on top it's performed on every
file change, making UI freeze all the time.

This change makes inspection asynchronous by caching the result and
triggerring inspection again to show changes on the UI.

Follow-up to IJ-MR-178613

GitOrigin-RevId: 889bdaac6a0a34cfca4d29d6a43eb95824b32fe4
2025-11-25 19:48:52 +00:00
Alexey Katsman
6256c871d8 PY-85634 Adapt PyInterpreterInspection to Kotlin style
Follow-up to IJ-MR-178613

GitOrigin-RevId: 12c812ceb61e365cab8d334a8be9676bfe8c97b4
2025-11-25 19:48:52 +00:00
Alexey Katsman
e95a1641e3 PY-85634 Move InterpreterSettingsQuickFix to a separate file
Follow-up to IJ-MR-178613

GitOrigin-RevId: dc84833002a39c2b4d9df43adf01de36194ae2e5
2025-11-25 19:48:52 +00:00
Alexey Katsman
ed10f74573 PY-85634 Move PyInterpreterInspection to a separate package
Follow-up to IJ-MR-178613

GitOrigin-RevId: 54ad47483a859920418b3bcad28893541f7bea00
2025-11-25 19:48:52 +00:00
Alexey Katsman
924a7c856d PY-85634 Convert PyInterpreterInspection from Java to Kotlin
Follow-up to IJ-MR-178613

GitOrigin-RevId: 7fa629b1239b0c23bc60bb5b5a1b416b6a49b8f3
2025-11-25 19:48:52 +00:00
Vitaly Legchilkin
900a07008f PY-85756 use sigstore to verify python distributive signatures instead of GPG
(cherry picked from commit e2db94448a88eef0c2fccd4e91e28e5ae548799e)

IJ-MR-183564

GitOrigin-RevId: 683c8c4c416252322f248da08f09a792496afaa7
2025-11-25 18:35:39 +00:00
Vitaly Legchilkin
51ddec2402 PY-85756 update sdks.json registry - bump python/conda versions
(cherry picked from commit 7699f7ed417a4c73bf9b18093c31c8950f9a1192)

IJ-MR-183564

GitOrigin-RevId: 7c094d26175cd14d13ece0161949b8450ba3e601
2025-11-25 18:35:39 +00:00
Vitaly Legchilkin
3676de8fa3 PY-85040 unittest discover from python 2.7 has no --quiet option
(cherry picked from commit 5b3f22b17f20cfcfddcb10488444a5b187ba014d)

IJ-MR-183279

GitOrigin-RevId: d45f0dcd0b65b732334263c6b3808862714ba5b3
2025-11-22 19:09:17 +00:00
David Lysenko
603e50a63d IJ-MR-182960-to-253
[pycharm] PY-85729 Post-cherry-pick fixes

[pycharm] PY-85729 Fix stress test on Windows

[pycharm] PY-85729 Fix smoke tests

[pycharm] PY-85729 Add visibility attribute to plugin config

[pycharm] PY-85729 Add a coroutine cleanup test

[pycharm] PY-85729 Add a stress env test

[pycharm] PY-85729 Minor cosmetic fixes

[pycharm] PY-85729 Performance improvement: add debounce to reduce the amount of GC garbage

[pycharm] PY-85729 Fix potential OOM: adjust limits

[pycharm] PY-85729 Fix potential OOM: add cancellation logic for background process observer

The background error process observation logic didn't cancel the coroutines, making them last for way longer than needed. Cancellation logic was added to remedy this.

[pycharm] PY-85729 Fix OOM: Force LazyTree recomposition on tree change

It looks like LazyTree composable hogs memory by keeping track of all the previous trees; this is bad for our use case as any snapshot change to the tree will be saved, causing potential OOM by not freeing the processes. This is fixed by forcing a recomposition on each tree change (via key(tree)).


Merge-request: IJ-MR-183264
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

(cherry picked from commit 6a3f71219da1b8577b26d35ce73846685314eb3d)

IJ-MR-183264

GitOrigin-RevId: 0dfc7ab098a03f2e97ce7f5bfa9a691164353136
2025-11-22 12:55:02 +00:00
Nikita Pavlenko
f07a5dc970 [PyCharm] Packaging (fix): Fixed the behavior of the Python Packages toolwindow in different scenarios. #PY-64298 Ready For Merge
1. Filter/Search toolbar size on different zoom levels will be properly sized
2. Toolbar buttons will be right-aligned
3. Packages group headers will have proper sizing on every Zoom level
4. Packages list item will have proper text size when changing IDE zoom


(cherry picked from commit 1b5372491881448a22fa10c4b23df4c3fd1e6f8a)

IJ-CR-183206

GitOrigin-RevId: 86df447644ec637f61c93b9014aa90e8ca22734e
2025-11-21 15:41:56 +00:00
Alexey Katsman
3d4f80e8f4 PY-85772 Do not check uv executable in isAvailable in run tool provider
Function isAvailable might be called from EDT and it's completely
normal. Also, we already check that SDK is uv. So it's highly unlikely
that we won't have uv executable when getting run tool parameters.


(cherry picked from commit 018fb9486a04013c113c77c1167745bcf9324f98)

IJ-MR-183149

GitOrigin-RevId: a1573fa02bbb52da127b43b04b89c2289ee73dff
2025-11-21 11:48:36 +00:00
Timur Malanin
9a71793536 PY-85069 Refactor UV interpreter handling: add getUvCreator() to not recreate instance of EnvironmentCreatorUv.
(cherry picked from commit 74d656727a83afb08d94143d90fb622696796c83)

IJ-MR-182120

GitOrigin-RevId: 4c7b3989ab5933a931141269db9b3cf650cd692e
2025-11-19 12:16:33 +00:00
Timur Malanin
63bf7d9b5c PY-85503 Introduce PyPIPackageRanking service for managing PyPI package rankings. Added logic to not asking confirmation for installing well-known packages by quick-fix.
(cherry picked from commit 5e57bb637d8ad66ffd186b8dcc130da7f090e731)

IJ-MR-182106

GitOrigin-RevId: 9604439d4dd6f0bfe3a84b4386c33bf77e0aaf3b
2025-11-19 11:14:04 +00:00
David Lysenko
676bad34d2 [pycharm] PY-85618 Expose target information
Merge-request: IJ-MR-182369
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

(cherry picked from commit 3a29771c841058d1591ae79eee71887ce495d15e)

IJ-MR-182369

GitOrigin-RevId: 39b030a8ee5a8f138326ff629c467569acc9eb99
2025-11-18 17:48:32 +00:00
Alexey Katsman
a2a8b61e90 PY-85452 Persist sdk for remote interpreters and upload proper paths
Firstly, we have JDK table where we store SDKs, but also we have our own
ProjectSdksModel for interpreters. If we won't persist SDK in our model,
but only in JDK table, we'll technically have SDK, but won't set it
properly in different places (eventually we'll sync those models
though). So it's important to persist SDK using ProjectSdksModel.

Secondly, for SSH interpreters we used helpers mappings for all uploaded
files. The proper way is to detect whether the file is a helper and
apply appropriate mapping.

These changes address both these issues.


(cherry picked from commit d582fc714326324c0580f11b13fd1f843d8ebefa)

IJ-MR-182438

GitOrigin-RevId: 07985128334d1725e12a6c95d1d320a2956fcf0c
2025-11-14 15:05:48 +00:00
Pavel Karateev
38175ed2ef PY-85040 fix --quiet being passed to unittest before discover
(cherry picked from commit 0d100a2b07af6defab9c1fa841f309a652a6e4dd)

IJ-MR-182152

GitOrigin-RevId: 14c904b5bf388531060092b374b79877f90aeb8a
2025-11-13 10:17:05 +00:00
Petr
eb823d2c9b PY-83529 Use more specific method parameter type
(cherry picked from commit 7337c92fb37d3813505a7c7e2701044c36aba8a1)

GitOrigin-RevId: a48d6e9f2d7fa074598daeaad553e27d4bbac8d8
2025-11-12 17:43:51 +00:00
Petr
43d1cf2b58 PY-83529 Make type name reasonable (PyModuleType, PyImportedModuleType)
(cherry picked from commit a5f8641bcae3cd01eb7ff174e289cbf3ca5e3b2b)

GitOrigin-RevId: 5f0ea25eebe7329303e78b18c0ffa03c75c435d6
2025-11-12 17:43:50 +00:00
Petr
d950b4ef32 PY-83529 Do not resolve to empty skeleton package modules
(cherry picked from commit 699b50ea5e2be24852fc1c07acb4d372e760a251)

GitOrigin-RevId: 6369f512dff176c4ebb4ec4d45c57c37acec7df0
2025-11-12 17:43:50 +00:00
Petr
bfcb51b289 PY-83529 Add tests for binary skeletons resolution
(cherry picked from commit 419975ed4ccbc4690cabe4f57307b0d6ad4fbc1e)

GitOrigin-RevId: c3ce7ac59c0375f98c5ffdf363e37147df7dc781
2025-11-12 17:43:50 +00:00
Petr
d101900bcf PY-83529 Rename test for clarity
(cherry picked from commit c6191d6c7d9863686731b2f9d9841e732a69c7d1)

GitOrigin-RevId: 77afb8f6186032fe1fa6124e5f261b646e407143
2025-11-12 17:43:50 +00:00
Petr
85d9baaf32 PY-83529 Don't copy SDK files to the project directory (PyMultiFileResolveTest.testImportOfNestedBinarySubModule)
(cherry picked from commit 3e4d34471b4a0d2f62942848a4bca8f35ddf7b4b)

GitOrigin-RevId: 115f664e11b95543ac59ab8fa6d8a3c226f25848
2025-11-12 17:43:50 +00:00
Petr
af4eee604f PY-83529 Remove unused test files
(cherry picked from commit f42b1a2ecd951ccfc75944ad7c237f3c790a318f)

GitOrigin-RevId: 415b82a78d887f3a6e99996f2e701104526a829e
2025-11-12 17:43:50 +00:00
Egor Eliseev
c00aa2f870 [python] PY-85553 Test runners tests fail with timeout error
Merge-request: IJ-MR-182141
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit 398f92c216bb50665de4eac9a1c94dd12c6ab191)

IJ-MR-182141

GitOrigin-RevId: 5d56b6d0a4653c18f81820cce5bef127e8eafaa0
2025-11-11 21:45:30 +00:00
Vitaly Legchilkin
39c8a62589 [python] (PY-84316) revert serial calls & EditorContextBarMenu for Python Package Manager Actions
(cherry picked from commit 42374befa238b38583cf0490e1b2e248c206f2ef)


(cherry picked from commit 027fa79ceb0985967f837fcc21015a68bc5af2a1)

IJ-MR-182157

GitOrigin-RevId: 7326d38c8f153dce89753a80ba4ecc03a9d58e4a
2025-11-11 20:41:13 +00:00
Anton Efimchuk
29012b87b5 PY-84316 Add the floating toolbar actions to the requirements.txt \ pyproject.toml \ environment.yaml file context menu
(cherry picked from commit d277ad9d67e22c695eb65f27929ec70f1c5e7813)


(cherry picked from commit b6f3412c8ec241a66d82475581ba4da46355afe0)

IJ-MR-182157

GitOrigin-RevId: e7eecf1a2dadb87d1b3cc3ade96cbaf4173cc1e7
2025-11-11 20:41:13 +00:00
David Lysenko
fca3035de9 [pycharm] PY-85542 Fix padding in Process Output Tool Window
Merge-request: IJ-MR-182077
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

(cherry picked from commit ba6952c014bc2a5a1be8be1fb250a1aff52677cf)

IJ-MR-182077

GitOrigin-RevId: de4a01a9e2eed6909900901a88e14153df310581
2025-11-11 19:05:32 +00:00
David Lysenko
656734d66b [pycharm] PY-85546 Fix automatic deselection on show background processes toggle
Merge-request: IJ-MR-182105
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

(cherry picked from commit 3059d9543addb56c5ed5c969076fbfec48a2b56e)

IJ-MR-182105

GitOrigin-RevId: 66615ef7e5b05de6fec946f49535b755b57512c7
2025-11-11 18:44:31 +00:00
Alexey Katsman
2a57386510 PY-85528 WSL: Fix file browser descriptor
(cherry picked from commit 4f4a3bd69955830d9b0fa41972d26f996bd23df0)

IJ-MR-182134

GitOrigin-RevId: be9ff870a01058ddcf4ec60e8c12c2f0e6645d70
2025-11-11 17:51:46 +00:00
David Lysenko
15d32369da [pycharm] PY-85545 Jump to top on "display background processes" setting toggle
Merge-request: IJ-MR-182100
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

(cherry picked from commit c33ebd6341d6c5bf86df4fdb3aada2e0ec7625e2)

IJ-MR-182100

GitOrigin-RevId: a6b4fbc5edc13ac87316c1e2c3a1a393d9255776
2025-11-11 17:35:51 +00:00