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
This commit is contained in:
Ilya.Kazakevich
2025-06-07 22:05:56 +00:00
committed by intellij-monorepo-bot
parent fd2ad62299
commit 2e14347844
55 changed files with 606 additions and 229 deletions
@@ -21,6 +21,7 @@ jvm_library(
"//python/openapi:community",
"@lib//:kotlinx-coroutines-core",
"//python/python-sdk:sdk",
"//python/python-exec-service/execService.python",
],
runtime_deps = [":python-community-services-internal-impl_resources"]
)
@@ -46,6 +47,8 @@ jvm_library(
"//python/python-sdk:sdk",
"//python/python-sdk:sdk_test_lib",
"//python/junit5Tests-framework:community-junit5Tests-framework_test_lib",
"//python/python-exec-service/execService.python",
"//python/python-exec-service/execService.python:execService.python_test_lib",
],
runtime_deps = [":python-community-services-internal-impl_resources"]
)
@@ -21,5 +21,6 @@
<orderEntry type="library" name="kotlinx-coroutines-core" level="project" />
<orderEntry type="module" module-name="intellij.python.sdk" />
<orderEntry type="module" module-name="intellij.python.community.junit5Tests.framework" scope="TEST" />
<orderEntry type="module" module-name="intellij.python.community.execService.python" />
</component>
</module>
@@ -3,5 +3,6 @@
<module name="intellij.python.community"/>
<module name="intellij.python.psi.impl"/>
<module name="intellij.python.sdk"/>
<module name="intellij.python.community.execService.python"/>
</dependencies>
</idea-plugin>
@@ -4,6 +4,7 @@ package com.intellij.python.community.services.internal.impl
import com.intellij.platform.eel.EelPlatform
import com.intellij.platform.eel.provider.asNioPath
import com.intellij.platform.eel.provider.getEelDescriptor
import com.intellij.python.community.execService.python.validatePythonAndGetVersion
import com.intellij.python.community.services.internal.impl.PythonWithLanguageLevelImpl.Companion.concurrentLimit
import com.intellij.python.community.services.internal.impl.PythonWithLanguageLevelImpl.Companion.createByPythonBinary
import com.intellij.python.community.services.shared.PythonWithLanguageLevel
@@ -11,7 +12,6 @@ import com.jetbrains.python.PythonBinary
import com.jetbrains.python.Result
import com.jetbrains.python.errorProcessing.PyResult
import com.jetbrains.python.psi.LanguageLevel
import com.jetbrains.python.validatePythonAndGetVersion
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.coroutineScope