Show More
@@ -2,6 +2,55 b'' | |||||
2 | 7.x Series |
|
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 | .. _version 716: |
|
54 | .. _version 716: | |
6 |
|
55 | |||
7 | IPython 7.16 |
|
56 | IPython 7.16 |
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