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.
(cherry picked from commit bdfa73ba043d3584c6ba1871bca7a464a550bc21)
KT-CR-19191
GitOrigin-RevId: 53f874c18d67d33083cf8508a58be257b5e89ab7
This package (aka PyV3) fixes several issues, including
1. Lots of `DirectoryProjectGenerator` misuses: We now create UI and settings with `ProjectGeneratorPeer`: no more manuals casts in callback
2. Decouples project generation from UI: Settings aren't aware of UI but generate a project instead. Settings are mapped to the UI using Kotlin DSL UI
3. Kotlin DSL UI panel enables validation
4. `PySdkCreator` (an interface implemented by all "v2" SDK panels) now accepts `Module`, so we can provide it Poetry
The whole machinery of `PythonGenerateProjectCallback` (a pack of manual casts only mother could love) is completely deprecated and will be removed soon.
Lots of small changes towards `suspend` functions, Kotlin DSL UI and `Flow` decrease the technical debt.
Merge-request: IJ-MR-144503
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>
GitOrigin-RevId: 21963e843b0ae67c71a6fc5ea1229cb0f57915a9
Try to install Poetry and Pipenv if they are not found
Merge-request: IJ-MR-141839
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>
GitOrigin-RevId: 535426090df23b358ba61a9e21c2f0954c201945
com.intellij.ideaProjectStructure.slow.RepositoryLibrariesConfigurationConsistencyTest.sources are present in libraries for navigation
GitOrigin-RevId: 2b026f7ca865645a7d7791b6145d90563a05b45e
Split a part of QML plugin with core functionality for paths detection and
with icons specific to Qt file types.
For now the functionality is used in CLion and Python plugin.
This change allows to open `.ui` files with detected `designer` tool which didn't
work in CLion before.
The icons are also updated to the more up-to-date format which honors new UI.
IJ-CR-107960
GitOrigin-RevId: dffc1706197ebc568db43ff85f324c1520e919f6
- new entry point to python package management: PythonPackageManager
- new internal package representation entities
- target-based process running to support remote interpreters
- initial support for the new api on Python Packages toolwindow
- initial support for conda on the toolwindow
- new cache for PyPI packages, caches for python/conda packages
- Python Packages toolwindow and service refactoring
- coroutine-based PyPI cache update on startup
GitOrigin-RevId: 167c32229eb669c5348ba930b35008bee9e51914