diff --git a/IPython/html/static/services/kernels/kernel.js b/IPython/html/static/services/kernels/kernel.js index 77cf4b1..f4369b7 100644 --- a/IPython/html/static/services/kernels/kernel.js +++ b/IPython/html/static/services/kernels/kernel.js @@ -284,16 +284,16 @@ define([ }); }; - /** - * POST /api/kernels/[:kernel_id]/restart - * - * Restart the kernel. - * - * @function interrupt - * @param {function} [success] - function executed on ajax success - * @param {function} [error] - functon executed on ajax error - */ Kernel.prototype.restart = function (success, error) { + /** + * POST /api/kernels/[:kernel_id]/restart + * + * Restart the kernel. + * + * @function interrupt + * @param {function} [success] - function executed on ajax success + * @param {function} [error] - functon executed on ajax error + */ this.events.trigger('kernel_restarting.Kernel', {kernel: this}); this.stop_channels(); @@ -325,14 +325,14 @@ define([ }); }; - /** - * Reconnect to a disconnected kernel. This is not actually a - * standard HTTP request, but useful function nonetheless for - * reconnecting to the kernel if the connection is somehow lost. - * - * @function reconnect - */ Kernel.prototype.reconnect = function () { + /** + * Reconnect to a disconnected kernel. This is not actually a + * standard HTTP request, but useful function nonetheless for + * reconnecting to the kernel if the connection is somehow lost. + * + * @function reconnect + */ if (this.is_connected()) { return; } @@ -344,15 +344,15 @@ define([ this.start_channels(); }; - /** - * Handle a successful AJAX request by updating the kernel id and - * name from the response, and then optionally calling a provided - * callback. - * - * @function _on_success - * @param {function} success - callback - */ Kernel.prototype._on_success = function (success) { + /** + * Handle a successful AJAX request by updating the kernel id and + * name from the response, and then optionally calling a provided + * callback. + * + * @function _on_success + * @param {function} success - callback + */ var that = this; return function (data, status, xhr) { if (data) { @@ -366,14 +366,14 @@ define([ }; }; - /** - * Handle a failed AJAX request by logging the error message, and - * then optionally calling a provided callback. - * - * @function _on_error - * @param {function} error - callback - */ Kernel.prototype._on_error = function (error) { + /** + * Handle a failed AJAX request by logging the error message, and + * then optionally calling a provided callback. + * + * @function _on_error + * @param {function} error - callback + */ return function (xhr, status, err) { utils.log_ajax_error(xhr, status, err); if (error) { @@ -382,27 +382,27 @@ define([ }; }; - /** - * Perform necessary tasks once the kernel has been started, - * including actually connecting to the kernel. - * - * @function _kernel_created - * @param {Object} data - information about the kernel including id - */ Kernel.prototype._kernel_created = function (data) { + /** + * Perform necessary tasks once the kernel has been started, + * including actually connecting to the kernel. + * + * @function _kernel_created + * @param {Object} data - information about the kernel including id + */ this.id = data.id; this.kernel_url = utils.url_join_encode(this.kernel_service_url, this.id); this.start_channels(); }; - /** - * Perform necessary tasks once the connection to the kernel has - * been established. This includes requesting information about - * the kernel. - * - * @function _kernel_connected - */ Kernel.prototype._kernel_connected = function () { + /** + * Perform necessary tasks once the connection to the kernel has + * been established. This includes requesting information about + * the kernel. + * + * @function _kernel_connected + */ this.events.trigger('kernel_connected.Kernel', {kernel: this}); this.events.trigger('kernel_starting.Kernel', {kernel: this}); // get kernel info so we know what state the kernel is in @@ -413,24 +413,24 @@ define([ }); }; - /** - * Perform necessary tasks after the kernel has died. This closing - * communication channels to the kernel if they are still somehow - * open. - * - * @function _kernel_dead - */ Kernel.prototype._kernel_dead = function () { + /** + * Perform necessary tasks after the kernel has died. This closing + * communication channels to the kernel if they are still somehow + * open. + * + * @function _kernel_dead + */ this.stop_channels(); }; - /** - * Start the `shell`and `iopub` channels. - * Will stop and restart them if they already exist. - * - * @function start_channels - */ Kernel.prototype.start_channels = function () { + /** + * Start the `shell`and `iopub` channels. + * Will stop and restart them if they already exist. + * + * @function start_channels + */ var that = this; this.stop_channels(); var ws_host_url = this.ws_url + this.kernel_url; @@ -504,29 +504,29 @@ define([ this.channels.stdin.onmessage = $.proxy(this._handle_input_request, this); }; - /** - * Handle a websocket entering the open state, - * signaling that the kernel is connected when all channels are open. - * - * @function _ws_opened - */ Kernel.prototype._ws_opened = function (evt) { + /** + * Handle a websocket entering the open state, + * signaling that the kernel is connected when all channels are open. + * + * @function _ws_opened + */ if (this.is_connected()) { // all events ready, trigger started event. this._kernel_connected(); } }; - /** - * Handle a websocket entering the closed state. This closes the - * other communication channels if they are open. If the websocket - * was not closed due to an error, try to reconnect to the kernel. - * - * @function _ws_closed - * @param {string} ws_url - the websocket url - * @param {bool} error - whether the connection was closed due to an error - */ Kernel.prototype._ws_closed = function(ws_url, error) { + /** + * Handle a websocket entering the closed state. This closes the + * other communication channels if they are open. If the websocket + * was not closed due to an error, try to reconnect to the kernel. + * + * @function _ws_closed + * @param {string} ws_url - the websocket url + * @param {bool} error - whether the connection was closed due to an error + */ this.stop_channels(); this.events.trigger('kernel_disconnected.Kernel', {kernel: this}); @@ -553,13 +553,13 @@ define([ } }; - /** - * Close the websocket channels. After successful close, the value - * in `this.channels[channel_name]` will be null. - * - * @function stop_channels - */ Kernel.prototype.stop_channels = function () { + /** + * Close the websocket channels. After successful close, the value + * in `this.channels[channel_name]` will be null. + * + * @function stop_channels + */ var that = this; var close = function (c) { return function () { @@ -580,15 +580,15 @@ define([ } }; - /** - * Check whether there is a connection to the kernel. This - * function only returns true if all channel objects have been - * created and have a state of WebSocket.OPEN. - * - * @function is_connected - * @returns {bool} - whether there is a connection - */ Kernel.prototype.is_connected = function () { + /** + * Check whether there is a connection to the kernel. This + * function only returns true if all channel objects have been + * created and have a state of WebSocket.OPEN. + * + * @function is_connected + * @returns {bool} - whether there is a connection + */ for (var c in this.channels) { // if any channel is not ready, then we're not connected if (this.channels[c] === null) { @@ -601,15 +601,15 @@ define([ return true; }; - /** - * Check whether the connection to the kernel has been completely - * severed. This function only returns true if all channel objects - * are null. - * - * @function is_fully_disconnected - * @returns {bool} - whether the kernel is fully disconnected - */ Kernel.prototype.is_fully_disconnected = function () { + /** + * Check whether the connection to the kernel has been completely + * severed. This function only returns true if all channel objects + * are null. + * + * @function is_fully_disconnected + * @returns {bool} - whether the kernel is fully disconnected + */ for (var c in this.channels) { if (this.channels[c] === null) { return true; @@ -618,12 +618,12 @@ define([ return false; }; - /** - * Send a message on the Kernel's shell channel - * - * @function send_shell_message - */ Kernel.prototype.send_shell_message = function (msg_type, content, callbacks, metadata, buffers) { + /** + * Send a message on the Kernel's shell channel + * + * @function send_shell_message + */ if (!this.is_connected()) { throw new Error("kernel is not connected"); } @@ -633,17 +633,17 @@ define([ return msg.header.msg_id; }; - /** - * Get kernel info - * - * @function kernel_info - * @param callback {function} - * - * When calling this method, pass a callback function that expects one argument. - * The callback will be passed the complete `kernel_info_reply` message documented - * [here](http://ipython.org/ipython-doc/dev/development/messaging.html#kernel-info) - */ Kernel.prototype.kernel_info = function (callback) { + /** + * Get kernel info + * + * @function kernel_info + * @param callback {function} + * + * When calling this method, pass a callback function that expects one argument. + * The callback will be passed the complete `kernel_info_reply` message documented + * [here](http://ipython.org/ipython-doc/dev/development/messaging.html#kernel-info) + */ var callbacks; if (callback) { callbacks = { shell : { reply : callback } }; @@ -651,19 +651,19 @@ define([ return this.send_shell_message("kernel_info_request", {}, callbacks); }; - /** - * Get info on an object - * - * When calling this method, pass a callback function that expects one argument. - * The callback will be passed the complete `inspect_reply` message documented - * [here](http://ipython.org/ipython-doc/dev/development/messaging.html#object-information) - * - * @function inspect - * @param code {string} - * @param cursor_pos {integer} - * @param callback {function} - */ Kernel.prototype.inspect = function (code, cursor_pos, callback) { + /** + * Get info on an object + * + * When calling this method, pass a callback function that expects one argument. + * The callback will be passed the complete `inspect_reply` message documented + * [here](http://ipython.org/ipython-doc/dev/development/messaging.html#object-information) + * + * @function inspect + * @param code {string} + * @param cursor_pos {integer} + * @param callback {function} + */ var callbacks; if (callback) { callbacks = { shell : { reply : callback } }; @@ -677,56 +677,56 @@ define([ return this.send_shell_message("inspect_request", content, callbacks); }; - /** - * Execute given code into kernel, and pass result to callback. - * - * @async - * @function execute - * @param {string} code - * @param [callbacks] {Object} With the following keys (all optional) - * @param callbacks.shell.reply {function} - * @param callbacks.shell.payload.[payload_name] {function} - * @param callbacks.iopub.output {function} - * @param callbacks.iopub.clear_output {function} - * @param callbacks.input {function} - * @param {object} [options] - * @param [options.silent=false] {Boolean} - * @param [options.user_expressions=empty_dict] {Dict} - * @param [options.allow_stdin=false] {Boolean} true|false - * - * @example - * - * The options object should contain the options for the execute - * call. Its default values are: - * - * options = { - * silent : true, - * user_expressions : {}, - * allow_stdin : false - * } - * - * When calling this method pass a callbacks structure of the - * form: - * - * callbacks = { - * shell : { - * reply : execute_reply_callback, - * payload : { - * set_next_input : set_next_input_callback, - * } - * }, - * iopub : { - * output : output_callback, - * clear_output : clear_output_callback, - * }, - * input : raw_input_callback - * } - * - * Each callback will be passed the entire message as a single - * arugment. Payload handlers will be passed the corresponding - * payload and the execute_reply message. - */ Kernel.prototype.execute = function (code, callbacks, options) { + /** + * Execute given code into kernel, and pass result to callback. + * + * @async + * @function execute + * @param {string} code + * @param [callbacks] {Object} With the following keys (all optional) + * @param callbacks.shell.reply {function} + * @param callbacks.shell.payload.[payload_name] {function} + * @param callbacks.iopub.output {function} + * @param callbacks.iopub.clear_output {function} + * @param callbacks.input {function} + * @param {object} [options] + * @param [options.silent=false] {Boolean} + * @param [options.user_expressions=empty_dict] {Dict} + * @param [options.allow_stdin=false] {Boolean} true|false + * + * @example + * + * The options object should contain the options for the execute + * call. Its default values are: + * + * options = { + * silent : true, + * user_expressions : {}, + * allow_stdin : false + * } + * + * When calling this method pass a callbacks structure of the + * form: + * + * callbacks = { + * shell : { + * reply : execute_reply_callback, + * payload : { + * set_next_input : set_next_input_callback, + * } + * }, + * iopub : { + * output : output_callback, + * clear_output : clear_output_callback, + * }, + * input : raw_input_callback + * } + * + * Each callback will be passed the entire message as a single + * arugment. Payload handlers will be passed the corresponding + * payload and the execute_reply message. + */ var content = { code : code, silent : true,