Next | Query returned 101 messages, browsing 11 to 20 | Previous

History of commit frequency

CVS Commit History:


   2023-04-28 16:37:45 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-ipython: updated to 8.13.0

IPython 8.13
------------

As usual for the end of the month, minor release of IPython. This release is
significant in that it not only has a number of bugfixes, but also drop support
for Python 3.8 as per NEP 29 (:ghpull:`14023`).

All the critical bugfixes have been backported onto the 8.12.1 release (see
below). In addition to that went into 8.12.1 you'll find:

 - Pretty reprensentation for ``Counter`` has been fixed to match the Python one
   and be in decreasing order. :ghpull:`14032`
 - Module completion is better when jedi is disabled :ghpull:`14029`.
 - Improvment of ``%%bash`` magic that would get stuck :ghpull:`14019`
   2023-04-03 19:33:39 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-ipython: updated to 8.12.0

IPython 8.12
------------

Hopefully slightly early release for IPython 8.12. Last Thursday of the month,
even if I guess it's likely already Friday somewhere in the pacific ocean.

A number of PRs and bug fixes this month with close to 20 PRs merged !

The IPython repo reached :ghpull:``14000`` !! Actually the PR that create those \ 
exact release
note is :ghpull:`14000`. Ok, more issues and PR is not always better, and I'd
love to have more time to close issues and Pull Requests.

Let's note that in less than 2 month JupyterCon is back, in Paris please visit
`jupytercon.com <https://jupytercon.com>`__, and looking forward to see you
there.

Packagers should take note that ``typing_extension`` is now a mandatory dependency
for Python versions ``<3.10``.

Let's note also that according to `NEP29
<https://numpy.org/neps/nep-0029-deprecation_policy.html>`__, It is soon \ 
time to
stop support for Python 3.8 that will be release more than 3 and 1/2 years ago::

    On Apr 14, 2023 drop support for Python 3.8 (initially released on Oct 14, 2019)

Thus I am likely to stop advertising support for Python 3.8 in the next
release at the end of April.

Here are some miscellaneous updates of interest:

 - :ghpull:`13957` brings updates to the Qt integration, particularly for Qt6.
 - :ghpull:`13960` fixes the %debug magic command to give access to the local
   scope.
 - :ghpull:`13964` fixes some crashes with the new fast traceback code. Note that
   there are still some issues with the fast traceback code, and I a, likely
   to fix and tweak behavior.
 - :ghpull:`13973` We are slowly migrating IPython internals to use proper type
   objects/dataclasses instead of dictionaries to allow static typing checks.
   These are technically public API and could lead to breakage, so please let us
   know if that's the case and I'll mitigate.
 - :ghpull:`13990`, :ghpull:`13991`, :ghpull:`13994` all improve keybinding and
   shortcut configurability.

As usual you can find the full list of PRs on GitHub under `the 8.12 milestone
<https://github.com/ipython/ipython/milestone/114?closed=1>`__.

We want to thank the D.E. Shaw group for requesting and sponsoring the work on
the following big feature. We had productive discussions on how to best expose
this feature

Dynamic documentation dispatch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We are experimenting with dynamic documentation dispatch for object attribute.
See :ghissue:`13860`. The goal is to allow object to define documentation for
their attributes, properties, even when those are dynamically defined with
`__getattr__`.

In particular when those objects are base types it can be useful to show the
documentation

.. code-block:: ipython

    In [1]: class User:
       ...:
       ...:     __custom_documentations__ = {
       ...:         "first": "The first name of the user.",
       ...:         "last": "The last name of the user.",
       ...:     }
       ...:
       ...:     first:str
       ...:     last:str
       ...:
       ...:     def __init__(self, first, last):
       ...:         self.first = first
       ...:         self.last = last
       ...:
       ...:     @property
       ...:     def full(self):
       ...:         """`self.first` and `self.last` joined by a \ 
space."""
       ...:         return self.first + " " + self.last
       ...:
       ...:
       ...: user = Person('Jane', 'Doe')

    In [2]: user.first?
    Type:            str
    String form:     Jane
    Length:          4
    Docstring:       the first name of a the person object, a str
    Class docstring:
    ....

    In [3]: user.last?
    Type:            str
    String form:     Doe
    Length:          3
    Docstring:       the last name, also a str
    ...

We can see here the symmetry with IPython looking for the docstring on the
properties:

.. code-block:: ipython

    In [4]: user.full?
    HERE
    Type:        property
    String form: <property object at 0x102bb15d0>
    Docstring:   first and last join by a space

Note that while in the above example we use a static dictionary, libraries may
decide to use a custom object that define ``__getitem__``, we caution against
using objects that would trigger computation to show documentation, but it is
sometime preferable for highly dynamic code that for example export ans API as
object.
   2023-03-02 13:47:08 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
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`
   2023-02-11 13:42:14 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-ipython: updated to 8.10.0

IPython 8.10
------------

Out of schedule release of IPython with minor fixes to patch a potential \ 
CVE-2023-24816.
This is a really low severity CVE that you most likely are not affected by unless:

 - You are on windows.
 - You have a custom build of Python without ``_ctypes``
 - You cd or start IPython or Jupyter in untrusted directory which names may be
   valid shell commands.

You can read more on `the advisory
<https://github.com/ipython/ipython/security/advisories/GHSA-29gw-9793-fvw7>`__.

In addition to fixing this CVE we also fix a couple of outstanding bugs and issues.

As usual you can find the full list of PRs on GitHub under `the 8.10 milestone
<https://github.com/ipython/ipython/milestone/112?closed=1>`__.

