Will allow special styling of code cells that are running via `div.code_cell.running` in css. Currently, no change is made.
The notebook now supports a `--read-only` flag, which allows users to view all notebooks being served but not to edit them or execute any code. These actions are not allowed and the buttons, shortcuts, etc. are removed, but the requests will raise authentication errors if they manage to send the events anyway. Save/print functions remain available. This flag can be used in two modes: 1. When running an unauthenticated server, one can run a *second* read-only server in the same directory on a public IP address. This will let users connect to the read-only view without having to worry about configuring passwords and certificates for the execution server. 2. When running a server configured with authentication (and hopefully an SSL certificate), starting it with `--read-only` allows unauthenticated users read-only access to notebooks. This means that the same server on a single port can be both used by authenticated users for execution and by the public for viewing the available notebooks.
Show invalid config message on TraitErrors during initialization. implemented via `@catch_config` decorator Now, the event that was triggered by invalid app config (see `--log-level 5`) is triggered by bad config at any point during initialization. This *will* catch TraitError-raising bugs in IPython itself, but only during initialization. Also, deregister crash handler on use to avoid it being triggered recursively/repeatedly.
Fix #481 using custom qt4 input hook. Various other cleanups to inputhook libraries.
contents of LPanel are not drawn until after collapse read_only is in a <meta> tag
If a user has Chrome set as their default browser (system-wide or via the `BROWSER` environment variable), opening the notebook hangs because the chrome call doesn't return immediately. This solves the issue by opening the browser in a thread. Note that there remains an issue where killing the notebook will kill Chrome if the Chrome session was started by us. I haven't found a way to work around that despite attempts by making the webbrowser.open() call in a subprocess.
Add dirty trick for readline import on OSX to more aggressively detect the presence of libedit masquerading as true GNU readline. Also made the libedit warning extremely loud, so people don't miss it. See the original PR page for the gory details; short version: 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, to get the default module
* add some line breaks * use None to indicate dynload not found, instead of -1
Fix more tests under Python3. The test suite isn't fully fixed yet under py3, but this gets us closer.
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
… when canceling
The replacement could catch extra matches, mangling the tilde_val. This uses slicing instead, to prevent multiple replacements. closes gh-869
When using a password, read-only mode allows unauthenticated users read-only access to notebooks. Editing, execution, etc. are not allowed in read-only mode, but save/print functions are available. No kernels are started until an authenticated user opens a notebook.
%whos no longer imports numpy unconditionally, and no longer supports Numeric. The import check explicitly looks for the ndarray object, rather than just numpy itself, which would fail in environments with broken numpy, such as PyPy. closes gh-904
…ws). Also make ProfileDir a LoggingConfigurable, so it can log the new message closes gh-773
Preserves compatibility with pre-0.11 call, which was broken unnecessarily. closes gh-926
BUG: Set context for font size change shortcuts in ConsoleWidget
Kernels are never started, and all save/delete/execution handlers raise 403: Forbidden. /cc @fperez
e.g. `ipython --foo-bar=5` would raise a SyntaxError parsing the commmand-line, because `self.config.foo-bar=5` would be evaluated. Syntax Errors on the rhs were already protected, but they could get into the lhs via the alias syntax. closes gh-886
* Don't crash on second stdin request, because it's possible for multiple stdin_requests to come in succession (e.g. first was interrupted) * fix status=abort->aborted typo, and handle aborted executions properly closes gh-808
'y/[n]' prompt indicates that 'n' is default, but it was not specified as such, so no input resulted in asking again.
multiple-console and security sections updated to reflect changes: * connect via connection-files instead of ports * HMAC signatures are on by default
print profile flag for non-default profile, and fullpath for JSON files outside the security dir.
- return early if there's no longer a qApp - trap any exception that could be raised from within the hook, report it and unregister the hook