Skip to content

Commit d7a7a77

Browse files
committed
split PythonPackageManager implementation for new version
1 parent 9e966d8 commit d7a7a77

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.providers
5+
6+
import com.intellij.openapi.module.Module
7+
import com.jetbrains.python.packaging.management.PythonPackageManager
8+
import com.jetbrains.python.sdk.PythonSdkUtil
9+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider
10+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
11+
12+
internal class PythonModuleDependencyProvider : ModuleDependencyProvider {
13+
override fun isApplicable(module: Module): Boolean =
14+
PythonSdkUtil.findPythonSdk(module) != null
15+
16+
override fun createParams(module: Module): DidChangeDependencyPathsParams {
17+
val dependencies = mutableListOf<String>()
18+
19+
PythonSdkUtil.findPythonSdk(module)?.let { sdk ->
20+
PythonSdkUtil.getSitePackagesDirectory(sdk)?.let { sitePackagesDir ->
21+
val packageManager = PythonPackageManager.forSdk(module.project, sdk)
22+
packageManager.listInstalledPackagesSnapshot().forEach { pkg ->
23+
val packageDir = sitePackagesDir.findChild(pkg.name)
24+
if (packageDir != null) {
25+
dependencies.add(packageDir.path)
26+
}
27+
}
28+
}
29+
}
30+
31+
return DidChangeDependencyPathsParams(
32+
moduleName = getWorkspaceFolderPath(module),
33+
runtimeLanguage = "python",
34+
paths = dependencies,
35+
includePatterns = emptyList(),
36+
excludePatterns = emptyList()
37+
)
38+
}
39+
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/PythonModuleDependencyProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal class PythonModuleDependencyProvider : ModuleDependencyProvider {
1919
PythonSdkUtil.findPythonSdk(module)?.let { sdk ->
2020
PythonSdkUtil.getSitePackagesDirectory(sdk)?.let { sitePackagesDir ->
2121
val packageManager = PythonPackageManager.forSdk(module.project, sdk)
22-
packageManager.listInstalledPackagesSnapshot().forEach { pkg ->
22+
packageManager.installedPackages.forEach { pkg ->
2323
val packageDir = sitePackagesDir.findChild(pkg.name)
2424
if (packageDir != null) {
2525
dependencies.add(packageDir.path)

0 commit comments

Comments
 (0)