Show More
@@ -143,8 +143,7 b" today_fmt = '%B %d, %Y'" | |||||
143 |
|
143 | |||
144 | # Exclude these glob-style patterns when looking for source files. They are |
|
144 | # Exclude these glob-style patterns when looking for source files. They are | |
145 | # relative to the source/ directory. |
|
145 | # relative to the source/ directory. | |
146 | exclude_patterns = ['whatsnew/pr/antigravity-feature.*', |
|
146 | exclude_patterns = [] | |
147 | 'whatsnew/pr/incompat-switching-to-perl.*'] |
|
|||
148 |
|
147 | |||
149 |
|
148 | |||
150 | # If true, '()' will be appended to :func: etc. cross-reference text. |
|
149 | # If true, '()' will be appended to :func: etc. cross-reference text. |
@@ -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 |
@@ -21,6 +21,7 b' development work they do here in a user friendly format.' | |||||
21 | :maxdepth: 1 |
|
21 | :maxdepth: 1 | |
22 |
|
22 | |||
23 | development |
|
23 | development | |
|
24 | version7 | |||
24 | version6 |
|
25 | version6 | |
25 | github-stats-6 |
|
26 | github-stats-6 | |
26 | version5 |
|
27 | 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` |
@@ -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,95 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 Improvment | |||
|
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 | # mymodule/file1.py | |||
|
170 | ||||
|
171 | class MyClass: | |||
|
172 | ||||
|
173 | def __init__(self, a=10): | |||
|
174 | self.a = a | |||
|
175 | ||||
|
176 | def square(self): | |||
|
177 | print('compute square') | |||
|
178 | return self.a*self.a | |||
|
179 | ||||
|
180 | # def cube(self): | |||
|
181 | # print('compute cube') | |||
|
182 | # return self.a*self.a*self.a | |||
|
183 | ||||
|
184 | ||||
|
185 | ||||
|
186 | ||||
|
187 | Misc | |||
|
188 | ---- | |||
|
189 | ||||
|
190 | The autoindent feature that was deprecated in 5.x was re-enabled and | |||
|
191 | un-deprecated in :ghpull:`11257` | |||
|
192 | ||||
|
193 | Make ``%run -n -i ...`` work correctly. Earlier, if ``%run`` was passed both arguments, ``-n`` would be silently ignored. See :ghpull:`10308` | |||
|
194 | ||||
|
195 | ||||
|
196 | ||||
|
197 | ||||
|
198 | ||||
|
199 | Deprecations | |||
|
200 | ------------ | |||
|
201 | ||||
|
202 | A couple of unused function and methods have been deprecated and will be removed | |||
|
203 | in future versions: | |||
|
204 | ||||
|
205 | - ``IPython.utils.io.raw_print_err`` | |||
|
206 | - ``IPython.utils.io.raw_print`` | |||
|
207 | ||||
|
208 | ||||
|
209 | Backwards incompatible changes | |||
|
210 | ------------------------------ | |||
|
211 | ||||
|
212 | * The API for transforming input before it is parsed as Python code has been | |||
|
213 | completely redesigned, and any custom input transformations will need to be | |||
|
214 | 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