Skip to content

Commit a009c1c

Browse files
authored
Set proper stdout and stderr callbacks in loadPyodide (#206)
1 parent 7d8edd8 commit a009c1c

File tree

1 file changed

+8
-23
lines changed

1 file changed

+8
-23
lines changed

packages/pyodide-kernel/src/worker.ts

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,14 @@ export abstract class PyodideRemoteKernel {
5656
}
5757
this._pyodide = await loadPyodide({
5858
indexURL: indexUrl,
59+
stdout: (text: string) => {
60+
console.log(text);
61+
this._logMessage({ type: 'text', level: 'info', data: text });
62+
},
63+
stderr: (text: string) => {
64+
console.error(text);
65+
this._logMessage({ type: 'text', level: 'critical', data: text });
66+
},
5967
...options.loadPyodideOptions,
6068
});
6169
// @ts-expect-error: pyodide._api is private
@@ -76,29 +84,6 @@ ${e.stack}`;
7684
data: error,
7785
});
7886
};
79-
80-
const log = (msg: string) => {
81-
console.log(msg);
82-
this._logMessage({ type: 'text', level: 'info', data: msg });
83-
};
84-
85-
const err = (msg: string) => {
86-
console.error(msg);
87-
this._logMessage({ type: 'text', level: 'critical', data: msg });
88-
};
89-
90-
// Workaround for being able to get information about packages being loaded by Pyodide
91-
// See discussion in https://github.com/pyodide/pyodide/discussions/5512
92-
const origLoadPackage = this._pyodide.loadPackage;
93-
this._pyodide.loadPackage = (pkgs, options) =>
94-
origLoadPackage(pkgs, {
95-
// Use custom callbacks to surface messages from Pyodide
96-
messageCallback: (msg: string) => log(msg),
97-
errorCallback: (msg: string) => {
98-
err(msg);
99-
},
100-
...options,
101-
});
10287
}
10388

10489
protected async initPackageManager(

0 commit comments

Comments
 (0)