validate output types in append_output

validates from files, as well as from kernels
This commit is contained in:
MinRK 2013-12-11 11:54:35 -08:00
parent 19e4b74678
commit 829495c6b9

View File

@ -286,6 +286,30 @@ var IPython = (function (IPython) {
return remapped;
};
OutputArea.output_types = [
'application/javascript',
'text/html',
'text/latex',
'image/svg+xml',
'image/png',
'image/jpeg',
'text/plain'
];
OutputArea.prototype.validate_output = function (json) {
// scrub invalid outputs
// TODO: right now everything is a string, but JSON really shouldn't be.
// nbformat 4 will fix that.
$.map(OutputArea.output_types, function(key){
if (json[key] !== undefined && typeof json[key] !== 'string') {
console.log("Invalid type for " + key, json[key]);
delete json[key];
}
});
return json;
};
OutputArea.prototype.append_output = function (json) {
this.expand();
// Clear the output if clear is queued.
@ -294,6 +318,9 @@ var IPython = (function (IPython) {
this.clear_output(false);
needs_height_reset = true;
}
// validate output data types
json = this.validate_output(json);
if (json.output_type === 'pyout') {
this.append_pyout(json);