Commit Graph

701 Commits

Author SHA1 Message Date
Petr
a977877a92 PY-81471 Move PyJoinLinesHandler to python.syntax
GitOrigin-RevId: b6dc592a7eb09ee52547c591b4e5494eca4683ed
2025-06-13 20:21:12 +00:00
Petr
e33aae05fc PY-81471 Move PyStatementMover to python.syntax
GitOrigin-RevId: c9cb03c1bb97720c392ea482765790674f27b647
2025-06-13 20:21:11 +00:00
Petr
748017efe4 PY-81471 Move PythonColorsPage to python.syntax
GitOrigin-RevId: 402caeea59f52bde6cb93c6c9964efc770516bd9
2025-06-13 20:21:11 +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
evgeny.bovykin
1057b10afa Move Python Stub Packages Advertiser statistics group to the community python module
It's being used in by PyStubPackagesAdvertiser, which is also in the community

GitOrigin-RevId: 7b2c8180b81183928f1adc05fda041ddb421a429
2025-06-13 09:43:54 +00:00
Natalia.Murycheva
598478e28e [PyCharm] PY-81850 Follow up on the "Python" Settings pages improvements: settings pages re-ordering
GitOrigin-RevId: 8dcd8f5b62b61f4409902abaff323bf6236fcfb3
2025-06-11 23:06:31 +00:00
Alexander.Kass
ad81a4e009 ds: drop non-intractiv consoles
GitOrigin-RevId: 21569629f8a81dc12ccc47f02ae354a4dfb10bf3
2025-06-11 18:31:22 +00:00
Pavel Karateev
1ce9894d63 PY-81774 use lowercase uv for actions
(cherry picked from commit b7c60b8aba9041c98a9656e3a822f8fc8a468b71)

IJ-MR-165278

GitOrigin-RevId: 695441592759bf1f8f8186c7795088c605b64f9b
2025-06-11 17:02:33 +00:00
Pavel Karateev
6331021c68 PY-81774 use lowercase uv for lock file actions
(cherry picked from commit 5f96e07e643863594e1b27d9bd0d5e8be88dd988)

IJ-MR-165278

GitOrigin-RevId: 292ee4faf7376d3925081b4f5ba6f1eb943693b2
2025-06-11 17:02:33 +00:00
Mikhail Golubev
d1acb2ea7a PY-79488 Add "Project" prefix for Uv and Poetry project opening extension names
GitOrigin-RevId: f54eca61f3458439a25e5bb478e28d4f77096cc6
2025-06-11 16:54:32 +00:00
Morgan Bartholomew
768377268c [python] PY-78219 bundle django stubs in free mode
GitOrigin-RevId: 6b785f1019de0fdbda51b95a24041cd07e850ac2
2025-06-10 08:41:22 +00:00
Ilya.Kazakevich
105554c91d Python: introduce getOr("message"){} API to add errors on an appropriate level.
See `getOr` extension doc.

GitOrigin-RevId: 859af221e99f03b99ee2f82e829e83e0f00a9e6d
2025-06-07 22:05:56 +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
Vitaly Legchilkin
06b7a98504 [python] unify Local SDK creation UI in PyCharm and IDEA (PY-79881)
* use the same UI in IDEA for local SDKS as currently PyCharm has, removing redundant code


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

GitOrigin-RevId: fe26897837f41dd2f3b23a328d2a9098ad388e37
2025-06-06 22:08:02 +00:00
Mikhail Golubev
c48402b4cb PY-80971 Drop the legacy python-skeletons stubs
GitOrigin-RevId: bdd71af6a628d1b9fc03680a33088cc26857b2d0
2025-06-04 18:33:47 +00:00
Nikolay Chashnikov
c037841853 [spellchecker] convert intellij.spellchecker to a content module (IJPL-189900)
This is needed to have an explicit dependency on the backend in it (IJPL-188916), and also to convert XML modules it depend on in content modules as well.

The new module is registered in common-ide-modules.xml to include it in all IntelliJ-based IDEs as before.

A plugin alias 'com.intellij.modules.spellchecker' is introduced to allow adding dependency on the new module without using a v2 'dependencies' tag. Existing plugins which depend on intellij.spellchecker are updated to have an explicit dependency. The change shouldn't affect external plugins which use classes from 'intellij.spellchecker' because the new module will be automatically added to their dependencies.

'lucene' and 'ai.grazie.spell.gec.engine.local' libraries which were included in the main classloader of the core plugin before due to this module are temporary included in distribution of intellij.ml.llm, intellij.grazie and intellij.searchEverywhereMl plugins. This will be fixed by converting these libraries to content module in next commits.

GitOrigin-RevId: aa746fea2f6fd044cf0eaabd6589fce89133eee9
2025-06-04 14:41:40 +00:00
David Lysenko
e49b44c1f4 [pycharm] PY-81624 Remove uv promo popup
GitOrigin-RevId: 7f42eb55d08f910dcf3e2a1f09f1fee2684a4adf
2025-06-03 11:00:49 +00:00
Nikita.Ashihmin
5aef76953c PY-81238 Packages: Fix Project Generation
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>

