Add cell_ids for ipynb with nbformat >= 4.5 (#134835)

This commit is contained in:
Don Jayamanne
2021-10-12 09:35:05 -07:00
committed by GitHub
parent f391253044
commit 79a3586d6c
6 changed files with 111 additions and 11 deletions
+10 -5
View File
@@ -78,11 +78,7 @@ export class NotebookSerializer implements vscode.NotebookSerializer {
}
public serializeNotebookToString(data: vscode.NotebookData): string {
const notebookContent: Partial<nbformat.INotebookContent> = data.metadata?.custom || {};
notebookContent.cells = notebookContent.cells || [];
notebookContent.nbformat = notebookContent.nbformat || 4;
notebookContent.nbformat_minor = notebookContent.nbformat_minor ?? 2;
notebookContent.metadata = notebookContent.metadata || { orig_nbformat: 4 };
const notebookContent = getNotebookMetadata(data);
notebookContent.cells = data.cells
.map(cell => createJupyterCellFromNotebookCell(cell))
@@ -95,3 +91,12 @@ export class NotebookSerializer implements vscode.NotebookSerializer {
return JSON.stringify(sortObjectPropertiesRecursively(notebookContent), undefined, indentAmount) + '\n';
}
}
export function getNotebookMetadata(document: vscode.NotebookDocument | vscode.NotebookData) {
const notebookContent: Partial<nbformat.INotebookContent> = document.metadata?.custom || {};
notebookContent.cells = notebookContent.cells || [];
notebookContent.nbformat = notebookContent.nbformat || 4;
notebookContent.nbformat_minor = notebookContent.nbformat_minor ?? 2;
notebookContent.metadata = notebookContent.metadata || { orig_nbformat: 4 };
return notebookContent;
}