|
@@
-2,6
+2,44
b''
|
|
2
|
8.x Series
|
|
2
|
8.x Series
|
|
3
|
============
|
|
3
|
============
|
|
4
|
|
|
4
|
|
|
|
|
|
5
|
.. _version 8.8.0:
|
|
|
|
|
6
|
|
|
|
|
|
7
|
IPython 8.8.0
|
|
|
|
|
8
|
-------------
|
|
|
|
|
9
|
|
|
|
|
|
10
|
First release of IPython in 2023 as there was no release at the end of
|
|
|
|
|
11
|
December.
|
|
|
|
|
12
|
|
|
|
|
|
13
|
This is an unusually big release (relatively speaking) with more than 15 Pull
|
|
|
|
|
14
|
Requests merge.
|
|
|
|
|
15
|
|
|
|
|
|
16
|
Of particular interest are:
|
|
|
|
|
17
|
|
|
|
|
|
18
|
- :ghpull:`13852` that replace the greedy completer and improve
|
|
|
|
|
19
|
completion, in particular for dictionary keys.
|
|
|
|
|
20
|
- :ghpull:`13858` that adds ``py.typed`` to ``setup.cfg`` to make sure it is
|
|
|
|
|
21
|
bundled in wheels.
|
|
|
|
|
22
|
- :ghpull:`13869` that implements tab completions for IPython options in the
|
|
|
|
|
23
|
shell when using `argcomplete <https://github.com/kislyuk/argcomplete>`. I
|
|
|
|
|
24
|
believe this also needs a recent version of Traitlets.
|
|
|
|
|
25
|
- :ghpull:`13865` makes the ``inspector`` class of `InteractiveShell`
|
|
|
|
|
26
|
configurable.
|
|
|
|
|
27
|
- :ghpull:`13880` that remove minor-version entrypoints as the minor version
|
|
|
|
|
28
|
entry points that would be included in the wheel would be the one of the
|
|
|
|
|
29
|
Python version that was used to build the ``whl`` file.
|
|
|
|
|
30
|
|
|
|
|
|
31
|
In no particular order, the rest of the changes update the test suite to be
|
|
|
|
|
32
|
compatible with Pygments 2.14, various docfixes, testing on more recent python
|
|
|
|
|
33
|
versions and various updates.
|
|
|
|
|
34
|
|
|
|
|
|
35
|
As usual you can find the full list of PRs on GitHub under `the 8.8 milestone
|
|
|
|
|
36
|
<https://github.com/ipython/ipython/milestone/110>`__.
|
|
|
|
|
37
|
|
|
|
|
|
38
|
Many thanks to @krassowski for the many PRs and @jasongrout for reviewing and
|
|
|
|
|
39
|
merging contributions.
|
|
|
|
|
40
|
|
|
|
|
|
41
|
Thanks to the `D. E. Shaw group <https://deshaw.com/>`__ for sponsoring
|
|
|
|
|
42
|
work on IPython and related libraries.
|
|
5
|
|
|
43
|
|
|
6
|
.. _version 8.7.0:
|
|
44
|
.. _version 8.7.0:
|
|
7
|
|
|
45
|
|
|
@@
-138,7
+176,7
b' Here is a non exhaustive list of changes that have been implemented for IPython'
|
|
138
|
- Fix paste magic on wayland. :ghpull:`13671`
|
|
176
|
- Fix paste magic on wayland. :ghpull:`13671`
|
|
139
|
- show maxlen in deque's repr. :ghpull:`13648`
|
|
177
|
- show maxlen in deque's repr. :ghpull:`13648`
|
|
140
|
|
|
178
|
|
|
141
|
Restore line numbers for Input
|
|
179
|
Restore line numbers for Input
|
|
142
|
------------------------------
|
|
180
|
------------------------------
|
|
143
|
|
|
181
|
|
|
144
|
Line number information in tracebacks from input are restored.
|
|
182
|
Line number information in tracebacks from input are restored.
|
|
@@
-269,7
+307,7
b' Thanks to the `D. E. Shaw group <https://deshaw.com/>`__ for sponsoring'
|
|
269
|
work on IPython and related libraries.
|
|
307
|
work on IPython and related libraries.
|
|
270
|
|
|
308
|
|
|
271
|
.. _version 8.1.1:
|
|
309
|
.. _version 8.1.1:
|
|
272
|
|
|
310
|
|
|
273
|
IPython 8.1.1
|
|
311
|
IPython 8.1.1
|
|
274
|
-------------
|
|
312
|
-------------
|
|
275
|
|
|
313
|
|
|
@@
-403,10
+441,10
b' The 8.x branch started diverging from its predecessor around IPython 7.12'
|
|
403
|
(January 2020).
|
|
441
|
(January 2020).
|
|
404
|
|
|
442
|
|
|
405
|
This release contains 250+ pull requests, in addition to many of the features
|
|
443
|
This release contains 250+ pull requests, in addition to many of the features
|
|
406
|
and backports that have made it to the 7.x branch. Please see the
|
|
444
|
and backports that have made it to the 7.x branch. Please see the
|
|
407
|
`8.0 milestone <https://github.com/ipython/ipython/milestone/73?closed=1>`__ for the full list of pull requests.
|
|
445
|
`8.0 milestone <https://github.com/ipython/ipython/milestone/73?closed=1>`__ for the full list of pull requests.
|
|
408
|
|
|
446
|
|
|
409
|
Please feel free to send pull requests to updates those notes after release,
|
|
447
|
Please feel free to send pull requests to updates those notes after release,
|
|
410
|
I have likely forgotten a few things reviewing 250+ PRs.
|
|
448
|
I have likely forgotten a few things reviewing 250+ PRs.
|
|
411
|
|
|
449
|
|
|
412
|
Dependencies changes/downstream packaging
|
|
450
|
Dependencies changes/downstream packaging
|
|
@@
-421,7
+459,7
b' looking for help to do so.'
|
|
421
|
- minimal Python is now 3.8
|
|
459
|
- minimal Python is now 3.8
|
|
422
|
- ``nose`` is not a testing requirement anymore
|
|
460
|
- ``nose`` is not a testing requirement anymore
|
|
423
|
- ``pytest`` replaces nose.
|
|
461
|
- ``pytest`` replaces nose.
|
|
424
|
- ``iptest``/``iptest3`` cli entrypoints do not exists anymore.
|
|
462
|
- ``iptest``/``iptest3`` cli entrypoints do not exists anymore.
|
|
425
|
- minimum officially support ``numpy`` version has been bumped, but this should
|
|
463
|
- minimum officially support ``numpy`` version has been bumped, but this should
|
|
426
|
not have much effect on packaging.
|
|
464
|
not have much effect on packaging.
|
|
427
|
|
|
465
|
|
|
@@
-443,7
+481,7
b' deprecation warning:'
|
|
443
|
- Please add **since which version** something is deprecated.
|
|
481
|
- Please add **since which version** something is deprecated.
|
|
444
|
|
|
482
|
|
|
445
|
As a side note, it is much easier to conditionally compare version
|
|
483
|
As a side note, it is much easier to conditionally compare version
|
|
446
|
numbers rather than using ``try/except`` when functionality changes with a version.
|
|
484
|
numbers rather than using ``try/except`` when functionality changes with a version.
|
|
447
|
|
|
485
|
|
|
448
|
I won't list all the removed features here, but modules like ``IPython.kernel``,
|
|
486
|
I won't list all the removed features here, but modules like ``IPython.kernel``,
|
|
449
|
which was just a shim module around ``ipykernel`` for the past 8 years, have been
|
|
487
|
which was just a shim module around ``ipykernel`` for the past 8 years, have been
|
|
@@
-475,7
+513,7
b' by mypy.'
|
|
475
|
Featured changes
|
|
513
|
Featured changes
|
|
476
|
----------------
|
|
514
|
----------------
|
|
477
|
|
|
515
|
|
|
478
|
Here is a features list of changes in IPython 8.0. This is of course non-exhaustive.
|
|
516
|
Here is a features list of changes in IPython 8.0. This is of course non-exhaustive.
|
|
479
|
Please note as well that many features have been added in the 7.x branch as well
|
|
517
|
Please note as well that many features have been added in the 7.x branch as well
|
|
480
|
(and hence why you want to read the 7.x what's new notes), in particular
|
|
518
|
(and hence why you want to read the 7.x what's new notes), in particular
|
|
481
|
features contributed by QuantStack (with respect to debugger protocol and Xeus
|
|
519
|
features contributed by QuantStack (with respect to debugger protocol and Xeus
|
|
@@
-523,7
+561,7
b' The error traceback is now correctly formatted, showing the cell number in which'
|
|
523
|
|
|
561
|
|
|
524
|
ZeroDivisionError: division by zero
|
|
562
|
ZeroDivisionError: division by zero
|
|
525
|
|
|
563
|
|
|
526
|
The ``stack_data`` package has been integrated, which provides smarter information in the traceback;
|
|
564
|
The ``stack_data`` package has been integrated, which provides smarter information in the traceback;
|
|
527
|
in particular it will highlight the AST node where an error occurs which can help to quickly narrow down errors.
|
|
565
|
in particular it will highlight the AST node where an error occurs which can help to quickly narrow down errors.
|
|
528
|
|
|
566
|
|
|
529
|
For example in the following snippet::
|
|
567
|
For example in the following snippet::
|
|
@@
-563,7
+601,7
b' and IPython 8.0 is capable of telling you where the index error occurs::'
|
|
563
|
----> 3 return x[0][i][0]
|
|
601
|
----> 3 return x[0][i][0]
|
|
564
|
^^^^^^^
|
|
602
|
^^^^^^^
|
|
565
|
|
|
603
|
|
|
566
|
The corresponding locations marked here with ``^`` will show up highlighted in
|
|
604
|
The corresponding locations marked here with ``^`` will show up highlighted in
|
|
567
|
the terminal and notebooks.
|
|
605
|
the terminal and notebooks.
|
|
568
|
|
|
606
|
|
|
569
|
Finally, a colon ``::`` and line number is appended after a filename in
|
|
607
|
Finally, a colon ``::`` and line number is appended after a filename in
|
|
@@
-760,7
+798,7
b' Previously, this was not the case for the Vi-mode prompts::'
|
|
760
|
This is now fixed, and Vi prompt prefixes - ``[ins]`` and ``[nav]`` - are
|
|
798
|
This is now fixed, and Vi prompt prefixes - ``[ins]`` and ``[nav]`` - are
|
|
761
|
skipped just as the normal ``In`` would be.
|
|
799
|
skipped just as the normal ``In`` would be.
|
|
762
|
|
|
800
|
|
|
763
|
IPython shell can be started in the Vi mode using ``ipython --TerminalInteractiveShell.editing_mode=vi``,
|
|
801
|
IPython shell can be started in the Vi mode using ``ipython --TerminalInteractiveShell.editing_mode=vi``,
|
|
764
|
You should be able to change mode dynamically with ``%config TerminalInteractiveShell.editing_mode='vi'``
|
|
802
|
You should be able to change mode dynamically with ``%config TerminalInteractiveShell.editing_mode='vi'``
|
|
765
|
|
|
803
|
|
|
766
|
Empty History Ranges
|
|
804
|
Empty History Ranges
|
|
@@
-787,8
+825,8
b' when followed with :kbd:`F2`), send it to `dpaste.org <http://dpast.org>`_ using'
|
|
787
|
|
|
825
|
|
|
788
|
Windows timing implementation: Switch to process_time
|
|
826
|
Windows timing implementation: Switch to process_time
|
|
789
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
827
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
790
|
Timing on Windows, for example with ``%%time``, was changed from being based on ``time.perf_counter``
|
|
828
|
Timing on Windows, for example with ``%%time``, was changed from being based on ``time.perf_counter``
|
|
791
|
(which counted time even when the process was sleeping) to being based on ``time.process_time`` instead
|
|
829
|
(which counted time even when the process was sleeping) to being based on ``time.process_time`` instead
|
|
792
|
(which only counts CPU time). This brings it closer to the behavior on Linux. See :ghpull:`12984`.
|
|
830
|
(which only counts CPU time). This brings it closer to the behavior on Linux. See :ghpull:`12984`.
|
|
793
|
|
|
831
|
|
|
794
|
Miscellaneous
|
|
832
|
Miscellaneous
|
|
@@
-813,7
+851,7
b' Re-added support for XDG config directories'
|
|
813
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
851
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
814
|
|
|
852
|
|
|
815
|
XDG support through the years comes and goes. There is a tension between having
|
|
853
|
XDG support through the years comes and goes. There is a tension between having
|
|
816
|
an identical location for configuration in all platforms versus having simple instructions.
|
|
854
|
an identical location for configuration in all platforms versus having simple instructions.
|
|
817
|
After initial failures a couple of years ago, IPython was modified to automatically migrate XDG
|
|
855
|
After initial failures a couple of years ago, IPython was modified to automatically migrate XDG
|
|
818
|
config files back into ``~/.ipython``. That migration code has now been removed.
|
|
856
|
config files back into ``~/.ipython``. That migration code has now been removed.
|
|
819
|
IPython now checks the XDG locations, so if you _manually_ move your config
|
|
857
|
IPython now checks the XDG locations, so if you _manually_ move your config
|
|
@@
-841,7
+879,7
b' Removing support for older Python versions'
|
|
841
|
|
|
879
|
|
|
842
|
|
|
880
|
|
|
843
|
We are removing support for Python up through 3.7, allowing internal code to use the more
|
|
881
|
We are removing support for Python up through 3.7, allowing internal code to use the more
|
|
844
|
efficient ``pathlib`` and to make better use of type annotations.
|
|
882
|
efficient ``pathlib`` and to make better use of type annotations.
|
|
845
|
|
|
883
|
|
|
846
|
.. image:: ../_images/8.0/pathlib_pathlib_everywhere.jpg
|
|
884
|
.. image:: ../_images/8.0/pathlib_pathlib_everywhere.jpg
|
|
847
|
:alt: "Meme image of Toy Story with Woody and Buzz, with the text 'pathlib, pathlib everywhere'"
|
|
885
|
:alt: "Meme image of Toy Story with Woody and Buzz, with the text 'pathlib, pathlib everywhere'"
|