Files
openide/python/python-exec-service/execService.python/BUILD.bazel
T
Alexey Katsman f5ebe0c614 PY-89784 Move v2 add-interpreter abstractions to python-sdk
The v2 "Add Python Interpreter" abstractions (FileSystem, PathHolder, the
PythonSelectableInterpreter hierarchy, SdkWrapper, TargetPanelExtension)
lived in python-community-impl, but callers below that module (hatch,
pipenv, poetry modules) cannot reach them. Since
python-community-impl already depends on python-sdk, moving them down
clears the way.

What moves to python-sdk:

* PathHolder (sealed interface plus nested Eel/Target).
* FileSystem<P : PathHolder>: the interface only, no longer sealed. The
  two implementations stay in python-community-impl and become top-level
  EelFileSystem and TargetFileSystem instead of FileSystem.Eel/Target
  nested classes.
* SdkWrapper, TargetPanelExtension.
* PythonSelectableInterpreter sealed hierarchy (Existing, Detected,
  ManuallyAdded, Installable) plus MaybeSystemPython.

To keep the sealed hierarchy in python-sdk without dragging PySdkToInstall
(and its installer module) along, InstallableSelectableInterpreter.sdk is
typed as a new InstallablePythonSdk marker interface. PySdkToInstall
implements that marker; readers still operate on the parent Sdk so call
sites are unchanged.

Also pruned stale runtime descriptor deps on intellij.python.sdk from
services.shared and execService.python. Neither module uses python-sdk in
source anymore; the leftover XML entries formed a content-module cycle
that was blocking python-sdk from declaring services.shared as a runtime
dep.

GitOrigin-RevId: f1be13c158171f3f766fecc83a4be4917ec6ee51
2026-05-18 15:28:54 +00:00

55 lines
2.1 KiB
Python

### auto-generated section `build intellij.python.community.execService.python` start
load("@rules_jvm//:jvm.bzl", "jvm_library")
jvm_library(
name = "execService.python",
module_name = "intellij.python.community.execService.python",
visibility = ["//visibility:public"],
srcs = glob(["src/**/*.kt", "src/**/*.java", "src/**/*.form"], allow_empty = True),
resources = glob(["resources/**/*"]),
resource_strip_prefix = "resources",
deps = [
"@lib//:kotlin-stdlib",
"//python/python-exec-service:community-execService",
"//python/openapi:community",
"@lib//:jetbrains-annotations",
"//libraries/kotlinx/coroutines/core",
"//platform/eel",
"//platform/eel-provider",
"//python/impl.helperLocator:community-helpersLocator",
"//platform/util",
"//platform/core-api:core",
]
)
jvm_library(
name = "execService.python_test_lib",
testonly = True,
module_name = "intellij.python.community.execService.python",
visibility = ["//visibility:public"],
srcs = glob([], allow_empty = True),
runtime_deps = [
":execService.python",
"//python/python-exec-service:community-execService_test_lib",
"//python/openapi:community_test_lib",
"//libraries/kotlinx/coroutines/core:core_test_lib",
"//platform/eel:eel_test_lib",
"//platform/eel-provider:eel-provider_test_lib",
"//python/impl.helperLocator:community-helpersLocator_test_lib",
"@lib//:junit5",
"//platform/testFramework/junit5",
"//platform/testFramework/junit5:junit5_test_lib",
"//platform/testFramework/junit5/eel",
"//platform/testFramework/junit5/eel:eel_test_lib",
"@lib//:junit5Params",
"//platform/util:util_test_lib",
"//platform/core-api:core_test_lib",
]
)
### auto-generated section `build intellij.python.community.execService.python` end
### auto-generated section `iml intellij.python.community.execService.python` start
exports_files([
"intellij.python.community.execService.python.iml",
], visibility = ["//visibility:public"])
### auto-generated section `iml intellij.python.community.execService.python` end