Skip to content

Commit cf472f0

Browse files
committed
Merge remote-tracking branch 'origin/main' into jk/feat/integration-list-from-project
2 parents ccb2196 + 34d2a8c commit cf472f0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1051
-65
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
2727

2828
- name: Setup Node.js
29-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
29+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
3030
with:
3131
cache: 'npm'
3232
node-version-file: '.nvmrc'
@@ -53,7 +53,7 @@ jobs:
5353
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
5454

5555
- name: Setup Node.js
56-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
56+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
5757
with:
5858
cache: 'npm'
5959
node-version-file: '.nvmrc'
@@ -80,7 +80,7 @@ jobs:
8080
fetch-depth: 0
8181

8282
- name: Install qlty
83-
uses: qltysh/qlty-action/install@6bbb1add7432c45a3fd35a824ea69dc5bef27967
83+
uses: qltysh/qlty-action/install@92420f3093ba65970fed22ce5f162ecb8a5c1700
8484

8585
- name: Run qlty check
8686
run: qlty check
@@ -101,7 +101,7 @@ jobs:
101101
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
102102

103103
- name: Setup Node.js
104-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
104+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
105105
with:
106106
cache: 'npm'
107107
node-version-file: '.nvmrc'
@@ -151,7 +151,7 @@ jobs:
151151
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
152152

153153
- name: Setup Node.js
154-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
154+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
155155
with:
156156
cache: 'npm'
157157
node-version-file: '.nvmrc'
@@ -175,7 +175,7 @@ jobs:
175175
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
176176

177177
- name: Setup Node.js
178-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
178+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
179179
with:
180180
cache: 'npm'
181181
node-version-file: '.nvmrc'
@@ -199,7 +199,7 @@ jobs:
199199
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
200200

201201
- name: Setup Node.js
202-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
202+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
203203
with:
204204
cache: 'npm'
205205
node-version-file: '.nvmrc'
@@ -223,7 +223,7 @@ jobs:
223223
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
224224

225225
- name: Setup Node.js
226-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
226+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
227227
with:
228228
cache: 'npm'
229229
node-version-file: '.nvmrc'

.github/workflows/copilot-setup-steps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
4040

4141
- name: Use Node ${{env.NODE_VERSION}}
42-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
42+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
4343
with:
4444
node-version-file: '.nvmrc'
4545
registry-url: 'https://npm.pkg.github.com'

.github/workflows/deps.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
2525

2626
- name: Setup Node.js
27-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
27+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
2828
with:
2929
cache: 'npm'
3030
node-version-file: '.nvmrc'
@@ -57,7 +57,7 @@ jobs:
5757
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
5858

5959
- name: Setup Node.js
60-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
60+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
6161
with:
6262
node-version-file: '.nvmrc'
6363
cache: 'npm'

.github/workflows/package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
2626

2727
- name: Setup Node.js
28-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
28+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
2929
with:
3030
cache: 'npm'
3131
node-version-file: '.nvmrc'

