Commit Graph

205 Commits

Author SHA1 Message Date
Lenar Sharipov
72008782e5 Cherry-pick 8328a4d6. Previously reviewed in IJ-CR-165420.
(cherry picked from commit 236c79574c71aa3182ed5435221ccec6db3e7012)

IJ-CR-165656

GitOrigin-RevId: 280e16f2f977722b0bfd63eef74a1fc1b6e7d7b9
2025-06-13 17:19:17 +00:00
Morgan Bartholomew
afcd601e62 [python] PY-78219 bundle django stubs in free mode
GitOrigin-RevId: c6b746dee1c9b96d6a4d6efc8b0f2d06cd8e68e1
2025-06-10 09:33:36 +00:00
David Lysenko
062b92c4e3 [pycharm] PY-79031 Backport fix
GitOrigin-RevId: 02ee385f5c6ab97591ef8782deb2c23925e373d8
2025-05-19 16:56:50 +00:00
Vitaly Legchilkin
c5ca662b4b [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)

(cherry picked from commit 0bbc5a7802826674140ca1c80be27b6cd7d0f59e)

GitOrigin-RevId: d3b6486ca9a24ecd7188e8c5308fb38aae5ed318
2025-05-08 12:48:27 +00:00
Aleksandr Sorotskii
06e89114d0 PY-80062: Cherry-pick from the master (all three commits)
fix displaying unavailable python run configurations from pro tier; start with django; PY-80062

Merge-request: IJ-MR-159510, IJ-MR-159657.,  IJ-CR-159849
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

PY-80062: ignore Django facet (WIP)

PY-80062: Disable "locked" configs in PyProf.

we might have two configs in prof otherwise

