##// END OF EJS Templates
add dirty trick for readline import on OSX...
add dirty trick for readline import on OSX also made the libedit warning extremely loud, so people don't miss it. We still get reports of people never having noticed the warning, and getting confused when readline is broken on OSX. The reason for the dirty trick: pip installs to site-packages by default, but site-packages dirs always come *after* lib-dynload (and extras, etc.), which is where the system readline is installed. That means that a non-setuptools install (pip or setup.py install) *cannot* override any package that ships with OSX, including: numpy, readline, twisted, pyobjc without installing to a non-standard path (not even user site-packages via `--user`). The method for the dirty trick: 1. remove lib-dynload from sys.path before trying to import readline the first time 2. after import, restore lib-dynload to its place in sys.path 3. if import failed without lib-dynload, try it one more time

File last commit:

r5150:bbc4d01c
r5206:387dcd6a
Show More
panelsection.js
289 lines | 10.9 KiB | application/javascript | JavascriptLexer
//----------------------------------------------------------------------------
// Copyright (C) 2008-2011 The IPython Development Team
//
// Distributed under the terms of the BSD License. The full license is in
// the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------
//============================================================================
// PanelSection
//============================================================================
var IPython = (function (IPython) {
var utils = IPython.utils;
// Base PanelSection class
var PanelSection = function (selector) {
this.selector = selector;
if (this.selector !== undefined) {
this.element = $(selector);
this.header = this.element.find('div.section_header');
this.content = this.element.find('div.section_content');
this.style();
this.bind_events();
}
this.expanded = true;
};
PanelSection.prototype.style = function () {
this.header.addClass('ui-widget ui-state-default ui-helper-clearfix');
this.header.attr('title', "Click to Show/Hide Section");
this.content.addClass('ui-widget section_content');
};
PanelSection.prototype.bind_events = function () {
var that = this;
this.header.click(function () {
that.toggle();
});
this.header.hover(function () {
that.header.toggleClass('ui-state-hover');
});
};
PanelSection.prototype.expand = function () {
if (!this.expanded) {
this.content.slideDown('fast');
this.expanded = true;
};
};
PanelSection.prototype.collapse = function () {
if (this.expanded) {
this.content.slideUp('fast');
this.expanded = false;
};
};
PanelSection.prototype.toggle = function () {
if (this.expanded === true) {
this.collapse();
} else {
this.expand();
};
};
PanelSection.prototype.create_children = function () {};
// NotebookSection
var NotebookSection = function () {
PanelSection.apply(this, arguments);
};
NotebookSection.prototype = new PanelSection();
NotebookSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#new_open').buttonset();
this.content.find('#new_notebook').attr('title', "Create a new notebook");
this.content.find('#open_notebook').attr('title', "Open an existing notebook");
this.content.find('#download_notebook').button();
this.content.find('#download_notebook').attr('title',
"Download the notebook in the specified format," +
" either full ipynb notebook or as a Python script." +
" Make sure to save before downloading, to ensure the file is up to date."
);
// upload notebook doesn't exist:
this.content.find('#upload_notebook').button();
this.content.find('#download_format').addClass('ui-widget ui-widget-content');
this.content.find('#download_format option').addClass('ui-widget ui-widget-content');
};
NotebookSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
var that = this;
this.content.find('#new_notebook').click(function () {
window.open($('body').data('baseProjectUrl')+'new');
});
this.content.find('#open_notebook').click(function () {
window.open($('body').data('baseProjectUrl'));
});
this.content.find('#download_notebook').click(function () {
var format = that.content.find('#download_format').val();
var notebook_id = IPython.save_widget.get_notebook_id();
var url = $('body').data('baseProjectUrl') + 'notebooks/' + notebook_id + '?format=' + format;
window.open(url,'_newtab');
});
};
// CellSection
var CellSection = function () {
PanelSection.apply(this, arguments);
};
CellSection.prototype = new PanelSection();
CellSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#delete_cell').button();
this.content.find('#delete_cell').attr('title', "Delete the selected cell");
this.content.find('#insert').buttonset();
this.content.find('#insert_cell_above').attr('title', "Insert new cell above selected");
this.content.find('#insert_cell_below').attr('title', "Insert new cell below selected");
this.content.find('#move').buttonset();
this.content.find('#move_cell_up').attr('title', "Move selected cell up one in the Notebook");
this.content.find('#move_cell_down').attr('title', "Move selected cell down one in the Notebook");
this.content.find('#cell_type').buttonset();
this.content.find('#to_markdown').attr('title', 'Change selected cell to markdown (for text)')
this.content.find('#to_code').attr('title', 'Change selected cell to code (for execution)')
this.content.find('#cell_output').buttonset();
this.content.find('#toggle_output').attr('title', 'Toggle visibility of the output of code cells')
this.content.find('#clear_all_output').attr('title', 'Clear output of all code cells (actually removes the data, unlike toggle)')
this.content.find('#run_cells').buttonset();
this.content.find('#run_selected_cell').attr('title', 'Submit the selected cell for execution')
this.content.find('#run_all_cells').attr('title', 'Run *all* code cells in the notebook in order')
this.content.find('#autoindent').attr('title', 'Autoindent code as-you-type')
this.content.find('#autoindent_label').attr('title', 'Autoindent code as-you-type')
};
CellSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
this.content.find('#toggle_output').click(function () {
IPython.notebook.toggle_output();
});
this.content.find('#clear_all_output').click(function () {
IPython.notebook.clear_all_output();
});
this.content.find('#delete_cell').click(function () {
IPython.notebook.delete_cell();
});
this.content.find('#insert_cell_above').click(function () {
IPython.notebook.insert_code_cell_above();
});
this.content.find('#insert_cell_below').click(function () {
IPython.notebook.insert_code_cell_below();
});
this.content.find('#move_cell_up').click(function () {
IPython.notebook.move_cell_up();
});
this.content.find('#move_cell_down').click(function () {
IPython.notebook.move_cell_down();
});
this.content.find('#to_code').click(function () {
IPython.notebook.to_code();
});
this.content.find('#to_markdown').click(function () {
IPython.notebook.to_markdown();
});
this.content.find('#run_selected_cell').click(function () {
IPython.notebook.execute_selected_cell();
});
this.content.find('#run_all_cells').click(function () {
IPython.notebook.execute_all_cells();
});
this.content.find('#autoindent').change(function () {
var state = $('#autoindent').prop('checked');
IPython.notebook.set_autoindent(state);
});
};
// KernelSection
var KernelSection = function () {
PanelSection.apply(this, arguments);
};
KernelSection.prototype = new PanelSection();
KernelSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#int_restart').buttonset();
this.content.find("#int_kernel").attr('title', "Interrupt the kernel with SIGINT/Ctrl-C");
this.content.find("#restart_kernel").attr('title',
"Restart the kernel. This will shutdown the current kernel," +
" and start a new, clean kernel in its place, connected to this Notebook." +
" This may break the connection of other clients connected to this kernel." );
var kill_tip = "Kill the kernel on exit. If unchecked, the kernel will remain" +
" active after closing the session, allowing you to reconnect and resume later.";
this.content.find('#kill_kernel').attr('title', kill_tip);
this.content.find('#kill_kernel_label').attr('title', kill_tip);
};
KernelSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
this.content.find('#restart_kernel').click(function () {
IPython.notebook.restart_kernel();
});
this.content.find('#int_kernel').click(function () {
IPython.notebook.kernel.interrupt();
});
};
// HelpSection
var HelpSection = function () {
PanelSection.apply(this, arguments);
};
HelpSection.prototype = new PanelSection();
HelpSection.prototype.style = function () {
PanelSection.prototype.style.apply(this);
PanelSection.prototype.style.apply(this);
this.content.addClass('ui-helper-clearfix');
this.content.find('div.section_row').addClass('ui-helper-clearfix');
this.content.find('#help_buttons0').buttonset();
this.content.find('#help_buttons1').buttonset();
this.content.find('#help_buttons2').buttonset();
this.content.find('#python_help').attr('title', "Open the online Python documentation in a new tab")
this.content.find('#ipython_help').attr('title', "Open the online IPython documentation in a new tab")
this.content.find('#numpy_help').attr('title', "Open the online NumPy documentation in a new tab")
this.content.find('#scipy_help').attr('title', "Open the online SciPy documentation in a new tab")
this.content.find('#matplotlib_help').attr('title', "Open the online Matplotlib documentation in a new tab")
this.content.find('#sympy_help').attr('title', "Open the online SymPy documentation in a new tab")
};
HelpSection.prototype.bind_events = function () {
PanelSection.prototype.bind_events.apply(this);
};
// Set module variables
IPython.PanelSection = PanelSection;
IPython.NotebookSection = NotebookSection;
IPython.CellSection = CellSection;
IPython.KernelSection = KernelSection;
IPython.HelpSection = HelpSection;
return IPython;
}(IPython));