##// END OF EJS Templates
use git tags in github_stats...
use git tags in github_stats and report commits/author info

File last commit:

r7544:d07fd1fd
r7758:74ed9ae8
Show More
development.txt
99 lines | 3.9 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)
Improved tooltips
~~~~~~~~~~~~~~~~~
The object tooltips have gained some new functionality. By pressing tab several
times, you can expand them to see more of a docstring, keep them visible as you
fill in a function's parameters, or transfer the information to the pager at the
bottom of the screen. For the details, look at the example notebook
:file:`01_notebook_introduction.ipynb`.
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`).
Tab completer improvements
--------------------------
Useful tab-completion based on live inspection of objects is one of the most
popular features of IPython. To make this process even more user-friendly, the
completers of both the Qt console and the Notebook have been reworked.
The Qt console comes with a new ncurses-like tab completer, activated by
default, which lets you cycle through the available completions by pressing tab,
or select a completion with the arrow keys (:ghpull:`1851`).
.. figure:: ../_static/ipy_o13_qtconsole_completer.png
:width: 400px
:alt: ncurses-like completer, with highlighted selection.
:align: center
:target: ../_static/ipy_o13_qtconsole_completer.png
The new improved Qt console's ncurses-like completer allows to easily
navigate thought long list of completions.
In the notebook, completions are now sourced both from object introspection and
analysis of surrounding code, so limited completions can be offered for
variables defined in the current cell, or while the kernel is busy
(:ghpull:`1711`).
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.