text: ).
  1.0 Series¶
  Release 1.0.0: An Afternoon Hack¶
  IP:
  - ~12 months of work.
  - ~700 pull requests merged.
  - ~600 issues closed (non-pull requests).
  - contributions from ~150 authors.
  - ~4000 commits.
  The amount of work included in this release is so large that we can only cover here the main highlights; please see our detailed release statistics for links to every issue and pull request closed on GitHub as well as a full list of individual contributors. It includes
  Reorganization¶
  There have been two major reorganizations in IPython 1.0:
  - Added
  IPython.kernelfor all kernel-related code. This means that
  IPython.zmqhas been removed, and much of it is now in
  IPython.kernel.zmq, some of it being in the top-level
  IPython.kernel.
  - We have removed the
  frontendsubpackage, as it caused unnecessary depth. So what was
  IPython.frontend.qtis now
  IPython.qt, and so on. The one difference is that the notebook has been further flattened, so that
  IPython.frontend.html.notebookis now just
  IPython.html. There is a shim module, so
  IPython.frontendis still importable in 1.0, but there will be a warning.
  - The IPython sphinx directives are now installed in
  IPython.sphinx, so they can be imported by other projects.
  Public APIs¶()
  Core¶
  - The input transformation framework has been reworked. This fixes some corner cases, and adds more flexibility for projects which use IPython, like SymPy & SAGE. For more details, see Custom input transformation.
  - Exception types can now be displayed with a custom traceback, by defining a
  _render_traceback_()method which returns a list of strings, each containing one line of the traceback.
  - A new command,
  ipython history trimcan be used to delete everything but the last 1000 entries in the history database.
  __file__is defined in both config files at load time, and
  .ipyfiles executed with
  %run.
  %logstartand
  %logappendare no longer broken.
  - Add glob expansion for
  %run, e.g.
  %run -g script.py *.txt.
  - Expand variables (
  $foo) in Cell Magic argument line.
  - By default, iptest will exclude various slow tests. All tests can be run with iptest --all.
  - SQLite history can be disabled in the various cases that it does not behave well.
  %editworks on interactively defined variables.
  - editor hooks have been restored from quarantine, enabling TextMate as editor, etc.
  - The env variable PYTHONSTARTUP is respected by IPython.
  - The
  %matplotlibmagic was added, which is like the old
  %pylabmagic, but it does not import anything to the interactive namespace. It is recommended that users switch to
  %matplotliband explicit imports.
  - The
  --matplotlibcommand line flag was also added. It invokes the new
  %matplotlibmagic and can be used in the same way as the old
  --pylabflag. You can either use it by itself as a flag (
  --matplotlib), or you can also pass a backend explicitly (
  --matplotlib qtor
  --matplotlib=wx, etc).
  Backwards incompatible changes¶
  - Calling
  InteractiveShell.prefilter()will no longer perform static transformations - the processing of escaped commands such as
  %magicand
  !system, and stripping input prompts from code blocks. This functionality was duplicated in
  IPython.core.inputsplitter, and the latter version was already what IPython relied on. A new API to transform input will be ready before release.
  - Functions from
  IPython.lib.inputhookto control integration with GUI event loops are no longer exposed in the top level of
  IPython.lib. Code calling these should make sure to import them from
  IPython.lib.inputhook.
  - For all kernel managers, the
  sub_channelattribute has been renamed to
  iopub_channel.
  - Users on Python versions before 2.6.6, 2.7.1 or 3.2 will now need to call
  IPython.utils.doctestreload.doctest_reload()to make doctests run correctly inside IPython. Python releases since those versions are unaffected. For details, see PR #3068 and Python issue 8048.
  - The
  InteractiveShell.cache_main_mod()method has been removed, and
  new_main_mod()has a different signature, expecting a filename where earlier versions expected a namespace. See PR #3555 for details.
  - The short-lived plugin system has been removed. Extensions are the way to go.
  NbConvert¶.
  Notebook¶
  Major changes to the IPython Notebook in 1.0:
  - The notebook is now autosaved, by default at an interval of two minutes. When you press ‘save’ or Ctrl-S, a checkpoint is made, in a hidden folder. This checkpoint can be restored, so that the autosave model is strictly safer than traditional save. If you change nothing about your save habits, you will always have a checkpoint that you have written, and an autosaved file that is kept up to date.
  - The notebook supports
  raw_input()/
  input(), and thus also
  %debug, and many other Python calls that expect user input.
  - You can load custom javascript and CSS in the notebook by editing the files
  $(ipython locate profile)/static/custom/custom.js,css.
  - Add
  %%html,
  %%svg,
  %%javascript, and
  %%latexcell magics for writing raw output in notebook cells.
  - add a redirect handler and anchors on heading cells, so you can link across notebooks, directly to heading cells in other notebooks.
  - Images support width and height metadata, and thereby 2x scaling (retina support).
  _repr_foo_methods can return a tuple of (data, metadata), where metadata is a dict containing metadata about the displayed object. This is used to set size, etc. for retina graphics. To enable retina matplotlib figures, simply set
  InlineBackend.figure_format = 'retina'for 2x PNG figures, in your IPython config file or via the
  %configmagic.
  - Add display.FileLink and FileLinks for quickly displaying HTML links to local files.
  - Cells have metadata, which can be edited via cell toolbars. This metadata can be used by external code (e.g. reveal.js or exporters), when examining the notebook.
  - Fix an issue parsing LaTeX in markdown cells, which required users to type
  \\\, instead of
  \\.
  - Notebook templates are rendered with Jinja instead of Tornado.
  %%filehas been renamed
  %%writefile(
  %%fileis deprecated).
  - ANSI (and VT100) color parsing has been improved in both performance and supported values.
  - The static files path can be found as
  IPython.html.DEFAULT_STATIC_FILES_PATH, which may be changed by package managers.
  - IPython’s CSS is installed in
  static/css/style.min.css(all style, including bootstrap), and
  static/css/ipython.min.css, which only has IPython’s own CSS. The latter file should be useful for embedding IPython notebooks in other pages, blogs, etc.
  - The Print View has been removed. Users are encouraged to test ipython nbconvert to generate a static view.
  Javascript Components¶
  The javascript components used in the notebook have been updated significantly.
  - updates to jQuery (2.0) and jQueryUI (1.10)
  - Update CodeMirror to 3.14
  - Twitter Bootstrap (2.3) for layout
  - Font-Awesome (3.1) for icons
  - highlight.js (7.3) for syntax highlighting
  - marked (0.2.8) for markdown rendering
  - require.js (2.1) for loading javascript
  Some relevant changes that are results of this:
  - Markdown cells now support GitHub-flavored Markdown (GFM), which includes
  ```pythoncode blocks and tables.
  - Notebook UI behaves better on more screen sizes.
  - Various code cell input issues have been fixed.
  Kernel¶
  The kernel code has been substantially reorganized.
  New features in the kernel:
  - Kernels support ZeroMQ IPC transport, not just TCP
  - The message protocol has added a top-level metadata field, used for information about messages.
  - Add a
  data_pubmessage that functions much like
  display_pub, but publishes raw (usually pickled) data, rather than representations.
  - Ensure that
  sys.stdout.encodingis defined in Kernels.
  - Stdout from forked subprocesses should be forwarded to frontends (instead of crashing).
  IPEP 13¶).
  In-process kernels¶.
  Parallel¶
  IPython.parallel has had some refactoring as well. There are many improvements and fixes, but these are the major changes:
  - Connections have been simplified. All ports and the serialization in use are written to the connection file, rather than the initial two-stage system.
  - Serialization has been rewritten, fixing many bugs and dramatically improving performance serializing large containers.
  - Load-balancing scheduler performance with large numbers of tasks has been dramatically improved.
  - There should be fewer (hopefully zero) false-positives for engine failures.
  - Increased compatibility with various use cases that produced serialization / argument errors with map, etc.
  - The controller can attempt to resume operation if it has crashed, by passing
  ipcontroller --restore.
  - Engines can monitor the Hub heartbeat, and shutdown if the Hub disappears for too long.
  - add HTCondor support in launchers