solorice/vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/pythonFiles/vscode_datascience_helpers/daemon
2022-04-28 20:54:44 +03:00
..
__init__.py Added vscode settings 2022-04-28 20:54:44 +03:00
__main__.py Added vscode settings 2022-04-28 20:54:44 +03:00
daemon_output.py Added vscode settings 2022-04-28 20:54:44 +03:00
daemon_python.py Added vscode settings 2022-04-28 20:54:44 +03:00
README.md Added vscode settings 2022-04-28 20:54:44 +03:00

Sample usage in node.js

const cp  = require('child_process');
const rpc = require('vscode-jsonrpc/node');
const env = {
    PYTHONUNBUFFERED: '1',
    PYTHONPATH: '<extension dir>/pythonFiles:<extension dir>/pythonFiles/lib/python'
}
const childProcess = cp.spawn('<fully qualifieid python path>', ['-m', 'vscode_datascience_helpers.daemon', '-v', '--log-file=log.log'], {env});
const connection = rpc.createMessageConnection(new rpc.StreamMessageReader(childProcess.stdout),new rpc.StreamMessageWriter(childProcess.stdin));

connection.onClose(() => console.error('Closed'));
connection.onError(ex => console.error(ex));
connection.onDispose(() => console.error('disposed'));
connection.onNotification((e, data) => console.log(`Notification from daemon, such as stdout/stderr, ${JSON.stringify(data)}`);
connection.onUnhandledNotification(e => console.error(e));

// Start
connection.listen();

const pingRequest = new rpc.RequestType('ping');
connection.sendRequest(pingRequest, {data: 'one₹😄'})
	.then(response => console.log(`Pong received ${JSON.stringify(response)}`),	ex => console.error(ex));