|
@@
-1,158
+1,191
b''
|
|
1
|
1
|
=====================
|
|
2
|
2
|
Development version
|
|
3
|
3
|
=====================
|
|
4
|
4
|
|
|
5
|
5
|
This document describes in-flight development work.
|
|
6
|
6
|
|
|
7
|
7
|
.. warning::
|
|
8
|
8
|
|
|
9
|
9
|
Please do not edit this file by hand (doing so will likely cause merge
|
|
10
|
10
|
conflicts for other Pull Requests). Instead, create a new file in the
|
|
11
|
11
|
`docs/source/whatsnew/pr` folder
|
|
12
|
12
|
|
|
13
|
13
|
Using different kernels
|
|
14
|
14
|
-----------------------
|
|
15
|
15
|
|
|
16
|
16
|
.. image:: ../_images/kernel_selector_screenshot.png
|
|
17
|
17
|
:alt: Screenshot of notebook kernel selection dropdown menu
|
|
18
|
18
|
:align: center
|
|
19
|
19
|
|
|
20
|
20
|
You can now choose a kernel for a notebook within the user interface, rather
|
|
21
|
21
|
than starting up a separate notebook server for each kernel you want to use. The
|
|
22
|
22
|
syntax highlighting adapts to match the language you're working in.
|
|
23
|
23
|
|
|
24
|
24
|
Information about the kernel is stored in the notebook file, so when you open a
|
|
25
|
25
|
notebook, it will automatically start the correct kernel.
|
|
26
|
26
|
|
|
27
|
27
|
It is also easier to use the Qt console and the terminal console with other
|
|
28
|
28
|
kernels, using the --kernel flag::
|
|
29
|
29
|
|
|
30
|
30
|
ipython qtconsole --kernel bash
|
|
31
|
31
|
ipython console --kernel bash
|
|
32
|
32
|
|
|
33
|
33
|
# To list available kernels
|
|
34
|
34
|
ipython kernelspec list
|
|
35
|
35
|
|
|
36
|
36
|
Kernel authors should see :ref:`kernelspecs` for how to register their kernels
|
|
37
|
37
|
with IPython so that these mechanisms work.
|
|
38
|
38
|
|
|
39
|
39
|
Typing unicode identifiers
|
|
40
|
40
|
--------------------------
|
|
41
|
41
|
|
|
42
|
42
|
.. image:: /_images/unicode_completion.png
|
|
43
|
43
|
|
|
44
|
44
|
Complex expressions can be much cleaner when written with a wider choice of
|
|
45
|
45
|
characters. Python 3 allows unicode identifiers, and IPython 3 makes it easier
|
|
46
|
46
|
to type those, using a feature from Julia. Type a backslash followed by a LaTeX
|
|
47
|
47
|
style short name, such as ``\alpha``. Press tab, and it will turn into α.
|
|
48
|
48
|
|
|
49
|
49
|
Other new features
|
|
50
|
50
|
------------------
|
|
51
|
51
|
|
|
52
|
52
|
* :class:`~.TextWidget` and :class:`~.TextareaWidget` objects now include a
|
|
53
|
53
|
``placeholder`` attribute, for displaying placeholder text before the
|
|
54
|
54
|
user has typed anything.
|
|
55
|
55
|
|
|
56
|
|
* The %load magic can now find the source for objects in the user namespace.
|
|
|
56
|
* The :magic:`load` magic can now find the source for objects in the user namespace.
|
|
57
|
57
|
To enable searching the namespace, use the ``-n`` option.
|
|
58
|
58
|
|
|
59
|
59
|
.. sourcecode:: ipython
|
|
60
|
60
|
|
|
61
|
61
|
In [1]: %load -n my_module.some_function
|
|
62
|
62
|
|
|
63
|
63
|
* :class:`~.DirectView` objects have a new :meth:`~.DirectView.use_cloudpickle`
|
|
64
|
64
|
method, which works like ``view.use_dill()``, but causes the ``cloudpickle``
|
|
65
|
65
|
module from PiCloud's `cloud`__ library to be used rather than dill or the
|
|
66
|
66
|
builtin pickle module.
|
|
67
|
67
|
|
|
68
|
68
|
__ https://pypi.python.org/pypi/cloud
|
|
69
|
69
|
|
|
70
|
70
|
* Added a .ipynb exporter to nbconvert. It can be used by passing `--to notebook`
|
|
71
|
71
|
as a commandline argument to nbconvert.
|
|
72
|
72
|
|
|
73
|
73
|
* New nbconvert preprocessor called :class:`~.ClearOutputPreprocessor`. This
|
|
74
|
74
|
clears the output from IPython notebooks.
|
|
75
|
75
|
|
|
76
|
76
|
* New preprocessor for nbconvert that executes all the code cells in a notebook.
|
|
77
|
77
|
To run a notebook and save its output in a new notebook::
|
|
78
|
78
|
|
|
79
|
79
|
ipython nbconvert InputNotebook --ExecutePreprocessor.enabled=True --to notebook --output Executed
|
|
80
|
80
|
|
|
81
|
81
|
* Consecutive stream (stdout/stderr) output is merged into a single output
|
|
82
|
82
|
in the notebook document.
|
|
83
|
83
|
Previously, all output messages were preserved as separate output fields in the JSON.
|
|
84
|
84
|
Now, the same merge is applied to the stored output as the displayed output,
|
|
85
|
85
|
improving document load time for notebooks with many small outputs.
|
|
86
|
86
|
|
|
|
87
|
* ``NotebookApp.webapp_settings`` is deprecated and replaced with
|
|
|
88
|
the more informatively named ``NotebookApp.tornado_settings``.
|
|
|
89
|
|
|
|
90
|
* Using :magic:`timeit` prints warnings if there is atleast a 4x difference in timings
|
|
|
91
|
between the slowest and fastest runs, since this might meant that the multiple
|
|
|
92
|
runs are not independent of one another.
|
|
|
93
|
|
|
|
94
|
* It's now possible to provide mechanisms to integrate IPython with other event
|
|
|
95
|
loops, in addition to the ones we already support. This lets you run GUI code
|
|
|
96
|
in IPython with an interactive prompt, and to embed the IPython
|
|
|
97
|
kernel in GUI applications. See :doc:`/config/eventloops` for details. As part
|
|
|
98
|
of this, the direct ``enable_*`` and ``disable_*`` functions for various GUIs
|
|
|
99
|
in :mod:`IPython.lib.inputhook` have been deprecated in favour of
|
|
|
100
|
:meth:`~.InputHookManager.enable_gui` and :meth:`~.InputHookManager.disable_gui`.
|
|
|
101
|
|
|
|
102
|
* A ``ScrollManager`` was added to the notebook. The ``ScrollManager`` controls how the notebook document is scrolled using keyboard. Users can inherit from the ``ScrollManager`` or ``TargetScrollManager`` to customize how their notebook scrolls. The default ``ScrollManager`` is the ``SlideScrollManager``, which tries to scroll to the nearest slide or sub-slide cell.
|
|
|
103
|
|
|
|
104
|
* The function :func:`~IPython.html.widgets.interaction.interact_manual` has been
|
|
|
105
|
added which behaves similarly to :func:`~IPython.html.widgets.interaction.interact`,
|
|
|
106
|
but adds a button to explicitly run the interacted-with function, rather than
|
|
|
107
|
doing it automatically for every change of the parameter widgets. This should
|
|
|
108
|
be useful for long-running functions.
|
|
|
109
|
|
|
|
110
|
* The ``%cython`` magic is now part of the Cython module. Use `%load_ext Cython` with a version of Cython >= 0.21 to have access to the magic now.
|
|
|
111
|
|
|
|
112
|
* The Notebook application now offers integrated terminals on Unix platforms,
|
|
|
113
|
intended for when it is used on a remote server. To enable these, install
|
|
|
114
|
the ``terminado`` Python package.
|
|
|
115
|
|
|
|
116
|
* Setting the default highlighting language for nbconvert with the config option
|
|
|
117
|
``NbConvertBase.default_language`` is deprecated. Nbconvert now respects
|
|
|
118
|
metadata stored in the :ref:`kernel spec <kernelspecs>`.
|
|
|
119
|
|
|
87
|
120
|
.. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT.
|
|
88
|
121
|
|
|
89
|
122
|
|
|
90
|
123
|
Backwards incompatible changes
|
|
91
|
124
|
------------------------------
|
|
92
|
125
|
|
|
93
|
126
|
* :func:`IPython.core.oinspect.getsource` call specification has changed:
|
|
94
|
127
|
|
|
95
|
128
|
* `oname` keyword argument has been added for property source formatting
|
|
96
|
129
|
* `is_binary` keyword argument has been dropped, passing ``True`` had
|
|
97
|
130
|
previously short-circuited the function to return ``None`` unconditionally
|
|
98
|
131
|
|
|
99
|
132
|
* Removed the octavemagic extension: it is now available as ``oct2py.ipython``.
|
|
100
|
133
|
|
|
101
|
134
|
* Creating PDFs with LaTeX no longer uses a post processor.
|
|
102
|
135
|
Use `nbconvert --to pdf` instead of `nbconvert --to latex --post pdf`.
|
|
103
|
136
|
|
|
104
|
137
|
* Used https://github.com/jdfreder/bootstrap2to3 to migrate the Notebook to Bootstrap 3.
|
|
105
|
138
|
|
|
106
|
139
|
Additional changes:
|
|
107
|
140
|
|
|
108
|
141
|
- Set `.tab-content .row` `0px;` left and right margin (bootstrap default is `-15px;`)
|
|
109
|
142
|
- Removed `height: @btn_mini_height;` from `.list_header>div, .list_item>div` in `tree.less`
|
|
110
|
143
|
- Set `#header` div `margin-bottom: 0px;`
|
|
111
|
144
|
- Set `#menus` to `float: left;`
|
|
112
|
145
|
- Set `#maintoolbar .navbar-text` to `float: none;`
|
|
113
|
146
|
- Added no-padding convienence class.
|
|
114
|
147
|
- Set border of #maintoolbar to 0px
|
|
115
|
148
|
|
|
116
|
149
|
* Accessing the `container` DOM object when displaying javascript has been
|
|
117
|
150
|
deprecated in IPython 2.0 in favor of accessing `element`. Starting with
|
|
118
|
151
|
IPython 3.0 trying to access `container` will raise an error in browser
|
|
119
|
152
|
javascript console.
|
|
120
|
153
|
|
|
121
|
154
|
* ``IPython.utils.py3compat.open`` was removed: :func:`io.open` provides all
|
|
122
|
155
|
the same functionality.
|
|
123
|
156
|
|
|
124
|
157
|
* The NotebookManager and ``/api/notebooks`` service has been replaced by
|
|
125
|
158
|
a more generic ContentsManager and ``/api/contents`` service,
|
|
126
|
159
|
which supports all kinds of files.
|
|
127
|
160
|
* The Dashboard now lists all files, not just notebooks and directories.
|
|
128
|
161
|
* The ``--script`` hook for saving notebooks to Python scripts is removed,
|
|
129
|
162
|
use :samp:`ipython nbconvert --to python {notebook}` instead.
|
|
130
|
163
|
|
|
131
|
164
|
* The ``rmagic`` extension is deprecated, as it is now part of rpy2. See
|
|
132
|
165
|
:mod:`rpy2.ipython.rmagic`.
|
|
133
|
166
|
|
|
134
|
167
|
* :meth:`~.KernelManager.start_kernel` and :meth:`~.KernelManager.format_kernel_cmd`
|
|
135
|
168
|
no longer accept a ``executable`` parameter. Use the kernelspec machinery instead.
|
|
136
|
169
|
|
|
137
|
170
|
* The widget classes have been renamed from `*Widget` to `*`. The old names are
|
|
138
|
171
|
still functional, but are deprecated. i.e. `IntSliderWidget` has been renamed
|
|
139
|
172
|
to `IntSlider`.
|
|
140
|
173
|
* The ContainerWidget was renamed to Box and no longer defaults as a flexible
|
|
141
|
174
|
box in the web browser. A new FlexBox widget was added, which allows you to
|
|
142
|
175
|
use the flexible box model.
|
|
143
|
176
|
|
|
144
|
177
|
.. DO NOT EDIT THIS LINE BEFORE RELEASE. INCOMPAT INSERTION POINT.
|
|
145
|
178
|
|
|
146
|
179
|
IFrame embedding
|
|
147
|
180
|
````````````````
|
|
148
|
181
|
|
|
149
|
182
|
The IPython Notebook and its APIs by default will only be allowed to be
|
|
150
|
183
|
embedded in an iframe on the same origin.
|
|
151
|
184
|
|
|
152
|
185
|
To override this, set ``headers[X-Frame-Options]`` to one of
|
|
153
|
186
|
|
|
154
|
187
|
* DENY
|
|
155
|
188
|
* SAMEORIGIN
|
|
156
|
189
|
* ALLOW-FROM uri
|
|
157
|
190
|
|
|
158
|
191
|
See `Mozilla's guide to X-Frame-Options <https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options>`_ for more examples.
|