##// END OF EJS Templates
more updates to documentation aud automation
Matthias Bussonnier -
Show More
@@ -1,119 +1,119 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Release data for the IPython project."""
2 """Release data for the IPython project."""
3
3
4 #-----------------------------------------------------------------------------
4 #-----------------------------------------------------------------------------
5 # Copyright (c) 2008, IPython Development Team.
5 # Copyright (c) 2008, IPython Development Team.
6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
9 #
9 #
10 # Distributed under the terms of the Modified BSD License.
10 # Distributed under the terms of the Modified BSD License.
11 #
11 #
12 # The full license is in the file COPYING.txt, distributed with this software.
12 # The full license is in the file COPYING.txt, distributed with this software.
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14
14
15 # Name of the package for release purposes. This is the name which labels
15 # Name of the package for release purposes. This is the name which labels
16 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
16 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 name = 'ipython'
17 name = 'ipython'
18
18
19 # IPython version information. An empty _version_extra corresponds to a full
19 # IPython version information. An empty _version_extra corresponds to a full
20 # release. 'dev' as a _version_extra string means this is a development
20 # release. 'dev' as a _version_extra string means this is a development
21 # version
21 # version
22 _version_major = 7
22 _version_major = 7
23 _version_minor = 4
23 _version_minor = 4
24 _version_patch = 0
24 _version_patch = 0
25 _version_extra = '.dev'
25 _version_extra = '.dev'
26 # _version_extra = 'b1'
26 # _version_extra = 'b1'
27 # _version_extra = '' # Uncomment this for full releases
27 _version_extra = '' # Uncomment this for full releases
28
28
29 # Construct full version string from these.
29 # Construct full version string from these.
30 _ver = [_version_major, _version_minor, _version_patch]
30 _ver = [_version_major, _version_minor, _version_patch]
31
31
32 __version__ = '.'.join(map(str, _ver))
32 __version__ = '.'.join(map(str, _ver))
33 if _version_extra:
33 if _version_extra:
34 __version__ = __version__ + _version_extra
34 __version__ = __version__ + _version_extra
35
35
36 version = __version__ # backwards compatibility name
36 version = __version__ # backwards compatibility name
37 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
37 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
38
38
39 # Change this when incrementing the kernel protocol version
39 # Change this when incrementing the kernel protocol version
40 kernel_protocol_version_info = (5, 0)
40 kernel_protocol_version_info = (5, 0)
41 kernel_protocol_version = "%i.%i" % kernel_protocol_version_info
41 kernel_protocol_version = "%i.%i" % kernel_protocol_version_info
42
42
43 description = "IPython: Productive Interactive Computing"
43 description = "IPython: Productive Interactive Computing"
44
44
45 long_description = \
45 long_description = \
46 """
46 """
47 IPython provides a rich toolkit to help you make the most out of using Python
47 IPython provides a rich toolkit to help you make the most out of using Python
48 interactively. Its main components are:
48 interactively. Its main components are:
49
49
50 * A powerful interactive Python shell
50 * A powerful interactive Python shell
51 * A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
51 * A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
52 notebooks and other interactive frontends.
52 notebooks and other interactive frontends.
53
53
54 The enhanced interactive Python shells have the following main features:
54 The enhanced interactive Python shells have the following main features:
55
55
56 * Comprehensive object introspection.
56 * Comprehensive object introspection.
57
57
58 * Input history, persistent across sessions.
58 * Input history, persistent across sessions.
59
59
60 * Caching of output results during a session with automatically generated
60 * Caching of output results during a session with automatically generated
61 references.
61 references.
62
62
63 * Extensible tab completion, with support by default for completion of python
63 * Extensible tab completion, with support by default for completion of python
64 variables and keywords, filenames and function keywords.
64 variables and keywords, filenames and function keywords.
65
65
66 * Extensible system of 'magic' commands for controlling the environment and
66 * Extensible system of 'magic' commands for controlling the environment and
67 performing many tasks related either to IPython or the operating system.
67 performing many tasks related either to IPython or the operating system.
68
68
69 * A rich configuration system with easy switching between different setups
69 * A rich configuration system with easy switching between different setups
70 (simpler than changing $PYTHONSTARTUP environment variables every time).
70 (simpler than changing $PYTHONSTARTUP environment variables every time).
71
71
72 * Session logging and reloading.
72 * Session logging and reloading.
73
73
74 * Extensible syntax processing for special purpose situations.
74 * Extensible syntax processing for special purpose situations.
75
75
76 * Access to the system shell with user-extensible alias system.
76 * Access to the system shell with user-extensible alias system.
77
77
78 * Easily embeddable in other Python programs and GUIs.
78 * Easily embeddable in other Python programs and GUIs.
79
79
80 * Integrated access to the pdb debugger and the Python profiler.
80 * Integrated access to the pdb debugger and the Python profiler.
81
81
82 The latest development version is always available from IPython's `GitHub
82 The latest development version is always available from IPython's `GitHub
83 site <http://github.com/ipython>`_.
83 site <http://github.com/ipython>`_.
84 """
84 """
85
85
86 license = 'BSD'
86 license = 'BSD'
87
87
88 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
88 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
89 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
89 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
90 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
90 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
91 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
91 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
92 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
92 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
93 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
93 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
94 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
94 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
95 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
95 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
96 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
96 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
97 }
97 }
98
98
99 author = 'The IPython Development Team'
99 author = 'The IPython Development Team'
100
100
101 author_email = 'ipython-dev@python.org'
101 author_email = 'ipython-dev@python.org'
102
102
103 url = 'https://ipython.org'
103 url = 'https://ipython.org'
104
104
105
105
106 platforms = ['Linux','Mac OSX','Windows']
106 platforms = ['Linux','Mac OSX','Windows']
107
107
108 keywords = ['Interactive','Interpreter','Shell', 'Embedding']
108 keywords = ['Interactive','Interpreter','Shell', 'Embedding']
109
109
110 classifiers = [
110 classifiers = [
111 'Framework :: IPython',
111 'Framework :: IPython',
112 'Intended Audience :: Developers',
112 'Intended Audience :: Developers',
113 'Intended Audience :: Science/Research',
113 'Intended Audience :: Science/Research',
114 'License :: OSI Approved :: BSD License',
114 'License :: OSI Approved :: BSD License',
115 'Programming Language :: Python',
115 'Programming Language :: Python',
116 'Programming Language :: Python :: 3',
116 'Programming Language :: Python :: 3',
117 'Programming Language :: Python :: 3 :: Only',
117 'Programming Language :: Python :: 3 :: Only',
118 'Topic :: System :: Shells'
118 'Topic :: System :: Shells'
119 ]
119 ]
@@ -1,436 +1,480 b''
1 ============
1 ============
2 7.x Series
2 7.x Series
3 ============
3 ============
4
4
5 .. _whatsnew740:
6
7 IPython 7.4.0
8 =============
9
10 Unicode name completions
11 ------------------------
12
13 Previously, we provided completion for a unicode name with its relative symbol.
14 With this, now IPython provides complete suggestions to unicode name symbols.
15
16 As on the PR, if user types ``\LAT<tab>``, IPython provides a list of
17 possible completions. In this case, it would be something like::
18
19 'LATIN CAPITAL LETTER A',
20 'LATIN CAPITAL LETTER B',
21 'LATIN CAPITAL LETTER C',
22 'LATIN CAPITAL LETTER D',
23 ....
24
25 This help to type unicode character that do not have short latex aliases, and
26 have long unicode names. for example ``Ν°``, ``\GREEK CAPITAL LETTER HETA``.
27
28 This feature was contributed by Luciana Marques :ghpull:`11583`.
29
30 Make audio normalization optional
31 ---------------------------------
32
33 Added 'normalize' argument to `IPython.display.Audio`. This argument applies
34 when audio data is given as an array of samples. The default of `normalize=True`
35 preserves prior behavior of normalizing the audio to the maximum possible range.
36 Setting to `False` disables normalization.
37
38
39 Miscelanious
40 ------------
41
42 - Fix improper acceptation of ``return`` outside of functions. :ghpull:`11641`.
43 - Fixed PyQt 5.11 backwards incompatibility causing sip import failure.
44 :ghpull:`11613`.
45 - Fix Bug where ``type?`` woudl crash IPython. :ghpull:`1608`.
46 - Allow to apply ``@needs_local_scope`` to cell magics for convenience.
47 :ghpull:`11542`.
48
5 .. _whatsnew730:
49 .. _whatsnew730:
6
50
7 IPython 7.3.0
51 IPython 7.3.0
8 =============
52 =============
9
53
10 .. _whatsnew720:
54 .. _whatsnew720:
11
55
12 IPython 7.3.0 bring several bug fixes and small improvements that you will
56 IPython 7.3.0 bring several bug fixes and small improvements that you will
13 described bellow.
57 described bellow.
14
58
15 The biggest change to this release is the implementation of the ``%conda`` and
59 The biggest change to this release is the implementation of the ``%conda`` and
16 ``%pip`` magics, that will attempt to install packages in the **current
60 ``%pip`` magics, that will attempt to install packages in the **current
17 environment**. You may still need to restart your interpreter or kernel for the
61 environment**. You may still need to restart your interpreter or kernel for the
18 change to be taken into account, but it should simplify installation of packages
62 change to be taken into account, but it should simplify installation of packages
19 into remote environment. Installing using pip/conda from the command line is
63 into remote environment. Installing using pip/conda from the command line is
20 still the prefer method.
64 still the prefer method.
21
65
22 The ``%pip`` magic was already present, but was only printing a warning; now it
66 The ``%pip`` magic was already present, but was only printing a warning; now it
23 will actually forward commands to pip.
67 will actually forward commands to pip.
24
68
25 Misc bug fixes and improvements:
69 Misc bug fixes and improvements:
26
70
27 - Compatibility with Python 3.8.
71 - Compatibility with Python 3.8.
28 - Do not expand shell variable in execution magics, and added the
72 - Do not expand shell variable in execution magics, and added the
29 ``no_var_expand`` decorator for magic requiring a similar functionality
73 ``no_var_expand`` decorator for magic requiring a similar functionality
30 :ghpull:`11516`
74 :ghpull:`11516`
31 - Add ``%pip`` and ``%conda`` magic :ghpull:`11524`
75 - Add ``%pip`` and ``%conda`` magic :ghpull:`11524`
32 - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528`
76 - Re-initialize posix aliases after a ``%reset`` :ghpull:`11528`
33 - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529`
77 - Allow the IPython command line to run ``*.ipynb`` files :ghpull:`11529`
34
78
35 IPython 7.2.0
79 IPython 7.2.0
36 =============
80 =============
37
81
38 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
82 IPython 7.2.0 brings minor bugfixes, improvements, and new configuration options:
39
83
40 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
84 - Fix a bug preventing PySide2 GUI integration from working :ghpull:`11464`
41 - Run CI on Mac OS ! :ghpull:`11471`
85 - Run CI on Mac OS ! :ghpull:`11471`
42 - Fix IPython "Demo" mode. :ghpull:`11498`
86 - Fix IPython "Demo" mode. :ghpull:`11498`
43 - Fix ``%run`` magic with path in name :ghpull:`11499`
87 - Fix ``%run`` magic with path in name :ghpull:`11499`
44 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
88 - Fix: add CWD to sys.path *after* stdlib :ghpull:`11502`
45 - Better rendering of signatures, especially long ones. :ghpull:`11505`
89 - Better rendering of signatures, especially long ones. :ghpull:`11505`
46 - Re-enable jedi by default if it's installed :ghpull:`11506`
90 - Re-enable jedi by default if it's installed :ghpull:`11506`
47 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
91 - Add New ``minimal`` exception reporting mode (useful for educational purpose). See :ghpull:`11509`
48
92
49
93
50 Added ability to show subclasses when using pinfo and other utilities
94 Added ability to show subclasses when using pinfo and other utilities
51 ---------------------------------------------------------------------
95 ---------------------------------------------------------------------
52
96
53 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
97 When using ``?``/``??`` on a class, IPython will now list the first 10 subclasses.
54
98
55 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
99 Special Thanks to Chris Mentzel of the Moore Foundation for this feature. Chris
56 is one of the people who played a critical role in IPython/Jupyter getting
100 is one of the people who played a critical role in IPython/Jupyter getting
57 funding.
101 funding.
58
102
59 We are grateful for all the help Chris has given us over the years,
103 We are grateful for all the help Chris has given us over the years,
60 and we're now proud to have code contributed by Chris in IPython.
104 and we're now proud to have code contributed by Chris in IPython.
61
105
62 OSMagics.cd_force_quiet configuration option
106 OSMagics.cd_force_quiet configuration option
63 --------------------------------------------
107 --------------------------------------------
64
108
65 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
109 You can set this option to force the %cd magic to behave as if ``-q`` was passed:
66 ::
110 ::
67
111
68 In [1]: cd /
112 In [1]: cd /
69 /
113 /
70
114
71 In [2]: %config OSMagics.cd_force_quiet = True
115 In [2]: %config OSMagics.cd_force_quiet = True
72
116
73 In [3]: cd /tmp
117 In [3]: cd /tmp
74
118
75 In [4]:
119 In [4]:
76
120
77 See :ghpull:`11491`
121 See :ghpull:`11491`
78
122
79 In vi editing mode, whether the prompt includes the current vi mode can now be configured
123 In vi editing mode, whether the prompt includes the current vi mode can now be configured
80 -----------------------------------------------------------------------------------------
124 -----------------------------------------------------------------------------------------
81
125
82 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
126 Set the ``TerminalInteractiveShell.prompt_includes_vi_mode`` to a boolean value
83 (default: True) to control this feature. See :ghpull:`11492`
127 (default: True) to control this feature. See :ghpull:`11492`
84
128
85 .. _whatsnew710:
129 .. _whatsnew710:
86
130
87 IPython 7.1.0
131 IPython 7.1.0
88 =============
132 =============
89
133
90 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
134 IPython 7.1.0 is the first minor release after 7.0.0 and mostly brings fixes to
91 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
135 new features, internal refactoring, and fixes for regressions that happened during the 6.x->7.x
92 transition. It also brings **Compatibility with Python 3.7.1**, as we're
136 transition. It also brings **Compatibility with Python 3.7.1**, as we're
93 unwillingly relying on a bug in CPython.
137 unwillingly relying on a bug in CPython.
94
138
95 New Core Dev:
139 New Core Dev:
96
140
97 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
141 - We welcome Jonathan Slenders to the commiters. Jonathan has done a fantastic
98 work on prompt_toolkit, and we'd like to recognise his impact by giving him
142 work on prompt_toolkit, and we'd like to recognise his impact by giving him
99 commit rights. :ghissue:`11397`
143 commit rights. :ghissue:`11397`
100
144
101 Notable Changes
145 Notable Changes
102
146
103 - Major update of "latex to unicode" tab completion map (see below)
147 - Major update of "latex to unicode" tab completion map (see below)
104
148
105 Notable New Features:
149 Notable New Features:
106
150
107 - Restore functionality and documentation of the **sphinx directive**, which
151 - Restore functionality and documentation of the **sphinx directive**, which
108 is now stricter (fail on error by daefault), has new configuration options,
152 is now stricter (fail on error by daefault), has new configuration options,
109 has a brand new documentation page :ref:`ipython_directive` (which needs
153 has a brand new documentation page :ref:`ipython_directive` (which needs
110 some cleanup). It is also now *tested* so we hope to have less regressions.
154 some cleanup). It is also now *tested* so we hope to have less regressions.
111 :ghpull:`11402`
155 :ghpull:`11402`
112
156
113 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
157 - ``IPython.display.Video`` now supports ``width`` and ``height`` arguments,
114 allowing a custom width and height to be set instead of using the video's
158 allowing a custom width and height to be set instead of using the video's
115 width and height. :ghpull:`11353`
159 width and height. :ghpull:`11353`
116
160
117 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
161 - Warn when using ``HTML('<iframe>')`` instead of ``IFrame`` :ghpull:`11350`
118
162
119 - Allow Dynamic switching of editing mode between vi/emacs and show
163 - Allow Dynamic switching of editing mode between vi/emacs and show
120 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
164 normal/input mode in prompt when using vi. :ghpull:`11390`. Use ``%config
121 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
165 TerminalInteractiveShell.editing_mode = 'vi'`` or ``%config
122 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
166 TerminalInteractiveShell.editing_mode = 'emacs'`` to dynamically switch
123 between modes.
167 between modes.
124
168
125
169
126 Notable Fixes:
170 Notable Fixes:
127
171
128 - Fix entering of **multi-line blocks in terminal** IPython, and various
172 - Fix entering of **multi-line blocks in terminal** IPython, and various
129 crashes in the new input transformation machinery :ghpull:`11354`,
173 crashes in the new input transformation machinery :ghpull:`11354`,
130 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
174 :ghpull:`11356`, :ghpull:`11358`. These also fix a **Compatibility bug
131 with Python 3.7.1**.
175 with Python 3.7.1**.
132
176
133 - Fix moving through generator stack in ipdb :ghpull:`11266`
177 - Fix moving through generator stack in ipdb :ghpull:`11266`
134
178
135 - %Magic command arguments now support quoting. :ghpull:`11330`
179 - %Magic command arguments now support quoting. :ghpull:`11330`
136
180
137 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
181 - Re-add ``rprint`` and ``rprinte`` aliases. :ghpull:`11331`
138
182
139 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
183 - Remove implicit dependency on ``ipython_genutils`` :ghpull:`11317`
140
184
141 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
185 - Make ``nonlocal`` raise ``SyntaxError`` instead of silently failing in async
142 mode. :ghpull:`11382`
186 mode. :ghpull:`11382`
143
187
144 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
188 - Fix mishandling of magics and ``= !`` assignment just after a dedent in
145 nested code blocks :ghpull:`11418`
189 nested code blocks :ghpull:`11418`
146
190
147 - Fix instructions for custom shortcuts :ghpull:`11426`
191 - Fix instructions for custom shortcuts :ghpull:`11426`
148
192
149
193
150 Notable Internals improvements:
194 Notable Internals improvements:
151
195
152 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
196 - Use of ``os.scandir`` (Python 3 only) to speed up some file system operations.
153 :ghpull:`11365`
197 :ghpull:`11365`
154
198
155 - use ``perf_counter`` instead of ``clock`` for more precise
199 - use ``perf_counter`` instead of ``clock`` for more precise
156 timing results with ``%time`` :ghpull:`11376`
200 timing results with ``%time`` :ghpull:`11376`
157
201
158 Many thanks to all the contributors and in particular to ``bartskowron`` and
202 Many thanks to all the contributors and in particular to ``bartskowron`` and
159 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
203 ``tonyfast`` who handled some pretty complicated bugs in the input machinery. We
160 had a number of first time contributors and maybe hacktoberfest participants that
204 had a number of first time contributors and maybe hacktoberfest participants that
161 made significant contributions and helped us free some time to focus on more
205 made significant contributions and helped us free some time to focus on more
162 complicated bugs.
206 complicated bugs.
163
207
164 You
208 You
165 can see all the closed issues and Merged PR, new features and fixes `here
209 can see all the closed issues and Merged PR, new features and fixes `here
166 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
210 <https://github.com/ipython/ipython/issues?utf8=%E2%9C%93&q=+is%3Aclosed+milestone%3A7.1+>`_.
167
211
168 Unicode Completion update
212 Unicode Completion update
169 -------------------------
213 -------------------------
170
214
171 In IPython 7.1 the Unicode completion map has been updated and synchronized with
215 In IPython 7.1 the Unicode completion map has been updated and synchronized with
172 the Julia language.
216 the Julia language.
173
217
174 Added and removed character characters:
218 Added and removed character characters:
175
219
176 ``\jmath`` (``Θ·``), ``\\underleftrightarrow`` (U+034D, combining) have been
220 ``\jmath`` (``Θ·``), ``\\underleftrightarrow`` (U+034D, combining) have been
177 added, while ``\\textasciicaron`` have been removed
221 added, while ``\\textasciicaron`` have been removed
178
222
179 Some sequences have seen their prefix removed:
223 Some sequences have seen their prefix removed:
180
224
181 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
225 - 6 characters ``\text...<tab>`` should now be inputed with ``\...<tab>`` directly,
182 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
226 - 45 characters ``\Elz...<tab>`` should now be inputed with ``\...<tab>`` directly,
183 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
227 - 65 characters ``\B...<tab>`` should now be inputed with ``\...<tab>`` directly,
184 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
228 - 450 characters ``\m...<tab>`` should now be inputed with ``\...<tab>`` directly,
185
229
186 Some sequences have seen their prefix shortened:
230 Some sequences have seen their prefix shortened:
187
231
188 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
232 - 5 characters ``\mitBbb...<tab>`` should now be inputed with ``\bbi...<tab>`` directly,
189 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
233 - 52 characters ``\mit...<tab>`` should now be inputed with ``\i...<tab>`` directly,
190 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
234 - 216 characters ``\mbfit...<tab>`` should now be inputed with ``\bi...<tab>`` directly,
191 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
235 - 222 characters ``\mbf...<tab>`` should now be inputed with ``\b...<tab>`` directly,
192
236
193 A couple of characters had their sequence simplified:
237 A couple of characters had their sequence simplified:
194
238
195 - ``Γ°``, type ``\dh<tab>``, instead of ``\eth<tab>``
239 - ``Γ°``, type ``\dh<tab>``, instead of ``\eth<tab>``
196 - ``Δ§``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
240 - ``Δ§``, type ``\hbar<tab>``, instead of ``\Elzxh<tab>``
197 - ``ΙΈ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
241 - ``ΙΈ``, type ``\ltphi<tab>``, instead of ``\textphi<tab>``
198 - ``Ο΄``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
242 - ``Ο΄``, type ``\varTheta<tab>``, instead of ``\textTheta<tab>``
199 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
243 - ``ℇ``, type ``\eulermascheroni<tab>``, instead of ``\Eulerconst<tab>``
200 - ``β„Ž``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
244 - ``β„Ž``, type ``\planck<tab>``, instead of ``\Planckconst<tab>``
201
245
202 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
246 - U+0336 (COMBINING LONG STROKE OVERLAY), type ``\strike<tab>``, instead of ``\Elzbar<tab>``.
203
247
204 A couple of sequences have been updated:
248 A couple of sequences have been updated:
205
249
206 - ``\varepsilon`` now gives ``Ι›`` (GREEK SMALL LETTER EPSILON) instead of ``Ξ΅`` (GREEK LUNATE EPSILON SYMBOL),
250 - ``\varepsilon`` now gives ``Ι›`` (GREEK SMALL LETTER EPSILON) instead of ``Ξ΅`` (GREEK LUNATE EPSILON SYMBOL),
207 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
251 - ``\underbar`` now gives U+0331 (COMBINING MACRON BELOW) instead of U+0332 (COMBINING LOW LINE).
208
252
209
253
210 .. _whatsnew700:
254 .. _whatsnew700:
211
255
212 IPython 7.0.0
256 IPython 7.0.0
213 =============
257 =============
214
258
215 Released Thursday September 27th, 2018
259 Released Thursday September 27th, 2018
216
260
217 IPython 7 includes major feature improvements.
261 IPython 7 includes major feature improvements.
218 This is also the second major version of IPython to support only
262 This is also the second major version of IPython to support only
219 Python 3 – starting at Python 3.4. Python 2 is still community-supported
263 Python 3 – starting at Python 3.4. Python 2 is still community-supported
220 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
264 on the bugfix only 5.x branch, but we remind you that Python 2 "end of life"
221 is on Jan 1st 2020.
265 is on Jan 1st 2020.
222
266
223 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
267 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
224 backported more than `70 Pull-Requests
268 backported more than `70 Pull-Requests
225 <https://github.com/ipython/ipython/pulls?page=3&q=is%3Apr+sort%3Aupdated-desc+author%3Aapp%2Fmeeseeksdev++5.x&utf8=%E2%9C%93>`_, but there are still many PRs that required manual work. This is an area of the project where you can easily contribute by looking for `PRs that still need manual backport <https://github.com/ipython/ipython/issues?q=label%3A%22Still+Needs+Manual+Backport%22+is%3Aclosed+sort%3Aupdated-desc>`_
269 <https://github.com/ipython/ipython/pulls?page=3&q=is%3Apr+sort%3Aupdated-desc+author%3Aapp%2Fmeeseeksdev++5.x&utf8=%E2%9C%93>`_, but there are still many PRs that required manual work. This is an area of the project where you can easily contribute by looking for `PRs that still need manual backport <https://github.com/ipython/ipython/issues?q=label%3A%22Still+Needs+Manual+Backport%22+is%3Aclosed+sort%3Aupdated-desc>`_
226
270
227 The IPython 6.x branch will likely not see any further release unless critical
271 The IPython 6.x branch will likely not see any further release unless critical
228 bugs are found.
272 bugs are found.
229
273
230 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
274 Make sure you have pip > 9.0 before upgrading. You should be able to update by running:
231
275
232 .. code::
276 .. code::
233
277
234 pip install ipython --upgrade
278 pip install ipython --upgrade
235
279
236 .. only:: ipydev
280 .. only:: ipydev
237
281
238 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
282 If you are trying to install or update an ``alpha``, ``beta``, or ``rc``
239 version, use pip ``--pre`` flag.
283 version, use pip ``--pre`` flag.
240
284
241 .. code::
285 .. code::
242
286
243 pip install ipython --upgrade --pre
287 pip install ipython --upgrade --pre
244
288
245
289
246 Or, if you have conda installed:
290 Or, if you have conda installed:
247
291
248 .. code::
292 .. code::
249
293
250 conda install ipython
294 conda install ipython
251
295
252
296
253
297
254 Prompt Toolkit 2.0
298 Prompt Toolkit 2.0
255 ------------------
299 ------------------
256
300
257 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
301 IPython 7.0+ now uses ``prompt_toolkit 2.0``. If you still need to use an earlier
258 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
302 ``prompt_toolkit`` version, you may need to pin IPython to ``<7.0``.
259
303
260 Autowait: Asynchronous REPL
304 Autowait: Asynchronous REPL
261 ---------------------------
305 ---------------------------
262
306
263 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
307 Staring with IPython 7.0 on Python 3.6+, IPython can automatically ``await``
264 top level code. You should not need to access an event loop or runner
308 top level code. You should not need to access an event loop or runner
265 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
309 yourself. To learn more, read the :ref:`autoawait` section of our docs, see
266 :ghpull:`11265`, or try the following code::
310 :ghpull:`11265`, or try the following code::
267
311
268 Python 3.6.0
312 Python 3.6.0
269 Type 'copyright', 'credits' or 'license' for more information
313 Type 'copyright', 'credits' or 'license' for more information
270 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
314 IPython 7.0.0 -- An enhanced Interactive Python. Type '?' for help.
271
315
272 In [1]: import aiohttp
316 In [1]: import aiohttp
273 ...: result = aiohttp.get('https://api.github.com')
317 ...: result = aiohttp.get('https://api.github.com')
274
318
275 In [2]: response = await result
319 In [2]: response = await result
276 <pause for a few 100s ms>
320 <pause for a few 100s ms>
277
321
278 In [3]: await response.json()
322 In [3]: await response.json()
279 Out[3]:
323 Out[3]:
280 {'authorizations_url': 'https://api.github.com/authorizations',
324 {'authorizations_url': 'https://api.github.com/authorizations',
281 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
325 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
282 ...
326 ...
283 }
327 }
284
328
285 .. note::
329 .. note::
286
330
287 Async integration is experimental code, behavior may change or be removed
331 Async integration is experimental code, behavior may change or be removed
288 between Python and IPython versions without warnings.
332 between Python and IPython versions without warnings.
289
333
290 Integration is by default with `asyncio`, but other libraries can be configured --
334 Integration is by default with `asyncio`, but other libraries can be configured --
291 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
335 like ``curio`` or ``trio`` -- to improve concurrency in the REPL::
292
336
293 In [1]: %autoawait trio
337 In [1]: %autoawait trio
294
338
295 In [2]: import trio
339 In [2]: import trio
296
340
297 In [3]: async def child(i):
341 In [3]: async def child(i):
298 ...: print(" child %s goes to sleep"%i)
342 ...: print(" child %s goes to sleep"%i)
299 ...: await trio.sleep(2)
343 ...: await trio.sleep(2)
300 ...: print(" child %s wakes up"%i)
344 ...: print(" child %s wakes up"%i)
301
345
302 In [4]: print('parent start')
346 In [4]: print('parent start')
303 ...: async with trio.open_nursery() as n:
347 ...: async with trio.open_nursery() as n:
304 ...: for i in range(3):
348 ...: for i in range(3):
305 ...: n.spawn(child, i)
349 ...: n.spawn(child, i)
306 ...: print('parent end')
350 ...: print('parent end')
307 parent start
351 parent start
308 child 2 goes to sleep
352 child 2 goes to sleep
309 child 0 goes to sleep
353 child 0 goes to sleep
310 child 1 goes to sleep
354 child 1 goes to sleep
311 <about 2 seconds pause>
355 <about 2 seconds pause>
312 child 2 wakes up
356 child 2 wakes up
313 child 1 wakes up
357 child 1 wakes up
314 child 0 wakes up
358 child 0 wakes up
315 parent end
359 parent end
316
360
317 See :ref:`autoawait` for more information.
361 See :ref:`autoawait` for more information.
318
362
319
363
320 Asynchronous code in a Notebook interface or any other frontend using the
364 Asynchronous code in a Notebook interface or any other frontend using the
321 Jupyter Protocol will require further updates to the IPykernel package.
365 Jupyter Protocol will require further updates to the IPykernel package.
322
366
323 Non-Asynchronous code
367 Non-Asynchronous code
324 ~~~~~~~~~~~~~~~~~~~~~
368 ~~~~~~~~~~~~~~~~~~~~~
325
369
326 As the internal API of IPython is now asynchronous, IPython needs to run under
370 As the internal API of IPython is now asynchronous, IPython needs to run under
327 an event loop. In order to allow many workflows, (like using the :magic:`%run`
371 an event loop. In order to allow many workflows, (like using the :magic:`%run`
328 magic, or copy-pasting code that explicitly starts/stop event loop), when
372 magic, or copy-pasting code that explicitly starts/stop event loop), when
329 top-level code is detected as not being asynchronous, IPython code is advanced
373 top-level code is detected as not being asynchronous, IPython code is advanced
330 via a pseudo-synchronous runner, and may not advance pending tasks.
374 via a pseudo-synchronous runner, and may not advance pending tasks.
331
375
332 Change to Nested Embed
376 Change to Nested Embed
333 ~~~~~~~~~~~~~~~~~~~~~~
377 ~~~~~~~~~~~~~~~~~~~~~~
334
378
335 The introduction of the ability to run async code had some effect on the
379 The introduction of the ability to run async code had some effect on the
336 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
380 ``IPython.embed()`` API. By default, embed will not allow you to run asynchronous
337 code unless an event loop is specified.
381 code unless an event loop is specified.
338
382
339 Effects on Magics
383 Effects on Magics
340 ~~~~~~~~~~~~~~~~~
384 ~~~~~~~~~~~~~~~~~
341
385
342 Some magics will not work with async until they're updated.
386 Some magics will not work with async until they're updated.
343 Contributions welcome.
387 Contributions welcome.
344
388
345 Expected Future changes
389 Expected Future changes
346 ~~~~~~~~~~~~~~~~~~~~~~~
390 ~~~~~~~~~~~~~~~~~~~~~~~
347
391
348 We expect more internal but public IPython functions to become ``async``, and
392 We expect more internal but public IPython functions to become ``async``, and
349 will likely end up having a persistent event loop while IPython is running.
393 will likely end up having a persistent event loop while IPython is running.
350
394
351 Thanks
395 Thanks
352 ~~~~~~
396 ~~~~~~
353
397
354 This release took more than a year in the making.
398 This release took more than a year in the making.
355 The code was rebased a number of
399 The code was rebased a number of
356 times; leading to commit authorship that may have been lost in the final
400 times; leading to commit authorship that may have been lost in the final
357 Pull-Request. Huge thanks to many people for contribution, discussion, code,
401 Pull-Request. Huge thanks to many people for contribution, discussion, code,
358 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
402 documentation, use-cases: dalejung, danielballan, ellisonbg, fperez, gnestor,
359 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
403 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many others.
360
404
361
405
362 Autoreload Improvement
406 Autoreload Improvement
363 ----------------------
407 ----------------------
364
408
365 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
409 The magic :magic:`%autoreload 2 <autoreload>` now captures new methods added to
366 classes. Earlier, only methods existing as of the initial import were being
410 classes. Earlier, only methods existing as of the initial import were being
367 tracked and updated.
411 tracked and updated.
368
412
369 This new feature helps dual environment development - Jupyter+IDE - where the
413 This new feature helps dual environment development - Jupyter+IDE - where the
370 code gradually moves from notebook cells to package files as it gets
414 code gradually moves from notebook cells to package files as it gets
371 structured.
415 structured.
372
416
373 **Example**: An instance of the class ``MyClass`` will be able to access the
417 **Example**: An instance of the class ``MyClass`` will be able to access the
374 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
418 method ``cube()`` after it is uncommented and the file ``file1.py`` is saved on
375 disk.
419 disk.
376
420
377
421
378 .. code::
422 .. code::
379
423
380 # notebook
424 # notebook
381
425
382 from mymodule import MyClass
426 from mymodule import MyClass
383 first = MyClass(5)
427 first = MyClass(5)
384
428
385 .. code::
429 .. code::
386
430
387 # mymodule/file1.py
431 # mymodule/file1.py
388
432
389 class MyClass:
433 class MyClass:
390
434
391 def __init__(self, a=10):
435 def __init__(self, a=10):
392 self.a = a
436 self.a = a
393
437
394 def square(self):
438 def square(self):
395 print('compute square')
439 print('compute square')
396 return self.a*self.a
440 return self.a*self.a
397
441
398 # def cube(self):
442 # def cube(self):
399 # print('compute cube')
443 # print('compute cube')
400 # return self.a*self.a*self.a
444 # return self.a*self.a*self.a
401
445
402
446
403
447
404
448
405 Misc
449 Misc
406 ----
450 ----
407
451
408 The autoindent feature that was deprecated in 5.x was re-enabled and
452 The autoindent feature that was deprecated in 5.x was re-enabled and
409 un-deprecated in :ghpull:`11257`
453 un-deprecated in :ghpull:`11257`
410
454
411 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
455 Make :magic:`%run -n -i ... <run>` work correctly. Earlier, if :magic:`%run` was
412 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
456 passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
413
457
414
458
415 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
459 The :cellmagic:`%%script` (as well as :cellmagic:`%%bash`,
416 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
460 :cellmagic:`%%ruby`... ) cell magics now raise by default if the return code of
417 the given code is non-zero (thus halting execution of further cells in a
461 the given code is non-zero (thus halting execution of further cells in a
418 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
462 notebook). The behavior can be disable by passing the ``--no-raise-error`` flag.
419
463
420
464
421 Deprecations
465 Deprecations
422 ------------
466 ------------
423
467
424 A couple of unused functions and methods have been deprecated and will be removed
468 A couple of unused functions and methods have been deprecated and will be removed
425 in future versions:
469 in future versions:
426
470
427 - ``IPython.utils.io.raw_print_err``
471 - ``IPython.utils.io.raw_print_err``
428 - ``IPython.utils.io.raw_print``
472 - ``IPython.utils.io.raw_print``
429
473
430
474
431 Backwards incompatible changes
475 Backwards incompatible changes
432 ------------------------------
476 ------------------------------
433
477
434 * The API for transforming input before it is parsed as Python code has been
478 * The API for transforming input before it is parsed as Python code has been
435 completely redesigned: any custom input transformations will need to be
479 completely redesigned: any custom input transformations will need to be
436 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
480 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
@@ -1,35 +1,59 b''
1 # Simple tool to help for release
1 # Simple tool to help for release
2 # when releasing with bash, simplei source it to get asked questions.
2 # when releasing with bash, simplei source it to get asked questions.
3
3
4 set -euo pipefail
5
4 echo -n PREV_RELEASE:
6 echo -n PREV_RELEASE:
5 read PREV_RELEASE
7 read PREV_RELEASE
6 echo -n MILESTONE:
8 echo -n MILESTONE:
7 read MILESTONE
9 read MILESTONE
8 echo -n VERSION:
10 echo -n VERSION:
9 read VERSION
11 read VERSION
10 echo -n branch:
12 echo -n branch:
11 read branch
13 read branch
12
14
15 echo
13 echo "updating what's new with informations from docs/source/whatsnew/pr"
16 echo "updating what's new with informations from docs/source/whatsnew/pr"
14 python tools/update_whatsnew.py
17 python tools/update_whatsnew.py
15
18
19 echo
20 echo "please move the contents of developents.rst ot version-X.rst"
21 echo "Press enter to continue"
22 read
23
24 echo
16 echo "here are all the authors that contributed to this release:"
25 echo "here are all the authors that contributed to this release:"
17 git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f
26 git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f
18
27
28 echo
19 echo "If you see any duplicates cancel (Ctrl-C), then edit .mailmap" Press enter to continue
29 echo "If you see any duplicates cancel (Ctrl-C), then edit .mailmap" Press enter to continue
20 read
30 read
21
31
22 echo "generating stats"
32 echo "generating stats"
23 python tools/github_stats.py --milestone $MILESTONE > stats.rst
33 python tools/github_stats.py --milestone $MILESTONE > stats.rst
24
34
25 echo "stats.rst files generated. Please merge it with the right file (github-stats-X.rst)"
35 echo "stats.rst files generated. Please merge it with the right file (github-stats-X.rst)"
26 echo "press enter to continue."
36 echo "press enter to continue."
27 read
37 read
28
38
29 echo "Cleaning repository"
39 echo "Cleaning repository"
30 git clean -xfdi
40 git clean -xfdi
31
41
32 echo "please update version number in IPython/core/release.py"
42 echo "please update version number in IPython/core/release.py"
33
43
34 echo "Press enter to continue"
44 echo "Press enter to continue"
35 read
45 read
46
47 echo
48 echo "Attempting to build the docs.."
49 make html -C docs
50
51 echo
52 echo "Check the docs, press enter to continue"
53 read
54
55 echo
56 echo "Attempting to build package..."
57
58 tools/build_release
59
General Comments 0
You need to be logged in to leave comments. Login now