GitOrigin-RevId: c3b2d2c9cf2981b207408a1c5357d2331420c2bc
2025-04-09 22:50:23 +00:00
David Lysenko
6f7c643cfd [pycharm] PY-79448 Add a feature flag to prevent poetry lock from being run
GitOrigin-RevId: 4737b3616be6cf6fd12249205a7c1d26a21a2923
2025-04-07 18:28:35 +00:00
Vitaly Legchilkin
3a40a9b2c0 [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

(cherry picked from commit 4782bc52fcd23775b51903ae05f2575f574401cc)

GitOrigin-RevId: d57c085b47e1e51b4a836d3a588423d335fb96a4
2025-03-25 21:47:47 +00:00
Aleksandr Sorotskii
2755f23c71 support for uv configuration in idea sdk management
(cherry picked from commit 17207321c24bf3746742648efac8163b39aa88ef)

IJ-MR-157567

GitOrigin-RevId: e8d1fb76c39e86bbb4aea349247d80ab2f5131c4
2025-03-25 19:57:11 +00:00
Vitaly Legchilkin
52277ce7f1 [python] dependencies highlight and completion in pyproject.toml fix (PY-72985)
* use module sdk instead of project sdk in dependency completion
* remove dependency on the "requirements.txt" in the UnsatisfiedRequirementInspection (might be also pyproject.toml)
* move poetry-related things to own package


(cherry picked from commit 878ad4c419ed8025aa27bca2357ec7bed2e26f3c)

IJ-MR-157831

GitOrigin-RevId: 3f47697fe439ac187856321d28739d8109efa6e0
2025-03-18 23:55:41 +00:00
Vitaly Legchilkin
9fb764cfb1 [python] update plugin-content.yaml for PythonCore (PY-60410)
(cherry picked from commit 0c28f54e8e9857677e999979e3c8fc161b3f9951)

GitOrigin-RevId: d90393e989e5ba8a43c543944a2f948dd63adca6
2025-03-13 19:20:41 +00:00
Vitaly Legchilkin
44da124ea0 [python] Support Hatch SDK (PY-60410)
* add new / select existing for local sdks
* create a new project with hatch sdk
* open hatch-managed project

(cherry picked from commit 86e970a39bc44cec34be7c82717806fc4d0009c4)

GitOrigin-RevId: 305e5363337e9120261f72e964e7d9e3c1a62c7c
2025-03-13 19:20:41 +00:00
Natalia.Murycheva
0e76ead90e [PyCharm] PY-77597 Re-order the "New File or Directory" options #PY-77597 Fixed
* Move Python-specific file types up in the "NewGroup" actions group
* Rename several actions so that their naming is aligned with the corresponding actions' names in IntelliJ platform


(cherry picked from commit af828c30daa801c0ca52c1271be45279946e34f0)

IJ-CR-156998

GitOrigin-RevId: d662a0a7ee4f7428acb119512d3dad68a27eceae
2025-03-07 17:52:27 +00:00
David Lysenko
38b2c94d11 [pycharm] Address feedback
GitOrigin-RevId: c2bb9f5953eae013d16e7a30d41053541c3406ab
2025-02-28 22:24:39 +00:00
Nikita Ermolenko
f44b1848c9 JBAI-11476: Update feature provider namespaces and ML model version
Removed unnecessary namespace separators in feature providers to simplify definitions. Updated the ML model dependency from "lilac-coua" to "coral-panda" with corresponding artifact references. Adjusted typing feature keys for consistency.


(cherry picked from commit ef5561233dee5c13b7ad304bfa0fd5399d30eafd)

IJ-CR-156068

GitOrigin-RevId: c49ff1b73a56009e1db24a0e993fa6cc52a0d87f
2025-02-26 19:37:27 +00:00
Vladimir.Koshelev
268bc9307f [python] move PyProjectScopeBuilder to pycharm community customization
GitOrigin-RevId: fb38f3038a19bd66302920ce435d03da891a5fb5
2025-02-17 16:28:02 +00:00
Vitaly Legchilkin
eb4354215c [project-libs] add Semantic Version 2.0 library (io.github.z4kn4fein:semver-jvm) on project level (PY-60410)
It implements the full semantic version 2.0.0 specification and provides the ability to parse, compare, and increment semantic versions along with validation against constraints (C) author

+ add io.github.z4kn4fein:semver-jvm:2.0.0 as library on project level
+ switch module-local dependency for RustRover to the project-level.
+ add to the python.core plugin as a dependency

GitOrigin-RevId: f95154ba8d99b91687bd02fc952281aa5f05f0a5
2025-02-09 12:28:45 +00:00
Aleksandr Sorotskii
42b6334183 pycharm uv support survey; #PY-78501 Fixed
GitOrigin-RevId: 314259d784d9cbf471a661ee51aa337d312fd613
2025-02-06 13:40:10 +00:00
Mikhail Golubev
fc8b4ca91a PY-54269 Set up cross-module dependencies using the existing "transferred roots" mechanism
Namely, whenever there is a `sys.path` entry or a user-added path pointing
to the root of another project module, instead of configuring a source root
for it, we now set up the corresponding module dependency and save it
as a "transferred root" in additional data alongside extra directories
configured as source roots.

This POC solution has a number of limitations:
- A module dependency is set up only if the corresponding module
has already been added to the project. Modules are added using
"Attach to project" as before.
- Since detecting modules is happening on the interpreter introspection
phase, if project A depends on project B, once the module B is actually
configured as an IJ module, one needs to restart SDK update for project
A's SDK to detect the dependency.
- Detecting module dependencies this way requires having a configured
project interpreter for each dependent module, which might not be
practical for large projects, such as grazie-ml.
- It doesn't play well with manual editing of module dependencies in
settings.

Overall, this workaround works well with an existing multi-module project,
where a new subproject with its own SDK and module dependencies needs to
be added as an IJ module. But ideally we need to rely on the actual
project configuration files, not on runtime values of `sys.path`, and
make the workflow of configuring all project modules at once simpler.

A registry key "python.detect.cross.module.dependencies", disabled by default,
activates the feature.

As part of the feature, I also disabled configuring source roots for
`sys.path` entries not belonging to the current module. It leads
to a confusing situation where multiple modules have a content root
(with a single source root) pointing to the same directory in another
module. In a multi-module setting, it can happen if several modules
depend on some subproject that has not yet been configured as an IJ
module.

GitOrigin-RevId: 47e832edeeea21f5206c981bd604a6012100e9da
2025-02-04 22:07:19 +00:00
Ilya.Kazakevich
6b6658fbc9 Python: make system python service available from community.
We make it a part of PythonCore module to use it from community

GitOrigin-RevId: ea6b00b6ac1a24478f9ff74cb34beffab0942089
2025-02-03 22:07:16 +00:00
Aleksandr Sorotskii
e0e9e611a6 support for listing uv provided pythons PY-77537
GitOrigin-RevId: 7003a66ba729d7565c1cf876198d85d45d025659
2025-02-03 17:10:53 +00:00
Ilya.Kazakevich
d38bf97b98 Python: introduce module for tool to create virtual envs.
This tool supports remote eels.

GitOrigin-RevId: d4f43a782435cef6afa66c92d6d71596269c9ea1
2025-02-02 05:05:52 +00:00
Ilya.Kazakevich
9d33ede5a9 Python: introduce ExecService.
This service should be used to execute one-shot processes (when you are only interested in execute-and-get-result).
It also supports simple helpers.

Code is fully Eel-compatible.

See `ExecService` and its showcase as an entry.

GitOrigin-RevId: 38f04914667b9b6c979c3cfe5acdd48718a75229
2025-01-31 06:21:41 +00:00
Ilya.Kazakevich
dafe83d2c7 Python: temporary hack: Move SPP to community to break cyclic dependency.
Will move it back soon.

GitOrigin-RevId: b2f032dbc9926b2e23c0438d2ce522985c7a6ad4
2025-01-30 17:45:52 +00:00
Aleksandr Sorotskii
e9f5ddd211 cleanup python package manager internal interface. squash redundant test python package manager implementations.
GitOrigin-RevId: e1f80d690a5c67868312e626e79d7fbd73e06808
2025-01-29 19:52:47 +00:00
Ilya.Kazakevich
1b8625925c Python: remove package attr from PythonCore and move its modules into right packages.
PythonCore consists of several v1 modules (they aren't v2 modules in its content, but bare v1 modules to be packed directly in it).

They used to have `com.jetbrains` package to match plugin's package.

I now removed plugin package and moved modules to the appropriate packages.

https://jetbrains.slack.com/archives/CMDBCUBGE/p1738073999835749?thread_ts=1738008244.276339&cid=CMDBCUBGE

GitOrigin-RevId: 5702998a23598d4aa363064025afad8951faf7f7
2025-01-29 02:56:22 +00:00
Ilya.Kazakevich
962b52d8a0 Python: installer to the separate module.
We need python services not to depend on community.impl

GitOrigin-RevId: e0259aba8d41bc02aa347e3d1d77697162fcc9ce
2025-01-29 00:07:48 +00:00
Ilya.Kazakevich
3cbe1ec1ee PY-78775: add poetry to python bundle.
poetry is v1 module, it doesn't go to the plugin content (because plugin depends on it), so building system doesn't have an idea how to include it: we must include it manually

GitOrigin-RevId: f214eafb7bad150c0a25443b0cabfb11b1cebc92
2025-01-28 17:13:31 +00:00
Timur Malanin
64a3b60587 PY-72070 Refactor and Simplify PyPackageRequirementsInspection Implementation. Refactored PyPackageRequirementsInspection and inner classes to Kotlin, leveraging PythonPackageManager for better abstraction and efficiency.
Introduced PackageManagerServiceInterface to standardize package management across services, replacing direct use of PyPackagingToolWindowService with PackageManagerHolder.

GitOrigin-RevId: ff93b45ed0603d4f26d9c698542653d4aa38842e
2025-01-22 00:47:37 +00:00
Yuriy Artamonov
ccd9905d21 [registry] IJPL-175398 Move python.* keys to Python plugin
GitOrigin-RevId: 11e0be8d1897ecf34dad0dac9245a8c0b7987bbf
2025-01-19 18:52:06 +00:00
Nikolay Chashnikov
d435368611 [remote dev] automatically put plugin modules compatible with the frontend process to separate JARs (IJPL-164312)
If a module is compatible with the frontend process (i.e., doesn't depend on 'intellij.platform.backend' module), it's now automatically put to a separate JAR: lib/modules/module.name.jar for content modules, and lib/*-frontend.jar for other modules.

The expected plugin layout is updated for some plugins that we may want to use in the frontend process in the future.

Also, peculiarities of CWM plugin layout are fixed: we don't have two copies of intellij.platform.inline.completion.split and intellij.platform.vcs.common.split modules anymore. The 'package' attribute is removed from backend modules intellij.platform.inline.completion.backend.split and intellij.platform.vcs.backend.split to ensure that they are also put to separate JARs and aren't scrambled, so there is no need to include their dependencies to the scrambling classpath.

GitOrigin-RevId: 05cc64ddff100726a64538000bbde224095adc2c
2025-01-13 13:16:14 +00:00
Vladimir Krivosheev
9485392013 update bazel files
GitOrigin-RevId: c4c38c3273b34ae07b97f31a6f7d9ef80e7d6387
2025-01-12 14:08:41 +00:00
Ilya.Kazakevich
882c455d4d Python: Introduce "Python Services."
See `README.txt`.
The "Python Services" is a new API for PyCharm execution subsystem.

The idea is to build the following mental model:
1. If you need an API -- there should be a service.
2. Each service has a showcase in "tests" root so you can see how it works in real life.
3. Code against interfaces.
4. Only link against those modules/services you really need.
5. No UI, no leaky abstractions in services.

This change introduces two services:
1. `SystemPythonService` to work with CPythons installed on OS.

GitOrigin-RevId: b07df246d1510a02c060fa7a929cf134879c7677
2025-01-11 16:43:37 +00:00
Gleb Marin
d80ad96aee [ml imports ranking] Update ML API version & add an actual ML model
Fix build issues

Fix build issues

Remove redundant extension point

Fix build issues

Fix rebase issues

import rank

# Conflicts:
#	.idea/libraries/jetbrains_ml_models_python_imports_ranking_model.xml
#	.idea/libraries/jetbrains_mlapi_ml_feature_api.xml
#	build/expected/ultimate-content-platform.yaml
#	community/.idea/libraries/jetbrains_mlapi_ml_building_blocks.xml
#	community/.idea/libraries/jetbrains_mlapi_ml_feature_api.xml
#	community/platform/ml-api/intellij.platform.ml.iml
#	community/platform/ml-impl/intellij.platform.ml.impl.iml
#	community/platform/ml-impl/src/com/intellij/platform/ml/impl/logs/fus/IntelliJFusEventRegister.kt
#	community/platform/ml-impl/src/com/intellij/platform/ml/impl/logs/fus/eventFields.kt
#	community/platform/ml-impl/src/com/intellij/platform/ml/impl/tools/logs/IntelliJFusEventRegister.kt
#	community/platform/ml-impl/src/com/intellij/platform/ml/impl/tools/logs/eventFields.kt
#	community/platform/ml-tools/src/com/intellij/platform/ml/tools/logs/fus/IntelliJFusEventRegister.kt
#	community/platform/ml-tools/src/com/intellij/platform/ml/tools/logs/fus/eventFields.kt
#	community/platform/platform-impl/codeinsight-inline/src/com/intellij/codeInsight/inline/completion/ml/TypingSpeedFeatureProvider.kt
#	community/python/intellij.python.ml.features/src/com/intellij/python/ml/features/imports/README.md
#	community/python/intellij.python.ml.features/src/com/intellij/python/ml/features/imports/mlModel.kt
#	community/python/pluginCore/plugin-content.yaml
#	community/python/src/com/jetbrains/python/codeInsight/imports/mlapi/mlAnalysis.kt
#	community/python/src/com/jetbrains/python/codeInsight/imports/mlapi/mlImplementation.kt
#	community/python/src/com/jetbrains/python/codeInsight/imports/mlapi/mlLogs.kt
#	community/python/src/com/jetbrains/python/codeInsight/imports/mlapi/mlTask.kt

Fix some tests

Refactor RelevanceEvaluationFeatures.kt to fix null handling

Improved the handling of `null` cases for `MODULE_SOURCE_TYPE` in `RelevanceEvaluationFeatures.kt`. This ensures more robust feature addition by checking conditions and setting the value accordingly when it's `null`. Minor formatting adjustments were also made.

Update ML model version in project configuration

Changed the Maven artifact ID from "lilac-coua" to "daffy-pony" for the python imports ranking ML model.

Fix some tests

Fix some tests

Fix some tests

Fix some tests

Fix some tests

Update Maven dependencies for JetBrains ML libraries

Update ML model version & fix missing read action

Update ML API version & update Imports Ranking implementation

Update mlapi version


Co-authored-by: Andrey Vokin <andrey.vokin@jetbrains.com>
Co-authored-by: Nikita Ermolenko <ermolenko.dev@gmail.com>

Merge-request: IJ-MR-147271
Merged-by: Gleb Marin <Gleb.Marin@jetbrains.com>

GitOrigin-RevId: 7aa520df915bb8a62263524868a17a984b619728
2025-01-08 12:52:17 +00:00
Vladimir Krivosheev
0bc1cf1557 update bazel files
GitOrigin-RevId: 7320d3eff3aba093692ce66839c720ece6d7c4db
2024-12-30 11:28:24 +00:00
Vladimir Krivosheev
cc667842f7 IJ-CR-146078 do not export intellij.platform.ide.impl
GitOrigin-RevId: 16a29b914bf81d4d5e3cdb43c64b088113a2fcd4
2024-12-30 10:16:07 +00:00
Vladimir Krivosheev
25233df1b1 cleanup - isEmpty
GitOrigin-RevId: 100d69abb6a423556574a72e82508fdb8f5d7fa3
2024-12-27 14:41:14 +00:00
Vladimir Krivosheev
68d99c6550 cleanup
GitOrigin-RevId: 9cb238c220249088bfc75a448eb310b93c7fc45c
2024-12-26 14:56:01 +00:00
Vladimir Krivosheev
a522f96d66 do not export deps blindly (part 3)
GitOrigin-RevId: 7277ece9ded25f1111febc8dccaba9ac8cc75c21
2024-12-22 20:28:42 +00:00
Aleksandr Sorotskii
a068324fbd disable python debugger single port by default; PY-78168
GitOrigin-RevId: e73f477e2424c4c103bfaa676cdf94098170d4b5
2024-12-20 12:39:22 +00:00
Vladimir Krivosheev
98799639aa do not use _test as lib - test targets do not support this
GitOrigin-RevId: f2f49db4294b6a64040dbbd5f1d95e972cbd70a3
2024-12-15 18:32:30 +00:00
Alexey Kudravtsev
10e7677c16 fix "immutable collection modified" warnings
GitOrigin-RevId: bc70a53538fa8eddf59d27197c5b74c3afcffb1b
2024-12-11 16:28:34 +00:00
Andrey Vokin
44b9d24ae8 Revert "MLP-33 IJ Imports Ranking"
This reverts commit 47140fd0301283a10966e14c65df9a08d128ec39.

GitOrigin-RevId: 81fa4946bd76885bcc599dfae9bfb9feaa11fbb3
2024-12-09 21:19:47 +00:00
Andrey Vokin
d2b7ce6435 MLP-33 IJ Imports Ranking
Fix smoke tests

Update ML libraries

Remove kotlin std from classes of a library

Remove redundant extension point

import rank

PY-40997 Typing/Reformatting/Autocomplete lags when stubs for boto3 are installed

set test iteration count to 12


Co-authored-by: Gleb Marin <Gleb.Marin@jetbrains.com>

Merge-request: IJ-MR-150955
Merged-by: Gleb Marin <Gleb.Marin@jetbrains.com>

GitOrigin-RevId: 47140fd0301283a10966e14c65df9a08d128ec39
2024-12-07 16:07:16 +00:00
Ilya.Kazakevich
42cc1cf8af PY-77813: Report new project type broken in NPW.
FUS statistics consists of two parts:
1. Interpreter (i.e "venv" or "conda")
2. Project generator type ("Django" or "Flask")

`com.jetbrains.python.newProjectWizard.collector.PythonNewProjectWizardCollector.GENERATOR_FIELD` was a class without any limitation and `DirectoryProjectGenerator` instance was reported (i.e one for Django).

When migrated to NPW, we:
1. Dropped most old generator classes
2. Called this function providing `this::class` by accident, and it was `CoroutineScope`, so we finished with lots of `CoroutineScope` as generator type in FUS.

We must:
1. Provide old names for project types to preserve statistics.
2. Make it type-safe this time.

We also found that interpreter statistics is nullable for `PySdkCreator` which isn't true: SDK creation statistics is always not null.

So we:
* Introduce interface for project generators that reports "name for the statistics"
* Implement it both for DS and PyCharm by returning class name by default
* Overwrite it for several well-known generators to preserve statistics (use old named of now-deleted classes)
* Make interpreter statistics not null.

GitOrigin-RevId: 37eefb73361ff96dea88e4e2b4c6b291a91e13f0
2024-12-03 02:27:12 +00:00
Timur Malanin
221ea6284a PY-72070 Add a registry key for new logic
GitOrigin-RevId: e4ba7ef985a72006008ba4e377aa2e50385ea0bd
2024-11-29 15:41:13 +00:00
Ilya.Kazakevich
3a8eea0329 [Python]: Drop Jython
GitOrigin-RevId: d21b1c99e58aab59cdb474f893440e3fe61dc6df
2024-11-27 16:10:15 +00:00
Ilya.Kazakevich
1ef66e99af [Python]: Drop PyPy
GitOrigin-RevId: 41608a5a23f6aa5503fdeb8b37b637c7cb96896c
2024-11-27 16:10:15 +00:00
Vladimir Krivosheev
17916c90f8 libraries -> lib, resources, opt-in, test deps
GitOrigin-RevId: db66ee95dcb0f0553b40c9cc56cd6afed8634cdd
2024-11-27 13:53:42 +00:00
Aleksei Kniazev
521953a441 [python] limit custom response to python job survey to 25 symbols (PY-74269)
GitOrigin-RevId: 020574e608d450ebb44fe89b8484e6ebab65e258
2024-11-19 11:56:29 +00:00
Aleksei Kniazev
a0018de22f [python] added internal actions to test python surveys (PY-74269, PY-74269)
GitOrigin-RevId: a6c55625c47592e7c8b6572e887cc50410585451
2024-11-19 11:56:29 +00:00