In Particular:

 - bump minimum numpy to `>=1.21` version following NEP29. :ghpull:`13930`
 - fix for compatibility with MyPy 1.0. :ghpull:`13933`
 - fix nbgrader stalling when IPython's ``showtraceback`` function is
   monkeypatched. :ghpull:`13934`
   2023-01-03 22:22:01 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-ipython: updated to 8.8.0

IPython 8.8.0
-------------

First release of IPython in 2023 as there was no release at the end of
December.

This is an unusually big release (relatively speaking) with more than 15 Pull
Requests merge.

Of particular interest are:

 - :ghpull:`13852` that replace the greedy completer and improve
   completion, in particular for dictionary keys.
 - :ghpull:`13858` that adds ``py.typed`` to ``setup.cfg`` to make sure it is
   bundled in wheels.
 - :ghpull:`13869` that implements tab completions for IPython options in the
   shell when using `argcomplete <https://github.com/kislyuk/argcomplete>`. I
   believe this also needs a recent version of Traitlets.
 - :ghpull:`13865` makes the ``inspector`` class of `InteractiveShell`
   configurable.
 - :ghpull:`13880` that remove minor-version entrypoints as the minor version
   entry points that would be included in the wheel would be the one of the
   Python version that was used to build the ``whl`` file.

In no particular order, the rest of the changes update the test suite to be
compatible with Pygments 2.14, various docfixes, testing on more recent python
versions and various updates.
   2022-11-28 18:58:59 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-ipython: updated to 8.7.0

IPython 8.7.0
-------------

Small release of IPython with a couple of bug fixes and new features for this
month. Next month is end of year, it is unclear if there will be a release close
the new year's eve, or if the next release will be at end of January.

Here are a few of the relevant fixes,
as usual you can find the full list of PRs on GitHub under `the 8.7 milestone
<https://github.com/ipython/ipython/pulls?q=milestone%3A8.7>`__.

   - :ghpull:`13834` bump the minimum prompt toolkit to 3.0.11.
   - IPython shipped with the ``py.typed`` marker now, and we are progressively
     adding more types. :ghpull:`13831`
   - :ghpull:`13817` add configuration of code blacks formatting.
   2022-10-31 18:14:48 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-ipython: updated to 8.6.0

IPython 8.6.0
-------------

Back to a more regular release schedule (at least I try), as Friday is
already over by more than 24h hours. This is a slightly bigger release with a
few new features that contain no less then 25 PRs.

We'll notably found a couple of non negligible changes:

The ``install_ext`` and related functions have been removed after being
deprecated for years. You can use pip to install extensions. ``pip`` did not
exists when ``install_ext`` was introduced. You can still load local extensions
without installing them. Just set your ``sys.path`` for example. :ghpull:`13744`

IPython now have extra entry points that that the major *and minor* version of
python. For some of you this mean that you can do a quick ``ipython3.10`` to
launch IPython from the Python 3.10 interpreter, while still using Python 3.11
as your main Python. :ghpull:`13743`

The completer matcher API have been improved. See :ghpull:`13745`. This should
improve the type inference and improve dict keys completions in many use case.
Tanks ``@krassowski`` for all the works, and the D.E. Shaw group for sponsoring
it.

The color of error nodes in tracebacks can now be customized. See
:ghpull:`13756`. This is a private attribute until someone find the time to
properly add a configuration option. Note that with Python 3.11 that also show
the relevant nodes in traceback, it would be good to leverage this informations
(plus the "did you mean" info added on attribute errors). But that's \ 
likely work
I won't have time to do before long, so contributions welcome.

As we follow NEP 29, we removed support for numpy 1.19 :ghpull:`13760`.

The ``open()`` function present in the user namespace by default will now refuse
to open the file descriptors 0,1,2 (stdin, out, err), to avoid crashing IPython.
This mostly occurs in teaching context when incorrect values get passed around.

The ``?``, ``??``, and corresponding ``pinfo``, ``pinfo2`` magics can now find
objects insides arrays. That is to say, the following now works::

   >>> def my_func(*arg, **kwargs):pass
   >>> container = [my_func]
   >>> container[0]?

If ``container`` define a custom ``getitem``, this __will__ trigger the custom
method. So don't put side effects in your ``getitems``. Thanks the D.E. Shaw
group for the request and sponsoring the work.
   2022-09-06 21:12:14 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-ipython: updated to 8.5.0

IPython 8.5.0
-------------
First release since a couple of month due to various reasons and timing preventing
me for sticking to the usual monthly release the last Friday of each month. This
is of non negligible size as it has more than two dozen PRs with various fixes
an bug fixes.
   2022-05-29 20:50:06 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-ipython: updated to 8.4.0

IPython 8.4.0
-------------

As for 7.34, this version contains a single fix:  fix uncaught BdbQuit \ 
exceptions on ipdb
exit :ghpull:`13668`, and a single typo fix in documentation: :ghpull:`13682`
   2022-05-11 11:34:03 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-ipython: updated to 8.3.0

IPython 8.3.0
-------------

 - :ghpull:`13625`, using ``?``, ``??``, ``*?`` will not call
   ``set_next_input`` as most frontend allow proper multiline editing and it was
   causing issues for many users of multi-cell frontends. This has been \ 
backported to 7.33

 - :ghpull:`13600`, ``pre_run_*``-hooks will now have a ``cell_id`` attribute on
   the info object when frontend provide it. This has been backported to 7.33

 - :ghpull:`13624`, fixed :kbd:`End` key being broken after accepting an
   auto-suggestion.

 - :ghpull:`13657` fix issue where history from different sessions would be mixed.

Next | Query returned 101 messages, browsing 11 to 20 | Previous