Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-ipython for openSUSE:Factory checked in at 2021-04-10 15:25:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ipython (Old) and /work/SRC/openSUSE:Factory/.python-ipython.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ipython" Sat Apr 10 15:25:50 2021 rev:20 rq:882364 version:7.22.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ipython/python-ipython.changes 2021-03-16 15:43:42.156969796 +0100 +++ /work/SRC/openSUSE:Factory/.python-ipython.new.2401/python-ipython.changes 2021-04-10 15:25:51.478271219 +0200 @@ -1,0 +2,12 @@ +Sun Mar 28 16:53:58 UTC 2021 - Arun Persaud <[email protected]> + +- update to version 7.22.0: + * Fix some sys.excepthook shenanigan when embedding with qt, + recommended if you ??? for example ??? use napari. :ghpull:`12842`. + * Fix bug when using the new ipdb %context magic :ghpull:`12844` + * Couples of deprecation cleanup :ghpull:`12868` + * Update for new dpast.com api if you use the %pastbin + magic. :ghpull:`12712` + * Remove support for numpy before 1.16. :ghpull:`12836` + +------------------------------------------------------------------- Old: ---- ipython-7.21.0.tar.gz New: ---- ipython-7.22.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ipython.spec ++++++ --- /var/tmp/diff_new_pack.kcnGeR/_old 2021-04-10 15:25:52.674272626 +0200 +++ /var/tmp/diff_new_pack.kcnGeR/_new 2021-04-10 15:25:52.674272626 +0200 @@ -1,5 +1,5 @@ # -# spec file for package python-ipython +# spec file for package python-ipython-test # # Copyright (c) 2021 SUSE LLC # @@ -24,15 +24,13 @@ %define psuffix %{nil} %bcond_with test %endif - %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 # Python 3.6 was officiallay supported with IPython up to 7.15 %define skip_python36 1 - %bcond_without iptest Name: python-ipython%{psuffix} -Version: 7.21.0 +Version: 7.22.0 Release: 0 Summary: Rich architecture for interactive computing with Python License: BSD-3-Clause @@ -85,7 +83,7 @@ BuildRequires: hicolor-icon-theme BuildRequires: update-desktop-files Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires(postun):update-alternatives %if %{with ico} BuildRequires: icoutils %endif ++++++ ipython-7.21.0.tar.gz -> ipython-7.22.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/core/debugger.py new/ipython-7.22.0/IPython/core/debugger.py --- old/ipython-7.21.0/IPython/core/debugger.py 2021-02-26 23:09:23.000000000 +0100 +++ new/ipython-7.22.0/IPython/core/debugger.py 2021-03-27 01:47:57.000000000 +0100 @@ -805,9 +805,9 @@ new_context = int(context) if new_context <= 0: raise ValueError() + self.context = new_context except ValueError: self.error("The 'context' command requires a positive integer argument.") - self.context = new_context class InterruptiblePdb(Pdb): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/core/magics/code.py new/ipython-7.22.0/IPython/core/magics/code.py --- old/ipython-7.21.0/IPython/core/magics/code.py 2021-02-26 23:08:22.000000000 +0100 +++ new/ipython-7.22.0/IPython/core/magics/code.py 2021-03-27 01:47:57.000000000 +0100 @@ -20,7 +20,7 @@ import sys import ast from itertools import chain -from urllib.request import urlopen +from urllib.request import Request, urlopen from urllib.parse import urlencode # Our own packages @@ -28,6 +28,7 @@ from IPython.core.macro import Macro from IPython.core.magic import Magics, magics_class, line_magic from IPython.core.oinspect import find_file, find_source_lines +from IPython.core.release import version from IPython.testing.skipdoctest import skip_doctest from IPython.utils.contexts import preserve_keys from IPython.utils.path import get_py_filename @@ -244,7 +245,7 @@ @line_magic def pastebin(self, parameter_s=''): - """Upload code to dpaste's paste bin, returning the URL. + """Upload code to dpaste.com, returning the URL. Usage:\\ %pastebin [-d "Custom description"] 1-7 @@ -254,7 +255,7 @@ Options: - -d: Pass a custom description for the gist. The default will say + -d: Pass a custom description. The default will say "Pasted from IPython". """ opts, args = self.parse_options(parameter_s, 'd:') @@ -265,13 +266,19 @@ print(e.args[0]) return - post_data = urlencode({ - "title": opts.get('d', "Pasted from IPython"), - "syntax": "python3", - "content": code - }).encode('utf-8') - - response = urlopen("http://dpaste.com/api/v2/", post_data) + post_data = urlencode( + { + "title": opts.get("d", "Pasted from IPython"), + "syntax": "python", + "content": code, + } + ).encode("utf-8") + + request = Request( + "http://dpaste.com/api/v2/", + headers={"User-Agent": "IPython v{}".format(version)}, + ) + response = urlopen(request, post_data) return response.headers.get('Location') @line_magic diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/core/release.py new/ipython-7.22.0/IPython/core/release.py --- old/ipython-7.21.0/IPython/core/release.py 2021-02-26 23:10:26.000000000 +0100 +++ new/ipython-7.22.0/IPython/core/release.py 2021-03-27 01:48:52.000000000 +0100 @@ -20,7 +20,7 @@ # release. 'dev' as a _version_extra string means this is a development # version _version_major = 7 -_version_minor = 21 +_version_minor = 22 _version_patch = 0 _version_extra = '.dev' # _version_extra = 'b1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/core/tests/test_display.py new/ipython-7.22.0/IPython/core/tests/test_display.py --- old/ipython-7.21.0/IPython/core/tests/test_display.py 2021-02-26 23:08:22.000000000 +0100 +++ new/ipython-7.22.0/IPython/core/tests/test_display.py 2021-03-27 01:47:57.000000000 +0100 @@ -183,7 +183,7 @@ ip = get_ipython() cfg = _get_inline_config() cfg.print_figure_kwargs.update(dict(foo='bar')) - kwargs = dict(quality=10) + kwargs = dict(dpi=150) display.set_matplotlib_formats('png', **kwargs) formatter = ip.display_formatter.formatters['image/png'] f = formatter.lookup_by_type(Figure) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/core/tests/test_iplib.py new/ipython-7.22.0/IPython/core/tests/test_iplib.py --- old/ipython-7.21.0/IPython/core/tests/test_iplib.py 2021-02-26 23:08:22.000000000 +0100 +++ new/ipython-7.22.0/IPython/core/tests/test_iplib.py 2021-03-27 01:47:57.000000000 +0100 @@ -123,94 +123,101 @@ ZeroDivisionError: ... """ -def doctest_tb_sysexit(): - """ -In [17]: %xmode plain -Exception reporting mode: Plain - -In [18]: %run simpleerr.py exit -An exception has occurred, use %tb to see the full traceback. -SystemExit: (1, 'Mode = exit') - -In [19]: %run simpleerr.py exit 2 -An exception has occurred, use %tb to see the full traceback. -SystemExit: (2, 'Mode = exit') - -In [20]: %tb -Traceback (most recent call last): - File ... in <module> - bar(mode) - File ... line 22, in bar - sysexit(stat, mode) - File ... line 11, in sysexit - raise SystemExit(stat, 'Mode = %s' % mode) -SystemExit: (2, 'Mode = exit') - -In [21]: %xmode context -Exception reporting mode: Context - -In [22]: %tb ---------------------------------------------------------------------------- -SystemExit Traceback (most recent call last) -<BLANKLINE> -...<module> - 30 mode = 'div' - 31 ----> 32 bar(mode) -<BLANKLINE> -...bar(mode) - 20 except: - 21 stat = 1 ----> 22 sysexit(stat, mode) - 23 else: - 24 raise ValueError('Unknown mode') -<BLANKLINE> -...sysexit(stat, mode) - 9 - 10 def sysexit(stat, mode): ----> 11 raise SystemExit(stat, 'Mode = %s' % mode) - 12 - 13 def bar(mode): -<BLANKLINE> -SystemExit: (2, 'Mode = exit') - -In [23]: %xmode verbose -Exception reporting mode: Verbose - -In [24]: %tb ---------------------------------------------------------------------------- -SystemExit Traceback (most recent call last) -<BLANKLINE> -... in <module> - 30 mode = 'div' - 31 ----> 32 bar(mode) - global bar = <function bar at ...> - global mode = 'exit' -<BLANKLINE> -... in bar(mode='exit') - 20 except: - 21 stat = 1 ----> 22 sysexit(stat, mode) - global sysexit = <function sysexit at ...> - stat = 2 - mode = 'exit' - 23 else: - 24 raise ValueError('Unknown mode') -<BLANKLINE> -... in sysexit(stat=2, mode='exit') - 9 - 10 def sysexit(stat, mode): ----> 11 raise SystemExit(stat, 'Mode = %s' % mode) - global SystemExit = undefined - stat = 2 - mode = 'exit' - 12 - 13 def bar(mode): -<BLANKLINE> -SystemExit: (2, 'Mode = exit') - """ - +# TODO : Marc 2021 ?????this seem to fail due +# to upstream changes in CI for whatever reason. +# Commenting for now, to revive someday (maybe?) +# nose won't work in 3.10 anyway and we'll have to disable iptest. +# thus this likely need to bemigrated to pytest. + +# warning this test differs between 7.x and 8+ branch. + +# def doctest_tb_sysexit(): +# """ +# In [17]: %xmode plain +# Exception reporting mode: Plain +# +# In [18]: %run simpleerr.py exit +# An exception has occurred, use %tb to see the full traceback. +# SystemExit: (1, 'Mode = exit') +# +# In [19]: %run simpleerr.py exit 2 +# An exception has occurred, use %tb to see the full traceback. +# SystemExit: (2, 'Mode = exit') +# +# In [20]: %tb +# Traceback (most recent call last): +# File ... in <module> +# bar(mode) +# File ... line 22, in bar +# sysexit(stat, mode) +# File ... line 11, in sysexit +# raise SystemExit(stat, 'Mode = %s' % mode) +# SystemExit: (2, 'Mode = exit') +# +# In [21]: %xmode context +# Exception reporting mode: Context +# +# In [22]: %tb +# --------------------------------------------------------------------------- +# SystemExit Traceback (most recent call last) +# <BLANKLINE> +# ...<module> +# 30 mode = 'div' +# 31 +# ---> 32 bar(mode) +# <BLANKLINE> +# ...bar(mode) +# 20 except: +# 21 stat = 1 +# ---> 22 sysexit(stat, mode) +# 23 else: +# 24 raise ValueError('Unknown mode') +# <BLANKLINE> +# ...sysexit(stat, mode) +# 9 +# 10 def sysexit(stat, mode): +# ---> 11 raise SystemExit(stat, 'Mode = %s' % mode) +# 12 +# 13 def bar(mode): +# <BLANKLINE> +# SystemExit: (2, 'Mode = exit') +# +# In [23]: %xmode verbose +# Exception reporting mode: Verbose +# +# In [24]: %tb +# --------------------------------------------------------------------------- +# SystemExit Traceback (most recent call last) +# <BLANKLINE> +# ... in <module> +# 30 mode = 'div' +# 31 +# ---> 32 bar(mode) +# global bar = <function bar at ...> +# global mode = 'exit' +# <BLANKLINE> +# ... in bar(mode='exit') +# 20 except: +# 21 stat = 1 +# ---> 22 sysexit(stat, mode) +# global sysexit = <function sysexit at ...> +# stat = 2 +# mode = 'exit' +# 23 else: +# 24 raise ValueError('Unknown mode') +# <BLANKLINE> +# ... in sysexit(stat=2, mode='exit') +# 9 +# 10 def sysexit(stat, mode): +# ---> 11 raise SystemExit(stat, 'Mode = %s' % mode) +# global SystemExit = undefined +# stat = 2 +# mode = 'exit' +# 12 +# 13 def bar(mode): +# <BLANKLINE> +# SystemExit: (2, 'Mode = exit') +# """ def test_run_cell(): import textwrap diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/lib/display.py new/ipython-7.22.0/IPython/lib/display.py --- old/ipython-7.21.0/IPython/lib/display.py 2021-02-26 23:08:22.000000000 +0100 +++ new/ipython-7.22.0/IPython/lib/display.py 2021-03-27 01:47:57.000000000 +0100 @@ -8,6 +8,8 @@ from IPython.core.display import DisplayObject, TextDisplayObject +from typing import Tuple + __all__ = ['Audio', 'IFrame', 'YouTubeVideo', 'VimeoVideo', 'ScribdDocument', 'FileLink', 'FileLinks', 'Code'] @@ -151,7 +153,7 @@ return val @staticmethod - def _validate_and_normalize_with_numpy(data, normalize): + def _validate_and_normalize_with_numpy(data, normalize) -> Tuple[bytes, int]: import numpy as np data = np.array(data, dtype=float) @@ -170,8 +172,7 @@ max_abs_value = np.max(np.abs(data)) normalization_factor = Audio._get_normalization_factor(max_abs_value, normalize) scaled = data / normalization_factor * 32767 - return scaled.astype('<h').tostring(), nchan - + return scaled.astype("<h").tobytes(), nchan @staticmethod def _validate_and_normalize_without_numpy(data, normalize): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/terminal/pt_inputhooks/qt.py new/ipython-7.22.0/IPython/terminal/pt_inputhooks/qt.py --- old/ipython-7.21.0/IPython/terminal/pt_inputhooks/qt.py 2021-02-26 23:08:23.000000000 +0100 +++ new/ipython-7.22.0/IPython/terminal/pt_inputhooks/qt.py 2021-03-27 01:47:57.000000000 +0100 @@ -1,6 +1,7 @@ import sys import os from IPython.external.qt_for_kernel import QtCore, QtGui +from IPython import get_ipython # If we create a QApplication, keep a reference to it so that it doesn't get # garbage collected. @@ -8,6 +9,12 @@ _already_warned = False +def _reclaim_excepthook(): + shell = get_ipython() + if shell is not None: + sys.excepthook = shell.excepthook + + def inputhook(context): global _appref app = QtCore.QCoreApplication.instance() @@ -27,6 +34,13 @@ return QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) _appref = app = QtGui.QApplication([" "]) + + # "reclaim" IPython sys.excepthook after event loop starts + # without this, it defaults back to BaseIPythonApplication.excepthook + # and exceptions in the Qt event loop are rendered without traceback + # formatting and look like "bug in IPython". + QtCore.QTimer.singleShot(0, _reclaim_excepthook) + event_loop = QtCore.QEventLoop(app) if sys.platform == 'win32': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/IPython/utils/_sysinfo.py new/ipython-7.22.0/IPython/utils/_sysinfo.py --- old/ipython-7.21.0/IPython/utils/_sysinfo.py 2021-02-26 23:10:26.000000000 +0100 +++ new/ipython-7.22.0/IPython/utils/_sysinfo.py 2021-03-27 01:48:52.000000000 +0100 @@ -1,2 +1,2 @@ # GENERATED BY setup.py -commit = u"0dcb1debc" +commit = u"8648ed8d7" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/PKG-INFO new/ipython-7.22.0/PKG-INFO --- old/ipython-7.21.0/PKG-INFO 2021-02-26 23:10:26.000000000 +0100 +++ new/ipython-7.22.0/PKG-INFO 2021-03-27 01:48:52.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: ipython -Version: 7.21.0 +Version: 7.22.0 Summary: IPython: Productive Interactive Computing Home-page: https://ipython.org Author: The IPython Development Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/docs/source/whatsnew/version7.rst new/ipython-7.22.0/docs/source/whatsnew/version7.rst --- old/ipython-7.21.0/docs/source/whatsnew/version7.rst 2021-02-26 23:09:23.000000000 +0100 +++ new/ipython-7.22.0/docs/source/whatsnew/version7.rst 2021-03-27 01:47:57.000000000 +0100 @@ -2,6 +2,38 @@ 7.x Series ============ +.. _version 7.22: + +IPython 7.22 +============ + +Second release of IPython for 2021, mostly containing bug fixes. Here is a quick +rundown of the few changes. + +- Fix some ``sys.excepthook`` shenanigan when embedding with qt, recommended if + you ??? for example ??? use `napari <https://napari.org>`__. :ghpull:`12842`. +- Fix bug when using the new ipdb ``%context`` magic :ghpull:`12844` +- Couples of deprecation cleanup :ghpull:`12868` +- Update for new dpast.com api if you use the ``%pastbin`` magic. :ghpull:`12712` +- Remove support for numpy before 1.16. :ghpull:`12836` + + +Thanks +------ + +We have a new team member that you should see more often on the IPython +repository, B??a??ej Michalik (@MrMino) have been doing regular contributions to +IPython, and spent time replying to many issues and guiding new users to the +codebase; they now have triage permissions to the IPython repository and we'll +work toward giving them more permission in the future. + +Many thanks to all the contributors to this release you can find all individual +contributions to this milestone `on github <https://github.com/ipython/ipython/milestone/84>`__. + +Thanks as well to organisations, QuantStack for working on debugger +compatibility for Xeus_python, and the `D. E. Shaw group +<https://deshaw.com/>` for sponsoring work on IPython and related libraries. + .. _version 721: IPython 7.21 @@ -33,7 +65,7 @@ ------ Many thanks to all the contributors to this release you can find all individual -contribution to this milestone `on github <https://github.com/ipython/ipython/milestone/83>`_. +contribution to this milestone `on github <https://github.com/ipython/ipython/milestone/83>`__. .. _version 720: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-7.21.0/setup.py new/ipython-7.22.0/setup.py --- old/ipython-7.21.0/setup.py 2021-02-26 23:08:23.000000000 +0100 +++ new/ipython-7.22.0/setup.py 2021-03-27 01:47:57.000000000 +0100 @@ -174,15 +174,23 @@ # setuptools requirements extras_require = dict( - parallel = ['ipyparallel'], - qtconsole = ['qtconsole'], - doc = ['Sphinx>=1.3'], - test = ['nose>=0.10.1', 'requests', 'testpath', 'pygments', 'nbformat', 'ipykernel', 'numpy>=1.14'], - terminal = [], - kernel = ['ipykernel'], - nbformat = ['nbformat'], - notebook = ['notebook', 'ipywidgets'], - nbconvert = ['nbconvert'], + parallel=["ipyparallel"], + qtconsole=["qtconsole"], + doc=["Sphinx>=1.3"], + test=[ + "nose>=0.10.1", + "requests", + "testpath", + "pygments", + "nbformat", + "ipykernel", + "numpy>=1.16", + ], + terminal=[], + kernel=["ipykernel"], + nbformat=["nbformat"], + notebook=["notebook", "ipywidgets"], + nbconvert=["nbconvert"], ) install_requires = [
