Partager via


Guide de migration des sessions du plugin Python - Mai 2025

Le SessionsPythonPlugin a été mis à jour pour utiliser la dernière version (2024-10-02-preview) de l’API de sessions dynamiques de l’interpréteur de code Azure. La nouvelle API a introduit des modifications incompatibles, qui se reflètent dans l'interface publique de l'API du plugin.

Ce guide de migration vous aidera à migrer votre code existant vers la dernière version du plug-in.

Initialisation du plug-in

La signature du constructeur de plug-in a changé pour accepter un CancellationToken argument pour la authTokenProvider fonction. Cette modification vous permet d’annuler le processus de génération de jetons si nécessaire :

// Before
static async Task<string> GetAuthTokenAsync()
{
    return tokenProvider.GetToken();
}

// After
static async Task<string> GetAuthTokenAsync(CancellationToken ct)
{
    return tokenProvider.GetToken(ct);
}

var plugin = new SessionsPythonPlugin(settings, httpClientFactory, GetAuthTokenAsync);

Méthode UploadFileAsync

La UploadFileAsync signature de méthode a changé pour mieux représenter l’objectif des paramètres :

// Before
string remoteFilePath = "your_file.txt";
string? localFilePath = "C:\documents\your_file.txt";

await plugin.UploadFileAsync(remoteFilePath: remoteFilePath, localFilePath: localFilePath);

// After
string remoteFileName = "your_file.txt";
string localFilePath = "C:\documents\your_file.txt";

await plugin.UploadFileAsync(remoteFileName: remoteFileName, localFilePath: localFilePath);

Méthode DownloadFileAsync

De même, la signature de méthode DownloadFileAsync a changé pour mieux représenter l’objectif des paramètres :

// Before
string remoteFilePath = "your_file.txt";
await plugin.DownloadFileAsync(remoteFilePath: remoteFilePath);

// After
string remoteFileName = "your_file.txt";
await plugin.DownloadFileAsync(remoteFileName: remoteFileName);

Méthode ExecuteCodeAsync

La ExecuteCodeAsync signature de méthode a changé pour fournir un moyen structuré d’utiliser les résultats d’exécution :

// Before
string result = await plugin.ExecuteCodeAsync(code: "print('Hello, world!')");

// After
SessionsPythonCodeExecutionResult result = await plugin.ExecuteCodeAsync(code: "print('Hello, world!')");
string status = result.Status;
string? executionResult = result.Result?.ExecutionResult;
string? stdout = result.Result?.StdOut;
string? stderr = result.Result?.StdErr;

La classe SessionsRemoteFileMetadata

La SessionsRemoteFileMetadata classe de modèle, utilisée par les méthodes UploadFileAsync et ListFilesAsync, a été mise à jour pour mieux représenter les métadonnées des fichiers et répertoires distants :

// Before
SessionsRemoteFileMetadata file = await plugin.UploadFileAsync(...);
string fileName = file.Filename;
long fileSize = file.Size;
DateTime? lastModified = file.LastModifiedTime;

// After
SessionsRemoteFileMetadata file = await plugin.UploadFileAsync(...);
string name = file.Name;
long? size = file.SizeInBytes;
DateTime lastModified = file.LastModifiedAt;