File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -8,3 +8,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88## [ 1.37.0]
99
1010- Aligned the API package version with the Python Environments extension version.
11+ - Added ` getPackageManager ` to retrieve the registered package manager for an environment.
Original file line number Diff line number Diff line change @@ -1091,6 +1091,14 @@ export interface PythonPackageManagerRegistrationApi {
10911091}
10921092
10931093export interface PythonPackageGetterApi {
1094+ /**
1095+ * Get the registered package manager associated with a Python Environment.
1096+ *
1097+ * @param environment The Python Environment whose package manager is required.
1098+ * @returns The registered package manager, or undefined if no package manager is available.
1099+ */
1100+ getPackageManager ( environment : PythonEnvironment ) : Promise < PackageManager | undefined > ;
1101+
10941102 /**
10951103 * Refresh the list of packages in a Python Environment.
10961104 *
Original file line number Diff line number Diff line change @@ -303,6 +303,10 @@ export class PythonEnvironmentApiImpl implements PythonEnvironmentApi {
303303 }
304304 return manager . manage ( context , options ) ;
305305 }
306+ async getPackageManager ( context : PythonEnvironment ) : Promise < PackageManager | undefined > {
307+ await waitForEnvManagerId ( [ context . envId . managerId ] ) ;
308+ return this . envManagers . getPackageManager ( context ) ;
309+ }
306310 async refreshPackages ( context : PythonEnvironment ) : Promise < Package [ ] | undefined > {
307311 await waitForEnvManagerId ( [ context . envId . managerId ] ) ;
308312 const manager = this . envManagers . getPackageManager ( context ) ;
Original file line number Diff line number Diff line change @@ -94,6 +94,16 @@ for (const profile of profiles) {
9494 assert . ok ( ! packages ?. some ( ( pkg ) => pkg . name === 'requests' ) , 'Package not uninstalled' ) ;
9595 } ) ;
9696
97+ test ( `${ profile . name } Package Manager should list available package versions` , async ( ) => {
98+ const packageManager = await api . getPackageManager ( environment ! ) ;
99+ assert . ok ( packageManager , 'Package manager not available' ) ;
100+ assert . ok ( packageManager . getPackageAvailableVersions , 'Available versions method not available' ) ;
101+
102+ const versions = await packageManager . getPackageAvailableVersions ( environment ! , 'requests' ) ;
103+ assert . ok ( versions , 'Package versions not available' ) ;
104+ assert . ok ( versions . length > 0 , 'No package versions available' ) ;
105+ } ) ;
106+
97107 suiteTeardown ( async ( ) => {
98108 try {
99109 await deleteEnvironmentDirectory ( vscode . Uri . joinPath ( workspaceUri , profile . environmentDirectory ) ) ;
You can’t perform that action at this time.
0 commit comments