Subject: CVS commit: pkgsrc/devel/py-ipython
From: Adam Ciarcinski
Date: 2023-03-02 13:47:08
Message id: 20230302124708.B3464FA90@cvs.NetBSD.org

Log Message:
py-ipython: updated to 8.11.0

IPython 8.11
------------

Back on almost regular monthly schedule for IPython with end-of-month
really-late-Friday release to make sure some bugs are properly fixed.
Small addition of with a few new features, bugfix and UX improvements.

This is a non-exhaustive list, but among other you will find:

Faster Traceback Highlighting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Resurrection of pre-IPython-8 traceback highlighting code.

Really long and complicated files were slow to highlight in traceback with
IPython 8 despite upstream improvement that make many case better. Therefore
starting with IPython 8.11 when one of the highlighted file is more than 10 000
line long by default, we'll fallback to a faster path that does not have all the
features of highlighting failing AST nodes.

This can be configures by setting the value of
``IPython.code.ultratb.FAST_THRESHOLD`` to an arbitrary low or large value.

Autoreload verbosity
~~~~~~~~~~~~~~~~~~~~

We introduce more descriptive names for the ``%autoreload`` parameter:

- ``%autoreload now`` (also ``%autoreload``) - perform autoreload immediately.
- ``%autoreload off`` (also ``%autoreload 0``) - turn off autoreload.
- ``%autoreload explicit`` (also ``%autoreload 1``) - turn on autoreload only \ 
for modules
  whitelisted by ``%aimport`` statements.
- ``%autoreload all`` (also ``%autoreload 2``) - turn on autoreload for all \ 
modules except those
  blacklisted by ``%aimport`` statements.
- ``%autoreload complete`` (also ``%autoreload 3``) - all the fatures of ``all`` \ 
but also adding new
  objects from the imported modules (see
  IPython/extensions/tests/test_autoreload.py::test_autoload_newly_added_objects).

The original designations (e.g. "2") still work, and these new ones \ 
are case-insensitive.

Additionally, the option ``--print`` or ``-p`` can be added to the line to print \ 
the names of
modules being reloaded. Similarly, ``--log`` or ``-l`` will output the names to \ 
the logger at INFO
level. Both can be used simultaneously.

The parsing logic for ``%aimport`` is now improved such that modules can be \ 
whitelisted and
blacklisted in the same line, e.g. it's now possible to call ``%aimport os, \ 
-math`` to include
``os`` for ``%autoreload explicit`` and exclude ``math`` for modes ``all`` and \ 
``complete``.

Terminal shortcuts customization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Previously modifying shortcuts was only possible by hooking into startup files
and practically limited to adding new shortcuts or removing all shortcuts bound
to a specific key. This release enables users to override existing terminal
shortcuts, disable them or add new keybindings.

For example, to set the :kbd:`right` to accept a single character of auto-suggestion
you could use::

    my_shortcuts = [
        {
            "command": "IPython:auto_suggest.accept_character",
            "new_keys": ["right"]
        }
    ]
    %config TerminalInteractiveShell.shortcuts = my_shortcuts

You can learn more in :std:configtrait:`TerminalInteractiveShell.shortcuts`
configuration reference.

Miscellaneous
~~~~~~~~~~~~~

 - ``%gui`` should now support PySide6. :ghpull:`13864`
 - Cli shortcuts can now be configured :ghpull:`13928`, see above.
   (note that there might be an issue with prompt_toolkit 3.0.37 and shortcut \ 
configuration).

 - Capture output should now respect ``;`` semicolon to suppress output.
   :ghpull:`13940`
 - Base64 encoded images (in jupyter frontend), will not have trailing newlines.
   :ghpull:`13941`

Files:
RevisionActionfile
1.86modifypkgsrc/devel/py-ipython/Makefile
1.22modifypkgsrc/devel/py-ipython/PLIST
1.59modifypkgsrc/devel/py-ipython/distinfo