Hello community, here is the log from the commit of package python3-jupyter_ipython for openSUSE:Factory checked in at 2015-12-03 13:32:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-jupyter_ipython (Old) and /work/SRC/openSUSE:Factory/.python3-jupyter_ipython.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python3-jupyter_ipython" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-jupyter_ipython/python3-jupyter_ipython-doc.changes 2015-11-18 22:34:14.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python3-jupyter_ipython.new/python3-jupyter_ipython-doc.changes 2015-12-03 13:32:09.000000000 +0100 @@ -1,0 +2,8 @@ +Fri Nov 27 06:13:48 UTC 2015 - arun@gmx.de + +- update to version 4.0.1: + * Installation on some systems + * Compatibility with CPython 3.4.4 + * Compatibility with Qt5 + +------------------------------------------------------------------- python3-jupyter_ipython.changes: same change Old: ---- ipython-4.0.0.tar.gz New: ---- ipython-4.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-jupyter_ipython-doc.spec ++++++ --- /var/tmp/diff_new_pack.MP4Ibc/_old 2015-12-03 13:32:10.000000000 +0100 +++ /var/tmp/diff_new_pack.MP4Ibc/_new 2015-12-03 13:32:10.000000000 +0100 @@ -17,7 +17,7 @@ Name: python3-jupyter_ipython-doc -Version: 4.0.0 +Version: 4.0.1 Release: 0 Summary: Documentation for python-jupyter_ipython License: BSD-3-Clause @@ -25,8 +25,8 @@ Url: http://ipython.org Source: https://pypi.python.org/packages/source/i/ipython/ipython-%{version}.tar.gz BuildRequires: fdupes -BuildRequires: python3-jupyter_ipython BuildRequires: python3-jupyter_ipykernel +BuildRequires: python3-jupyter_ipython # Test Requirements BuildRequires: python3-jupyter_ipython-iptest BuildConflicts: python3-buildservice-tweak @@ -49,6 +49,7 @@ %package html Summary: HTML documentation for python3-jupyter_ipython +Group: Development/Languages/Python Recommends: python3-jupyter_ipython = %{version} %description html @@ -56,6 +57,7 @@ %package pdf Summary: HTML documentation for python3-jupyter_ipython +Group: Development/Languages/Python Recommends: python3-jupyter_ipython = %{version} %description pdf ++++++ python3-jupyter_ipython.spec ++++++ --- /var/tmp/diff_new_pack.MP4Ibc/_old 2015-12-03 13:32:10.000000000 +0100 +++ /var/tmp/diff_new_pack.MP4Ibc/_new 2015-12-03 13:32:10.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package python3-jupyter_ipython # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -13,24 +13,25 @@ # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Name: python3-jupyter_ipython -Version: 4.0.0 +Version: 4.0.1 Release: 0 -License: BSD-3-Clause Summary: Rich architecture for interactive computing with Python -Url: http://ipython.org +License: BSD-3-Clause Group: Development/Languages/Python +Url: http://ipython.org Source: https://pypi.python.org/packages/source/i/ipython/ipython-%{version}.tar.gz BuildRequires: fdupes -BuildRequires: python3-devel -BuildRequires: python3-setuptools BuildRequires: python3-decorator +BuildRequires: python3-devel BuildRequires: python3-pexpect BuildRequires: python3-pickleshare -BuildRequires: python3-traitlets +BuildRequires: python3-setuptools BuildRequires: python3-simplegeneric > 0.8 +BuildRequires: python3-traitlets # Test Requirements BuildRequires: python3-matplotlib BuildRequires: python3-nose @@ -39,8 +40,8 @@ Requires: python3-decorator Requires: python3-pexpect Requires: python3-pickleshare -Requires: python3-traitlets Requires: python3-simplegeneric > 0.8 +Requires: python3-traitlets Recommends: python3-jupyter_ipykernel Recommends: python3-jupyter_ipyparallel Recommends: python3-jupyter_nbconvert @@ -86,6 +87,7 @@ %package iptest Summary: Tools for testing packages that rely in %{name} +Group: Development/Languages/Python Requires: %{name} = %{version} Requires: python3-matplotlib Requires: python3-nose ++++++ ipython-4.0.0.tar.gz -> ipython-4.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/core/inputsplitter.py new/ipython-4.0.1/IPython/core/inputsplitter.py --- old/ipython-4.0.0/IPython/core/inputsplitter.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/IPython/core/inputsplitter.py 2015-11-24 12:58:51.000000000 +0100 @@ -484,8 +484,8 @@ leading_indent(), classic_prompt(), ipy_prompt(), - strip_encoding_cookie(), cellmagic(end_on_blank_line=line_input_checker), + strip_encoding_cookie(), ] self.assemble_logical_lines = assemble_logical_lines() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/core/release.py new/ipython-4.0.1/IPython/core/release.py --- old/ipython-4.0.0/IPython/core/release.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/IPython/core/release.py 2015-11-25 15:04:38.000000000 +0100 @@ -21,7 +21,7 @@ # version _version_major = 4 _version_minor = 0 -_version_patch = 0 +_version_patch = 1 # _version_extra = 'dev' # _version_extra = 'rc1' _version_extra = '' # Uncomment this for full releases diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/core/tests/test_inputsplitter.py new/ipython-4.0.1/IPython/core/tests/test_inputsplitter.py --- old/ipython-4.0.0/IPython/core/tests/test_inputsplitter.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/IPython/core/tests/test_inputsplitter.py 2015-11-24 12:58:51.000000000 +0100 @@ -496,7 +496,7 @@ if __name__ == '__main__': # A simple demo for interactive experimentation. This code will not get # picked up by any test suite. - from IPython.core.inputsplitter import InputSplitter, IPythonInputSplitter + from IPython.core.inputsplitter import IPythonInputSplitter # configure here the syntax to use, prompt and whether to autoindent #isp, start_prompt = InputSplitter(), '>>> ' @@ -592,6 +592,16 @@ sp.push('\n') # This should accept a blank line and carry on until the cell is reset nt.assert_true(sp.push_accepts_more()) #3 + + def test_no_strip_coding(self): + src = '\n'.join([ + '%%writefile foo.py', + '# coding: utf-8', + 'print(u"üñîçø∂é")', + ]) + out = self.sp.transform_cell(src) + nt.assert_in('# coding: utf-8', out) + class LineModeCellMagics(CellMagicsCommon, unittest.TestCase): sp = isp.IPythonInputSplitter(line_input_checker=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/external/qt_for_kernel.py new/ipython-4.0.1/IPython/external/qt_for_kernel.py --- old/ipython-4.0.0/IPython/external/qt_for_kernel.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/IPython/external/qt_for_kernel.py 2015-11-24 12:58:51.000000000 +0100 @@ -4,13 +4,13 @@ Import Priority: -if Qt4 has been imported anywhere else: +if Qt has been imported anywhere else: use that if matplotlib has been imported and doesn't support v2 (<= 1.0.1): use PyQt4 @v1 -Next, ask ETS' QT_API env variable +Next, ask QT_API env variable if QT_API not set: ask matplotlib via rcParams['backend.qt4'] @@ -26,20 +26,29 @@ except: fallback on PySide else: - use PyQt @v2 or PySide, depending on QT_API - because ETS doesn't work with PyQt @v1. + use what QT_API says """ +# NOTE: This is no longer an external, third-party module, and should be +# considered part of IPython. For compatibility however, it is being kept in +# IPython/external. import os import sys from IPython.utils.version import check_version -from IPython.external.qt_loaders import (load_qt, QT_API_PYSIDE, - QT_API_PYQT, QT_API_PYQT_DEFAULT, - loaded_api) +from IPython.external.qt_loaders import (load_qt, loaded_api, QT_API_PYSIDE, + QT_API_PYQT, QT_API_PYQT5, + QT_API_PYQTv1, QT_API_PYQT_DEFAULT) + +_qt_apis = (QT_API_PYSIDE, QT_API_PYQT, QT_API_PYQT5, QT_API_PYQTv1, + QT_API_PYQT_DEFAULT) #Constraints placed on an imported matplotlib +# TODO: Make sure this logic is still in sync with matplotlib's requirements. +# In particular, matplotlib can also now support a qt5 backend, and so this will +# break if matplotlib is imported and running happily with qt5, because +# it only queries for the preferred qt4 option. def matplotlib_options(mpl): if mpl is None: return @@ -68,16 +77,15 @@ #1.0.1 only supports PyQt4 v1 return [QT_API_PYQT_DEFAULT] - if os.environ.get('QT_API', None) is None: + qt_api = os.environ.get('QT_API', None) + if qt_api is None: #no ETS variable. Ask mpl, then use either return matplotlib_options(mpl) or [QT_API_PYQT_DEFAULT, QT_API_PYSIDE] - - #ETS variable present. Will fallback to external.qt - return None + elif qt_api not in _qt_apis: + raise RuntimeError("Invalid Qt API %r, valid values are: %r" % + (qt_api, ', '.join(_qt_apis))) + else: + return [qt_api] api_opts = get_options() -if api_opts is not None: - QtCore, QtGui, QtSvg, QT_API = load_qt(api_opts) - -else: # use ETS variable - from IPython.external.qt import QtCore, QtGui, QtSvg, QT_API +QtCore, QtGui, QtSvg, QT_API = load_qt(api_opts) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/utils/_sysinfo.py new/ipython-4.0.1/IPython/utils/_sysinfo.py --- old/ipython-4.0.0/IPython/utils/_sysinfo.py 2015-08-12 03:09:00.000000000 +0200 +++ new/ipython-4.0.1/IPython/utils/_sysinfo.py 2015-11-25 15:10:01.000000000 +0100 @@ -1,2 +1,2 @@ # GENERATED BY setup.py -commit = u"f534027" +commit = u"03b6385" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/utils/tests/test_tokenutil.py new/ipython-4.0.1/IPython/utils/tests/test_tokenutil.py --- old/ipython-4.0.0/IPython/utils/tests/test_tokenutil.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/IPython/utils/tests/test_tokenutil.py 2015-11-24 12:58:51.000000000 +0100 @@ -13,7 +13,7 @@ if offset + len(line) >= cursor_pos: break else: - offset += len(line) + offset += len(line)+1 column = cursor_pos - offset line_with_cursor = '%s|%s' % (line[:column], line[column:]) nt.assert_equal(token, expected, @@ -88,3 +88,15 @@ (line, offset) = line_at_cursor(cell, cursor_pos=11) assert line == "", ("Expected '', got %r" % line) assert offset == 0, ("Expected '', got %r" % line) + +def test_muliline_statement(): + cell = """a = (1, + 3) + +int() +map() +""" + for c in range(16, 22): + yield lambda: expect_token("int", cell, c) + for c in range(22, 28): + yield lambda: expect_token("map", cell, c) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/utils/text.py new/ipython-4.0.1/IPython/utils/text.py --- old/ipython-4.0.0/IPython/utils/text.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/IPython/utils/text.py 2015-11-24 12:58:51.000000000 +0100 @@ -540,9 +540,7 @@ """ # copied from Formatter._vformat with minor changes to allow eval # and replace the format_spec code with slicing - def _vformat(self, format_string, args, kwargs, used_args, recursion_depth): - if recursion_depth < 0: - raise ValueError('Max string recursion exceeded') + def vformat(self, format_string, args, kwargs): result = [] for literal_text, field_name, format_spec, conversion in \ self.parse(format_string): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/IPython/utils/tokenutil.py new/ipython-4.0.1/IPython/utils/tokenutil.py --- old/ipython-4.0.0/IPython/utils/tokenutil.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/IPython/utils/tokenutil.py 2015-11-24 12:58:51.000000000 +0100 @@ -108,7 +108,7 @@ break tokens.append(tok) - if tok.token == tokenize2.NEWLINE: + if tok.token in (tokenize2.NEWLINE, tokenize2.NL): offset += len(tok.line) if call_names: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/PKG-INFO new/ipython-4.0.1/PKG-INFO --- old/ipython-4.0.0/PKG-INFO 2015-08-12 03:09:00.000000000 +0200 +++ new/ipython-4.0.1/PKG-INFO 2015-11-25 15:10:01.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: ipython -Version: 4.0.0 +Version: 4.0.1 Summary: IPython: Productive Interactive Computing Home-page: http://ipython.org Author: The IPython Development Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/docs/source/whatsnew/version4.rst new/ipython-4.0.1/docs/source/whatsnew/version4.rst --- old/ipython-4.0.0/docs/source/whatsnew/version4.rst 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/docs/source/whatsnew/version4.rst 2015-11-25 15:07:11.000000000 +0100 @@ -2,6 +2,17 @@ 4.x Series ============ +IPython 4.0.1 +============= + +Released November, 2015 + +Fixes for: + +- Installation on some systems +- Compatibility with CPython 3.4.4 +- Compatibility with Qt5 + IPython 4.0 =========== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipython-4.0.0/setup.py new/ipython-4.0.1/setup.py --- old/ipython-4.0.0/setup.py 2015-08-12 03:04:53.000000000 +0200 +++ new/ipython-4.0.1/setup.py 2015-11-24 12:58:51.000000000 +0100 @@ -200,9 +200,11 @@ # Platform-specific dependencies: # This is the correct way to specify these, # but requires pip >= 6. pip < 6 ignores these. + extras_require.update({ ':sys_platform != "win32"': ['pexpect'], - ':sys_platform == "darwin"': ['appnope', 'gnureadline'], + ':sys_platform == "darwin"': ['appnope'], + ':sys_platform == "darwin" and platform_python_implementation == "CPython"': ['gnureadline'], 'terminal:sys_platform == "win32"': ['pyreadline>=2'], 'test:python_version == "2.7"': ['mock'], }) @@ -213,16 +215,35 @@ extras_require['test'].append('mock') if sys.platform == 'darwin': - install_requires.extend(['appnope', 'gnureadline']) + install_requires.extend(['appnope']) + have_readline = False + try: + import readline + except ImportError: + pass + else: + if 'libedit' not in readline.__doc__: + have_readline = True + if not have_readline: + install_requires.extend(['gnureadline']) if sys.platform.startswith('win'): extras_require['terminal'].append('pyreadline>=2.0') else: install_requires.append('pexpect') + + # workaround pypa/setuptools#147, where setuptools misspells + # platform_python_implementation as python_implementation + if 'setuptools' in sys.modules: + for key in list(extras_require): + if 'platform_python_implementation' in key: + new_key = key.replace('platform_python_implementation', 'python_implementation') + extras_require[new_key] = extras_require.pop(key) everything = set() -for deps in extras_require.values(): - everything.update(deps) +for key, deps in extras_require.items(): + if ':' not in key: + everything.update(deps) extras_require['all'] = everything if 'setuptools' in sys.modules: