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 |
|
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 |
|
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