Freigeben über


Sessions Python Plug-In-Migrationshandbuch - Mai 2025

Die SessionsPythonPlugin Version wurde aktualisiert, um die neueste Version (2024-10-02-Preview) der Dynamischen Sitzungs-API für Azure Code Interpreter zu verwenden. Die neue API hat bahnbrechende Änderungen eingeführt, die sich in der öffentlichen API-Oberfläche des Plug-Ins widerspiegeln.

Dieser Migrationsleitfaden hilft Ihnen, Ihren vorhandenen Code zur neuesten Version des Plug-Ins zu migrieren.

Die Plug-In-Initialisierung

Die Signatur des Plug-In-Konstruktors wurde geändert, um ein CancellationToken Argument für die authTokenProvider Funktion zu akzeptieren. Mit dieser Änderung können Sie den Tokengenerierungsprozess bei Bedarf abbrechen:

// 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);

Die UploadFileAsync-Methode

Die UploadFileAsync Methodensignatur wurde geändert, um den Zweck der Parameter besser darzustellen:

// 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);

Die DownloadFileAsync-Methode

Ebenso hat sich die DownloadFileAsync Methodensignatur geändert, um den Zweck der Parameter besser darzustellen:

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

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

Die ExecuteCodeAsync-Methode

Die ExecuteCodeAsync Methodensignatur wurde geändert, um eine strukturierte Methode zum Arbeiten mit Ausführungsergebnissen bereitzustellen:

// 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;

Die SessionsRemoteFileMetadata-Klasse

Die SessionsRemoteFileMetadata Modellklasse, die von den UploadFileAsync Methoden ListFilesAsync verwendet wird, wurde aktualisiert, um die Metadaten von Remotedateien und Verzeichnissen besser darzustellen:

// 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;