##// END OF EJS Templates
tooltip dev note
tooltip dev note

File last commit:

r7444:99a89a41
r7444:99a89a41
Show More
development.txt
106 lines | 4.3 KiB | text/plain | TextLexer
=====================
Development version
=====================
This document describes in-flight development work.
Redesigned IPython notebook user interface
------------------------------------------
(Add description & screenshots of the many changes to the notebook)
Cell magics
-----------
IPython's ``%magic`` functions have been extended to let you change the meaning
of a whole cell using the first line. For example, to time the execution of
several statements::
%%timeit x = 0 # setup
for i in range(100000):
x += i**2
This is particularly useful to integrate code in another language, and cell
magics already exist for shell scripts, Cython, R and Octave. Using ``%%script
/usr/bin/foo``, you can run a cell in any interpreter that accepts code via
stdin.
Another handy cell magic makes it easy to write short text files: ``%%file
~/save/to/here.txt``.
To allow these features, the API for magic functions has been refactored and
made more powerful (:ghpull:`1732`).
Interactive tab completion for the Qt console
---------------------------------------------
(Add description & screenshots) (:ghpull:`1851`)
Completer improvement
---------------------
One of the great feature of IPython is the ability to inspect live element and
provide useful completion to the user, this one base of interactive
exploration of data. To make this process even more user-friendly the completers
of both the QTconsole and the Notebook has been reworked.
The Qtconsole --gui-completion flag came with a new `ncurses` flavor, activated
by default, which allows to cycle through the available completion by pressing
tab, and to navigate the with the arrow keys.(:ghpull:`1851`)
As part of the great refactoring of the notebook's JavaScript, the completer
has been partially rewritten. Completions are now sourced both from object
introspection and analyse of surrounding code, allowing to get a even limited
completion on code not executed, or even while the kernel is busy.
Notebook tooltip improvement
----------------------------
Being able to get non obstructive help is important whether you are a python
beginner or a experienced developer learning new python library. This is the
reason why the new tooltip that ships with the notebook get some new
functionality.
You can still invoked it after an opening bracket, or after a space following a
comma in function argument (yes it forces you to be pep8 compliant), but
several tab press in a row will now give different behaviour.
You can discover this interactively one of the first introduction notebook, to
see how to expand the tooltip size to see more of the docstring, prevent it
from being dismissed and still see the kwargs list while typing function
argument. Or finally sending the displayed help to the pager at the bottom of
the screen to have a permanent help.
Other new features
------------------
* **%install_ext**: A new magic function to install an IPython extension from
a URL. E.g. ``%install_ext
https://bitbucket.org/birkenfeld/ipython-physics/raw/default/physics.py``.
* The ``%loadpy`` magic is no longer restricted to Python files, and has been
renamed ``%load``. The old name remains as an alias.
* New command line arguments will help external programs find IPython folders:
``ipython locate`` finds the user's IPython directory, and ``ipython locate
profile foo`` finds the folder for the 'foo' profile (if it exists).
* The :envvar:`IPYTHON_DIR` environment variable, introduced in the Great
Reorganization of 0.11 and existing only in versions 0.11-0.13, has been
deprecated. As described in :ghissue:`1167`, the complexity and confusion of
migrating to this variable is not worth the aesthetic improvement. Please use
the historical :envvar:`IPYTHONDIR` environment variable instead.
* The default value of *interactivity* passed from
:meth:`~IPython.core.interactiveshell.InteractiveShell.run_cell` to
:meth:`~IPython.core.interactiveshell.InteractiveShell.run_ast_nodes`
is now configurable.
Backwards incompatible changes
------------------------------
* The exception :exc:`IPython.core.error.TryNext` previously accepted
arguments and keyword arguments to be passed to the next implementation
of the hook. This feature was removed as it made error message propagation
difficult and violated the principle of loose coupling.