GitOrigin-RevId: edd4e3acd80657aa171fdd8aeae06cb9ce9cd439
2025-05-31 10:40:24 +00:00
Tatiana Ber
caca64705c PY-80994 UI Texts: Fix typos and grammar mistakes (May)
GitOrigin-RevId: 2e942345de348c8d0f00271138c1a04fb69e86c3
2025-05-29 20:35:27 +00:00
Nikita.Ashihmin
c232ee240e PY-81238 Packages: Add PyPackageManagerUI
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>

GitOrigin-RevId: 810446f634befa8631be89ec6c50f957a5f6124e
2025-05-29 02:37:23 +00:00
Aleksandr Sorotskii
b9796682c0 cleanup
GitOrigin-RevId: c7a98a1819638291e41cc9649c187c59a3eb7cfb
2025-05-27 18:24:25 +00:00
Aleksandr Sorotskii
67a49445ef fixup python plugin sdk configuration silent errors; fixup quick fix path association getting stuck
GitOrigin-RevId: e709f2063464bfc4b90f3acdf0c6b82277f2dc65
2025-05-26 22:53:26 +00:00
Nikita.Ashihmin
21165f0125 PY-81238 Packages: Support multipackages install, remove, update
GitOrigin-RevId: 06378dff9ec4ea73cdf7b066f27276e896e19417
2025-05-24 12:39:40 +00:00
Timur Malanin
e384c86d45 PY-80189 Introduce interfaces and implementations to extract dependencies from pyproject.toml files for UV and Poetry SDKs. New extractors handle top-level dependencies and integrate with respective package managers. Tests verify behavior for empty and populated dependency scenarios.
GitOrigin-RevId: d4563cf5838ed9760cf4b65af35e87b1559cd6a9
2025-05-22 00:54:01 +00:00
Timur Malanin
a54f307202 PY-80189 Introduced a unified PythonPackageRequiresExtractor interface for parsing package requirements for Python SDKs. Added implementations for Poetry and UV tools, including the necessary changes to handle normalized package names. Added corresponding unit tests to validate the extraction functionality.
GitOrigin-RevId: add74cf74974af6608d88546d86fe72900eee271
2025-05-20 17:23:55 +00:00
Tatiana Ber
7c3d91fbc7 PY-80994 UI Texts: Fix typos and grammar mistakes (May)
Uv -> uv

GitOrigin-RevId: ed4361bd4d125ba2dd565016753827a5c6e4e4bf
2025-05-20 14:34:00 +00:00
Natalia.Murycheva
db8eaa6a5f [PyCharm] PY-81071 Fixed the settings page name for CLion
GitOrigin-RevId: 494aabd7c3ecedd6b8a5dece598ce3c0977228ba
2025-05-16 17:14:08 +00:00
Nikita Ashihmin
2b12f32486 PY-70287 Packages: Add OutdatedRequirementInspection
GitOrigin-RevId: ea67912291f96d3df094c081fb0d59de5bc9721b
2025-05-15 20:54:10 +00:00
Natalia.Murycheva
cc495dd34e [PyCharm] PY-81071 Introduce a Dedicated "Python" Settings Group in PyCharm #PY-81071 Fixed
- Added a top-level "Python" settings group in PyCharm
- Moved all Python-related settings pages under this group for better discoverability
- Retained original registration of settings pages so they remain in their default locations in non-PyCharm IDEs (e.g., IDEA with Python plugin)
- For application-level configurables: relocation handled in PyCharmCorePluginConfigurator.execute
- For project-level configurables: relocation handled in PyCharmProjectConfigurableStartupActivity.execute
- Introduced two configuration steps to support the relocation mechanism

GitOrigin-RevId: 4db5885cb2f0af0443fb476c376873d847cef2da
2025-05-15 15:51:29 +00:00
Nikita Ashihmin
2e01a59e11 PY-70287 Packages: Add outdated packages for each PackageManager, improve the speed of showing outdated packages in 10x
GitOrigin-RevId: 9e1944aef6a8cdef7d1c3912a256cfc7a679dd3f
2025-05-14 21:13:59 +00:00
Timur Malanin
299a6fbfc4 Remove ordering attribute from PythonRunner
Allow external plugins to provide custom Python runners by removing the ordering attribute.
This change enables plugins to override default Python runner behavior by registering
their own implementations without being affected by the fixed ordering.


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

