##// END OF EJS Templates
Merge pull request #11290 from Carreau/wn7...
Matthias Bussonnier -
r24550:869480ed merge
parent child Browse files
Show More
@@ -541,7 +541,6 b' class TransformerManager:'
541 cell += '\n' # Ensure the cell has a trailing newline
541 cell += '\n' # Ensure the cell has a trailing newline
542 lines = cell.splitlines(keepends=True)
542 lines = cell.splitlines(keepends=True)
543 for transform in self.cleanup_transforms + self.line_transforms:
543 for transform in self.cleanup_transforms + self.line_transforms:
544 #print(transform, lines)
545 lines = transform(lines)
544 lines = transform(lines)
546
545
547 lines = self.do_token_transforms(lines)
546 lines = self.do_token_transforms(lines)
@@ -87,8 +87,10 b' def is_stable(extra):'
87
87
88 if is_stable(iprelease['_version_extra']):
88 if is_stable(iprelease['_version_extra']):
89 tags.add('ipystable')
89 tags.add('ipystable')
90 print('Adding Tag: ipystable')
90 else:
91 else:
91 tags.add('ipydev')
92 tags.add('ipydev')
93 print('Adding Tag: ipydev')
92 rst_prolog += """
94 rst_prolog += """
93 .. warning::
95 .. warning::
94
96
@@ -143,8 +145,7 b" today_fmt = '%B %d, %Y'"
143
145
144 # Exclude these glob-style patterns when looking for source files. They are
146 # Exclude these glob-style patterns when looking for source files. They are
145 # relative to the source/ directory.
147 # relative to the source/ directory.
146 exclude_patterns = ['whatsnew/pr/antigravity-feature.*',
148 exclude_patterns = []
147 'whatsnew/pr/incompat-switching-to-perl.*']
148
149
149
150
150 # If true, '()' will be appended to :func: etc. cross-reference text.
151 # If true, '()' will be appended to :func: etc. cross-reference text.
@@ -19,18 +19,17 b' need to be backported to an earlier release; then it should be tagged with the'
19 correct ``milestone``.
19 correct ``milestone``.
20
20
21 If you tag a pull request with a milestone **before** merging the pull request,
21 If you tag a pull request with a milestone **before** merging the pull request,
22 and the base ref is `master`, then our backport bot should automatically create
22 and the base ref is ``master``, then our backport bot should automatically create
23 a corresponding pull-request that backport on the correct branch.
23 a corresponding pull-request that backport on the correct branch.
24
24
25 If you are an admin on the IPython repository you can also just mention the
25 If you have write access to the IPython repository you can also just mention the
26 **backport bot** to do the work for you. The bot is evolving so instructions may
26 **backport bot** to do the work for you. The bot is evolving so instructions may
27 be different. At the time of this writing you can use::
27 be different. At the time of this writing you can use::
28
28
29 @meeseeksdev[bot] backport [to <branchname>]
29 @meeseeksdev[bot] backport [to] <branchname>
30
30
31 The bot will attempt to backport the current pull-request and issue a PR if
31 The bot will attempt to backport the current pull-request and issue a PR if
32 possible. If the milestone is set on the issue you can omit the branch to
32 possible.
33 backport to.
34
33
35 .. note::
34 .. note::
36
35
@@ -149,8 +148,10 b' If a major release:'
149 - Edit ``docs/source/whatsnew/index.rst`` to list the new ``github-stats-X``
148 - Edit ``docs/source/whatsnew/index.rst`` to list the new ``github-stats-X``
150 file you just created.
149 file you just created.
151
150
152 - Remove temporarily the first entry called ``development`` (you'll need to
151 - You do not need to temporarily remove the first entry called
153 add it back after release).
152 ``development``, nor re-add it after the release, it will automatically be
153 hidden when releasing a stable version of IPython (if ``_version_extra``
154 in ``release.py`` is an empty string.
154
155
155 Make sure that the stats file has a header or it won't be rendered in
156 Make sure that the stats file has a header or it won't be rendered in
156 the final documentation.
157 the final documentation.
@@ -5,7 +5,7 b' Asynchronous in REPL: Autoawait'
5
5
6 .. note::
6 .. note::
7
7
8 This feature is experimental and behavior can change betwen python and
8 This feature is experimental and behavior can change between python and
9 IPython version without prior deprecation.
9 IPython version without prior deprecation.
10
10
11 Starting with IPython 7.0, and when user Python 3.6 and above, IPython offer the
11 Starting with IPython 7.0, and when user Python 3.6 and above, IPython offer the
@@ -18,24 +18,10 b' Need to be updated:'
18
18
19 .. toctree::
19 .. toctree::
20 :maxdepth: 2
20 :maxdepth: 2
21 :glob:
21 :glob:
22
22
23 pr/*
23 pr/*
24
24
25 IPython 6 feature a major improvement in the completion machinery which is now
26 capable of completing non-executed code. It is also the first version of IPython
27 to stop compatibility with Python 2, which is still supported on the bugfix only
28 5.x branch. Read below to have a non-exhaustive list of new features.
29
30 Make sure you have pip > 9.0 before upgrading.
31 You should be able to update by using:
32
33 .. code::
34
35 pip install ipython --upgrade
36
37
38
39
25
40 .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT.
26 .. DO NOT EDIT THIS LINE BEFORE RELEASE. FEATURE INSERTION POINT.
41
27
@@ -12,6 +12,29 b''
12 What's new in IPython
12 What's new in IPython
13 =====================
13 =====================
14
14
15 ..
16 this will appear in the docs if we are not releasing a versin (ie is
17 `_version_extra` in release.py is empty string
18
19 .. only:: ipydev
20
21 Development version in-progress features:
22
23 .. toctree::
24
25 development
26
27 ..
28 this make a hidden toctree that avoid sphinx to complain about documents
29 included nowhere when building docs for stable
30
31 .. only:: ipystable
32
33 .. toctree::
34 :hidden:
35
36 development
37
15 This section documents the changes that have been made in various versions of
38 This section documents the changes that have been made in various versions of
16 IPython. Users should consult these pages to learn about new features, bug
39 IPython. Users should consult these pages to learn about new features, bug
17 fixes and backwards incompatibilities. Developers should summarize the
40 fixes and backwards incompatibilities. Developers should summarize the
@@ -20,7 +43,7 b' development work they do here in a user friendly format.'
20 .. toctree::
43 .. toctree::
21 :maxdepth: 1
44 :maxdepth: 1
22
45
23 development
46 version7
24 version6
47 version6
25 github-stats-6
48 github-stats-6
26 version5
49 version5
@@ -0,0 +1,5 b''
1 Antigravity feature
2 ===================
3
4 Example new antigravity feature. Try ``import antigravity`` in a Python 3
5 console.
@@ -0,0 +1,1 b''
1 Starting with IPython 42, only perl code execution is allowed. See :ghpull:`42`
@@ -155,7 +155,7 b' Other improvements to the Notebook'
155 These are some other notable small improvements to the notebook, in addition to
155 These are some other notable small improvements to the notebook, in addition to
156 many bug fixes and minor changes to add polish and robustness throughout:
156 many bug fixes and minor changes to add polish and robustness throughout:
157
157
158 * The notebook pager (the area at the bottom) is now resizeable by dragging its
158 * The notebook pager (the area at the bottom) is now Resizable by dragging its
159 divider handle, a feature that had been requested many times by just about
159 divider handle, a feature that had been requested many times by just about
160 anyone who had used the notebook system. :ghpull:`1705`.
160 anyone who had used the notebook system. :ghpull:`1705`.
161
161
@@ -182,7 +182,7 b' Other new features'
182 * ``NotebookApp.webapp_settings`` is deprecated and replaced with
182 * ``NotebookApp.webapp_settings`` is deprecated and replaced with
183 the more informatively named ``NotebookApp.tornado_settings``.
183 the more informatively named ``NotebookApp.tornado_settings``.
184
184
185 * Using :magic:`timeit` prints warnings if there is atleast a 4x difference in timings
185 * Using :magic:`timeit` prints warnings if there is at least a 4x difference in timings
186 between the slowest and fastest runs, since this might meant that the multiple
186 between the slowest and fastest runs, since this might meant that the multiple
187 runs are not independent of one another.
187 runs are not independent of one another.
188
188
@@ -1,3 +1,52 b''
1 ============
2 7.x Series
3 ============
4
5 .. _whatsnew700:
6
7 IPython 7.0.0
8 =============
9
10 .. warning::
11
12 IPython 7.0 is currently in Beta, Feedback on API/changes and
13 addition/updates to this cahngelog are welcomed.
14
15 Released .... ...., 2017
16
17 IPython 7 include major features improvement as you can read in the following
18 changelog. This is also the second major version of IPython to stop support only
19 Python 3 – starting at Python 3.4. Python 2 is still still community supported
20 on the bugfix only 5.x branch, but we remind you that Python 2 EOL is Jan 1st
21 2020.
22
23 We were able to backport bug fixes to the 5.x branch thanks to our backport bot which
24 backported more than `70 Pull-Requests
25 <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 manually work, and this is an area of the project were you can easily contribute by looking for `PRs still needed backport <https://github.com/ipython/ipython/issues?q=label%3A%22Still+Needs+Manual+Backport%22+is%3Aclosed+sort%3Aupdated-desc>`_
26
27 IPython 6.x branch will likely not see any further release unless we critical
28 bugs are found.
29
30 Make sure you have pip > 9.0 before upgrading. You should be able to update by simply runngin
31
32 .. code::
33
34 pip install ipython --upgrade
35
36 Or if you have conda installed:
37
38 .. code::
39
40 conda install ipython
41
42
43
44 Prompt Toolkit 2.0
45 ------------------
46
47 IPython 7.0+ now use ``prompt_toolkit 2.0``, if you still need to use earlier
48 ``prompt_toolkit`` version you may need to pin IPython to ``<7.0``.
49
1 Autowait: Asynchronous REPL
50 Autowait: Asynchronous REPL
2 ---------------------------
51 ---------------------------
3
52
@@ -28,7 +77,7 b' yourself. To know more read the :ref:`autoawait` section of our docs, see'
28 Async integration is experimental code, behavior may change or be removed
77 Async integration is experimental code, behavior may change or be removed
29 between Python and IPython versions without warnings.
78 between Python and IPython versions without warnings.
30
79
31 Integration is by default with `asyncio`, but other libraries can be configured,
80 Integration is by default with `asyncio`, but other libraries can be configured,
32 like ``curio`` or ``trio``, to improve concurrency in the REPL::
81 like ``curio`` or ``trio``, to improve concurrency in the REPL::
33
82
34 In [1]: %autoawait trio
83 In [1]: %autoawait trio
@@ -61,8 +110,8 b' See :ref:`autoawait` for more information.'
61 Asynchronous code in a Notebook interface or any other frontend using the
110 Asynchronous code in a Notebook interface or any other frontend using the
62 Jupyter Protocol will need further updates of the IPykernel package.
111 Jupyter Protocol will need further updates of the IPykernel package.
63
112
64 Non-Asynchronous code
113 Non-Asynchronous code
65 ---------------------
114 ~~~~~~~~~~~~~~~~~~~~~
66
115
67 As the internal API of IPython are now asynchronous, IPython need to run under
116 As the internal API of IPython are now asynchronous, IPython need to run under
68 an even loop. In order to allow many workflow, (like using the ``%run`` magic,
117 an even loop. In order to allow many workflow, (like using the ``%run`` magic,
@@ -71,29 +120,96 b' is detected as not being asynchronous, IPython code is advanced via a'
71 pseudo-synchronous runner, and will not may not advance pending tasks.
120 pseudo-synchronous runner, and will not may not advance pending tasks.
72
121
73 Change to Nested Embed
122 Change to Nested Embed
74 ----------------------
123 ~~~~~~~~~~~~~~~~~~~~~~
75
124
76 The introduction of the ability to run async code had some effect on the
125 The introduction of the ability to run async code had some effect on the
77 ``IPython.embed()`` API. By default embed will not allow you to run asynchronous
126 ``IPython.embed()`` API. By default embed will not allow you to run asynchronous
78 code unless a event loop is specified.
127 code unless a event loop is specified.
79
128
80 Effects on Magics
129 Effects on Magics
81 -----------------
130 ~~~~~~~~~~~~~~~~~
82
131
83 Some magics will not work with Async, and will need updates. Contribution
132 Some magics will not work with Async, and will need updates. Contribution
84 welcome.
133 welcome.
85
134
86 Expected Future changes
135 Expected Future changes
87 -----------------------
136 ~~~~~~~~~~~~~~~~~~~~~~~
88
137
89 We expect more internal but public IPython function to become ``async``, and
138 We expect more internal but public IPython function to become ``async``, and
90 will likely end up having a persisting event loop while IPython is running.
139 will likely end up having a persisting event loop while IPython is running.
91
140
92 Thanks
141 Thanks
93 ------
142 ~~~~~~
94
143
95 This took more than a year in the making, and the code was rebased a number of
144 This took more than a year in the making, and the code was rebased a number of
96 time leading to commit authorship that may have been lost in the final
145 time leading to commit authorship that may have been lost in the final
97 Pull-Request. Huge thanks to many people for contribution, discussion, code,
146 Pull-Request. Huge thanks to many people for contribution, discussion, code,
98 documentation, use-case: dalejung, danielballan, ellisonbg, fperez, gnestor,
147 documentation, use-case: dalejung, danielballan, ellisonbg, fperez, gnestor,
99 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many other.
148 minrk, njsmith, pganssle, tacaswell, takluyver , vidartf ... And many other.
149
150
151 Autoreload Improvement
152 ----------------------
153
154 The magic ``%autoreload 2`` now captures new methods added to classes. Earlier, only methods existing as of the initial import were being tracked and updated.
155
156 This new feature helps dual environment development - Jupyter+IDE - where the code gradually moves from notebook cells to package files, as it gets structured.
157
158 **Example**: An instance of the class `MyClass` will be able to access the method `cube()` after it is uncommented and the file `file1.py` saved on disk.
159
160
161 ..code::
162
163 # notebook
164
165 from mymodule import MyClass
166 first = MyClass(5)
167
168 .. code::
169
170 # mymodule/file1.py
171
172 class MyClass:
173
174 def __init__(self, a=10):
175 self.a = a
176
177 def square(self):
178 print('compute square')
179 return self.a*self.a
180
181 # def cube(self):
182 # print('compute cube')
183 # return self.a*self.a*self.a
184
185
186
187
188 Misc
189 ----
190
191 The autoindent feature that was deprecated in 5.x was re-enabled and
192 un-deprecated in :ghpull:`11257`
193
194 Make ``%run -n -i ...`` work correctly. Earlier, if ``%run`` was passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308`
195
196
197
198
199
200 Deprecations
201 ------------
202
203 A couple of unused function and methods have been deprecated and will be removed
204 in future versions:
205
206 - ``IPython.utils.io.raw_print_err``
207 - ``IPython.utils.io.raw_print``
208
209
210 Backwards incompatible changes
211 ------------------------------
212
213 * The API for transforming input before it is parsed as Python code has been
214 completely redesigned, and any custom input transformations will need to be
215 rewritten. See :doc:`/config/inputtransforms` for details of the new API.
@@ -26,8 +26,11 b' def main():'
26
26
27 with open(filename) as f:
27 with open(filename) as f:
28 data = f.read()
28 data = f.read()
29 if data and data.splitlines()[1].startswith('='):
29 try:
30 continue
30 if data and data.splitlines()[1].startswith('='):
31 continue
32 except IndexError:
33 pass
31
34
32 with open(filename, 'w') as f:
35 with open(filename, 'w') as f:
33 f.write(title+'\n')
36 f.write(title+'\n')
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now