Show More
@@ -2,6 +2,55 b'' | |||
|
2 | 2 | 7.x Series |
|
3 | 3 | ============ |
|
4 | 4 | |
|
5 | .. _version 717: | |
|
6 | ||
|
7 | IPython 7.17 | |
|
8 | ============ | |
|
9 | ||
|
10 | IPython 7.17 brings a couple of new improvements to API and a couple of user | |
|
11 | facing changes to make the terminal experience more user friendly. | |
|
12 | ||
|
13 | :ghpull:`12407` introduces the ability to pass extra argument to the IPython | |
|
14 | debugger class; this is to help a new project from ``kmaork`` | |
|
15 | (https://github.com/kmaork/madbg) to feature a fully remote debugger. | |
|
16 | ||
|
17 | :ghpull:`12410` finally remove support for 3.6, while the codebase is still | |
|
18 | technically compatible; IPython will not install on Python 3.6. | |
|
19 | ||
|
20 | lots of work on the debugger and hidden frames from ``@impact27`` in | |
|
21 | :ghpull:`12437`, :ghpull:`12445`, :ghpull:`12460` and in particular | |
|
22 | :ghpull:`12453` which make the debug magic more robust at handling spaces. | |
|
23 | ||
|
24 | Biggest API addition is code transformation which is done before code execution; | |
|
25 | IPython allows a number of hooks to catch non-valid Python syntax (magic, prompt | |
|
26 | stripping...etc). Transformers are usually called many time; typically: | |
|
27 | ||
|
28 | - When trying to figure out whether the code is complete and valid (should we | |
|
29 | insert a new line or execute ?) | |
|
30 | - During actual code execution pass before giving the code to Python's | |
|
31 | ``exec``. | |
|
32 | ||
|
33 | This lead to issues when transformer might have had side effects; or do external | |
|
34 | queries. Starting with IPython 7.17 you can expect your transformer to be called | |
|
35 | less time. | |
|
36 | ||
|
37 | Input transformers are now called only once in the execution path of | |
|
38 | `InteractiveShell`, allowing to register transformer that potentially have side | |
|
39 | effects (note that this is not recommended). Internal methods `should_run_async`, and | |
|
40 | `run_cell_async` now take a recommended optional `transformed_cell`, and | |
|
41 | `preprocessing_exc_tuple` parameters that will become mandatory at some point in | |
|
42 | the future; that is to say cells need to be explicitly transformed to be valid | |
|
43 | Python syntax ahead of trying to run them. :ghpull:`12440`; | |
|
44 | ||
|
45 | ``input_transformers`` can now also have an attribute ``has_side_effects`` set | |
|
46 | to `True`, when this attribute is present; this will prevent the transformers | |
|
47 | from being ran when IPython is trying to guess whether the user input is | |
|
48 | complete. Note that this may means you will need to explicitly execute in some | |
|
49 | case where your transformations are now not ran; but will not affect users with | |
|
50 | no custom extensions. | |
|
51 | ||
|
52 | ||
|
53 | ||
|
5 | 54 | .. _version 716: |
|
6 | 55 | |
|
7 | 56 | IPython 7.16 |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now