GitOrigin-RevId: 8328a4d696cfdd91882bcb386eb204f67cd4f434
2025-05-14 19:50:05 +00:00
David Lysenko
d1e753718b [pycharm] PY-79031 Implement uv run configuration
GitOrigin-RevId: 7429caa0505884fdf7b6a225365b02e542c1b4d4
2025-05-13 19:16:24 +00:00
Natalia.Murycheva
f25e6ca981 [PyCharm Cosmetics] PY-80790 Memory Settings Page: Fixed remarks from the tech writer
GitOrigin-RevId: 21bddda75df4b0b1b642e9a163ec34f3bb04d656
2025-05-12 17:43:34 +00:00
Natalia.Murycheva
3981332614 [PyCharm Cosmetics] PY-80790 Make Memory Settings Easier to Discover by Adding Them to the Main Settings Page
* Added the "Memory Usage" settings page. Part 1: only the UI part

GitOrigin-RevId: 41e72845adf25b5248e12ce9fc86eeaec6906647
2025-05-10 00:04:08 +00:00
Vitaly Legchilkin
bf15f6ddf9 [python] PythonPackageSpecification refactoring (PY-80378)
* PythonRepositoryPackageSpecification replaces existing PythonSimplePackageSpecification/PythonPackageSpecification:

* sealed class PythonPackageInstallRequest added for package installation. Almost all managers are able to work only with simple specifications except pip. Pip could install packages by location uri or all packages via "pip install" without package name specification.

* versionSpec type was changed from String to PyRequirementVersionSpec

* move buildPackageDetails from PythonRepositoryManager to PyPackageRepository, to avoid "is CondaPackageRepository" abstraction leaks.

* make the repository field in InstalledPackage optional (might be installed packages without any repository, installed by url). Got rid of PyEmptyPackagePackageRepository / EmptyPythonPackageDetails.

* CondaRepositoryManger cleanup, there is no any custom logic there except own caches.

* fix CompositePythonPackageManager leaks: 
 - keep only distinct repositories from all managers (PyPI was duplicated)
 - await for all launchManagerRefresh() calls, previously it was not awaited and has returned empty packages on refreshCaches() 

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

GitOrigin-RevId: 83cfce57b12cd90a0a274bf2d70ecedc1b99d05d
2025-05-09 22:01:02 +00:00
Alexander.Kass
88a72ce857 DS-6974 ds: action for fast conda setup
GitOrigin-RevId: be77f9d51333c856aed97c06e527de97b3106919
2025-05-09 08:19:31 +00:00
Ilya.Kazakevich
10375c6f78 Python: drop unused symbols
GitOrigin-RevId: eea963b2d4b226041ffcd194bd8345d0212c45d9
2025-05-08 19:30:13 +00:00
Mikhail Golubev
332bd3855e PY-4330 Make Optimize Imports work with the legacy suppressId for PyUnresolvedReferencesInspection
GitOrigin-RevId: 9da579ade7344a945793017ce52feff1de89c545
2025-05-08 17:01:37 +00:00
Mikhail Golubev
2faeaa0da8 PY-4330 PY-77891 Extract PyUnusedImportInspection from PyUnresolvedReferencesInspection
Make the inspection for unused imports runForWholeFile=true to stop its blinking.

GitOrigin-RevId: 967e95edc229d021420b176f56a5d4b0fb44c3d4
2025-05-08 17:01:37 +00:00
Vitaly Legchilkin
a697724acc [python] merge with latest changes (PY-79451)
GitOrigin-RevId: a50334e1c235d37ed64a61ae298dc25949014c89
2025-05-08 01:15:49 +00:00
Vitaly Legchilkin
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
ekaterina.itsenko
85b82d0ca2 [pycharm] PY-79461 PY-79531 Debugger: add progress bar
GitOrigin-RevId: 1008967b0dc07850d0d4f84018035915a9416e49
2025-05-02 22:53:48 +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
Mikhail Golubev
eaa5759fa9 PY-79488 Extract BaseProjectModelResolver for sharing Poetry and uv implementations
GitOrigin-RevId: 88b0bfa3db00b121eba9522b442ad1a0c6329a9d
2025-04-29 15:29:41 +00:00
Mikhail Golubev
a3d51f7191 PY-79488 Prototype UV project model support
GitOrigin-RevId: 9ef8405f2e617541771275f5dd79106a0063380c
2025-04-29 15:29:41 +00:00
Ilya.Kazakevich
60420e1175 Python: unused symbols removed
GitOrigin-RevId: 9847e831bcc3535fb2cc65f15567ea5ea8abe0ac
2025-04-29 15:04:39 +00:00
Ilya.Kazakevich
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
Ilya.Kazakevich
0c9449e71d PY-77808: fix typo
GitOrigin-RevId: bdbff28de8bbb309024b46885a881081cd6280b8
2025-04-16 03:57:16 +00:00
Ilya.Kazakevich
e65fc161f5 Simple project creation refactoring (req. for PY-78817).
`createVenvAndSdk` introduced (extracted from the Misc project) to be reused by Tour.

GitOrigin-RevId: 0c155510dbde5dfa7403160961816e9a32131e57
2025-04-15 04:41:20 +00:00