build/esbuild/build.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,18 @@ async function buildAll() {
331331
path.join(extensionFolder, 'dist', 'webviews', 'webview-side', 'dataframeRenderer', 'dataframeRenderer.js'),
332332
{ target: 'web', watch: isWatchMode }
333333
),
334+
build(
335+
path.join(extensionFolder, 'src', 'webviews', 'webview-side', 'chart-big-number-renderer', 'index.ts'),
336+
path.join(
337+
extensionFolder,
338+
'dist',
339+
'webviews',
340+
'webview-side',
341+
'chartBigNumberRenderer',
342+
'chartBigNumberRenderer.js'
343+
),
344+
{ target: 'web', watch: isWatchMode }
345+
),
334346
build(
335347
path.join(extensionFolder, 'src', 'webviews', 'webview-side', 'vega-renderer', 'index.ts'),
336348
path.join(extensionFolder, 'dist', 'webviews', 'webview-side', 'vegaRenderer', 'vegaRenderer.js'),

package-lock.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1848,6 +1848,15 @@
18481848
],
18491849
"requiresMessaging": "optional"
18501850
},
1851+
{
1852+
"id": "deepnote-chart-big-number-renderer",
1853+
"displayName": "Deepnote Chart Big Number Renderer",
1854+
"entrypoint": "./dist/webviews/webview-side/chartBigNumberRenderer/chartBigNumberRenderer.js",
1855+
"mimeTypes": [
1856+
"application/vnd.deepnote.chart.big-number+json"
1857+
],
1858+
"requiresMessaging": "optional"
1859+
},
18511860
{
18521861
"id": "deepnote-vega-renderer",
18531862
"displayName": "Deepnote Vega Chart Renderer",
@@ -2235,7 +2244,8 @@
22352244
"vscode-tas-client": "^0.1.84",
22362245
"ws": "^6.2.3",
22372246
"zeromq": "^6.5.0",
2238-
"zeromqold": "npm:zeromq@^6.0.0-beta.6"
2247+
"zeromqold": "npm:zeromq@^6.0.0-beta.6",
2248+
"zod": "^4.1.12"
22392249
},
22402250
"devDependencies": {
22412251
"@actions/core": "^1.11.1",

src/kernels/execution/cellExecution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import type * as KernelMessage from '@jupyterlab/services/lib/kernel/messages';
55
import { NotebookCell, NotebookCellExecution, workspace, NotebookCellOutput } from 'vscode';
66

7+
import { createPythonCode } from '@deepnote/blocks';
78
import type { Kernel } from '@jupyterlab/services';
89
import { CellExecutionCreator } from './cellExecutionCreator';
910
import { analyzeKernelErrors, createOutputWithErrorMessageForDisplay } from '../../platform/errors/errorUtils';
@@ -32,7 +33,6 @@ import { KernelError } from '../errors/kernelError';
3233
import { getCachedSysPrefix } from '../../platform/interpreter/helpers';
3334
import { getCellMetadata } from '../../platform/common/utils';
3435
import { NotebookCellExecutionState, notebookCellExecutions } from '../../platform/notebooks/cellExecutionStateService';
35-
import { createPythonCode } from '@deepnote/blocks';
3636
import { DeepnoteDataConverter } from '../../notebooks/deepnote/deepnoteDataConverter';
3737

3838
/**

src/kernels/execution/cellExecutionMessageHandler.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
window,
2525
extensions
2626
} from 'vscode';
27+
import { coerce, SemVer } from 'semver';
2728

2829
import type { Kernel } from '@jupyterlab/services';
2930
import { CellExecutionCreator } from './cellExecutionCreator';
@@ -45,7 +46,7 @@ import { handleTensorBoardDisplayDataOutput } from './executionHelpers';
4546
import { Identifiers, RendererExtension, WIDGET_MIMETYPE } from '../../platform/common/constants';
4647
import { CellOutputDisplayIdTracker } from './cellDisplayIdTracker';
4748
import { createDeferred } from '../../platform/common/utils/async';
48-
import { coerce, SemVer } from 'semver';
49+
import { CHART_BIG_NUMBER_MIME_TYPE } from '../../platform/deepnote/deepnoteConstants';
4950

5051
// Helper interface for the set_next_input execute reply payload
5152
interface ISetNextInputPayload {
@@ -1181,6 +1182,15 @@ export class CellExecutionMessageHandler implements IDisposable {
11811182
const output = translateCellDisplayOutput(
11821183
new NotebookCellOutput(outputToBeUpdated.outputItems, outputToBeUpdated.outputContainer.metadata)
11831184
);
1185+
1186+
const data = msg.content.data;
1187+
// deepnote-toolkit returns the text/plain mime type for big number outputs
1188+
// and for the custom renderer to be used, we need to return the application/vnd.deepnote.chart.big-number+json mime type
1189+
if (outputToBeUpdated.cell.metadata['__deepnotePocket']?.['type'] === 'big-number') {
1190+
data[CHART_BIG_NUMBER_MIME_TYPE] = data['text/plain'];
1191+
delete data['text/plain'];
1192+
}
1193+
11841194
const newOutput = cellOutputToVSCCellOutput(
11851195
{
11861196
...output,

src/kernels/execution/helpers.ts

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,32 @@
22
// Licensed under the MIT License.
33

44
import type * as nbformat from '@jupyterlab/nbformat';
5-
import { NotebookCellOutput, NotebookCellOutputItem, NotebookCell, Position, Range } from 'vscode';
5+
import { NotebookCell, NotebookCellOutput, NotebookCellOutputItem, Position, Range } from 'vscode';
66
// eslint-disable-next-line @typescript-eslint/no-require-imports
77
import type { KernelMessage } from '@jupyterlab/services';
88
import fastDeepEqual from 'fast-deep-equal';
9-
import * as path from '../../platform/vscode-path/path';
10-
import * as uriPath from '../../platform/vscode-path/resources';
9+
import { Pocket } from '../../platform/deepnote/pocket';
1110
import { PYTHON_LANGUAGE } from '../../platform/common/constants';
1211
import { concatMultilineString, splitMultilineString } from '../../platform/common/utils';
12+
import { StopWatch } from '../../platform/common/utils/stopWatch';
13+
import { base64ToUint8Array, uint8ArrayToBase64 } from '../../platform/common/utils/string';
14+
import { CHART_BIG_NUMBER_MIME_TYPE } from '../../platform/deepnote/deepnoteConstants';
15+
import { getExtensionSpecificStack } from '../../platform/errors/errors';
16+
import { createOutputWithErrorMessageForDisplay } from '../../platform/errors/errorUtils';
17+
import { getCachedEnvironment, getVersion } from '../../platform/interpreter/helpers';
1318
import { logger } from '../../platform/logging';
19+
import type { NotebookCellExecutionState } from '../../platform/notebooks/cellExecutionStateService';
20+
import * as path from '../../platform/vscode-path/path';
21+
import * as uriPath from '../../platform/vscode-path/resources';
1422
import { sendTelemetryEvent, Telemetry } from '../../telemetry';
15-
import { createOutputWithErrorMessageForDisplay } from '../../platform/errors/errorUtils';
16-
import { CellExecutionCreator } from './cellExecutionCreator';
17-
import { IKernelController, KernelConnectionMetadata } from '../types';
1823
import {
19-
isPythonKernelConnection,
2024
getInterpreterFromKernelConnectionMetadata,
21-
kernelConnectionMetadataHasKernelModel,
22-
getKernelRegistrationInfo
25+
getKernelRegistrationInfo,
26+
isPythonKernelConnection,
27+
kernelConnectionMetadataHasKernelModel
2328
} from '../helpers';
24-
import { StopWatch } from '../../platform/common/utils/stopWatch';
25-
import { getExtensionSpecificStack } from '../../platform/errors/errors';
26-
import { getCachedEnvironment, getVersion } from '../../platform/interpreter/helpers';
27-
import { base64ToUint8Array, uint8ArrayToBase64 } from '../../platform/common/utils/string';
28-
import type { NotebookCellExecutionState } from '../../platform/notebooks/cellExecutionStateService';
29+
import { IKernelController, KernelConnectionMetadata } from '../types';
30+
import { CellExecutionCreator } from './cellExecutionCreator';
2931

3032
export enum CellOutputMimeTypes {
3133
error = 'application/vnd.code.notebook.error',
@@ -260,6 +262,9 @@ function translateDisplayDataOutput(
260262
}
261263
}
262264
*/
265+
const deepnotePocket = cellMetadata?.__deepnotePocket as Pocket | undefined;
266+
const deepnoteBlockType = deepnotePocket?.type;
267+
263268
const metadata = getOutputMetadata(output, cellIndex, cellId, cellMetadata);
264269
// If we have SVG or PNG, then add special metadata to indicate whether to display `open plot`
265270
if ('image/svg+xml' in output.data || 'image/png' in output.data) {
@@ -269,7 +274,9 @@ function translateDisplayDataOutput(
269274
if (output.data) {
270275
// eslint-disable-next-line no-restricted-syntax
271276
for (const key in output.data) {
272-
items.push(convertJupyterOutputToBuffer(key, output.data[key]));
277+
// TODO - remove this once this is handled in the deepnote-toolkit
278+
let effectiveKey = deepnoteBlockType === 'big-number' ? CHART_BIG_NUMBER_MIME_TYPE : key;
279+
items.push(convertJupyterOutputToBuffer(effectiveKey, output.data[key] ?? output.data[effectiveKey]));
273280
}
274281
}
275282

0 commit comments

Comments
 (0)