Hello community, here is the log from the commit of package python3-jupyter_qtconsole for openSUSE:Factory checked in at 2015-11-18 22:34:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-jupyter_qtconsole (Old) and /work/SRC/openSUSE:Factory/.python3-jupyter_qtconsole.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-jupyter_qtconsole" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-jupyter_qtconsole/python3-jupyter_qtconsole.changes 2015-10-12 10:01:50.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-jupyter_qtconsole.new/python3-jupyter_qtconsole.changes 2015-11-18 22:34:13.000000000 +0100 @@ -1,0 +2,13 @@ +Wed Oct 21 13:28:07 UTC 2015 - toddrme2...@gmail.com + +- Don't build with python3-buildservice-tweak. + It causes package tests to fail . + +------------------------------------------------------------------- +Fri Oct 16 12:15:08 UTC 2015 - toddrme2...@gmail.com + +- Update to 4.1.0 + * Fixed generating the default configuration + * Fixed some regressions in copy/paste from the console. + +------------------------------------------------------------------- Old: ---- qtconsole-4.0.1.tar.gz New: ---- qtconsole-4.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-jupyter_qtconsole.spec ++++++ --- /var/tmp/diff_new_pack.eJjJbZ/_old 2015-11-18 22:34:14.000000000 +0100 +++ /var/tmp/diff_new_pack.eJjJbZ/_new 2015-11-18 22:34:14.000000000 +0100 @@ -17,7 +17,7 @@ Name: python3-jupyter_qtconsole -Version: 4.0.1 +Version: 4.1.0 Release: 0 Summary: Jupyter Qt console License: BSD-3-Clause ++++++ qtconsole-4.0.1.tar.gz -> qtconsole-4.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/PKG-INFO new/qtconsole-4.1.0/PKG-INFO --- old/qtconsole-4.0.1/PKG-INFO 2015-08-17 23:21:37.000000000 +0200 +++ new/qtconsole-4.1.0/PKG-INFO 2015-10-16 13:39:58.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: qtconsole -Version: 4.0.1 +Version: 4.1.0 Summary: Jupyter Qt console Home-page: http://jupyter.org Author: Jupyter Development Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/docs/source/changelog.rst new/qtconsole-4.1.0/docs/source/changelog.rst --- old/qtconsole-4.0.1/docs/source/changelog.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/qtconsole-4.1.0/docs/source/changelog.rst 2015-10-16 13:38:00.000000000 +0200 @@ -0,0 +1,38 @@ +.. _changelog: + +Changes in Jupyter QtConsole +============================ + +.. _4.1: +.. _4.1.0: + +4.1 +--- + +`4.1 on GitHub <https://github.com/jupyter/qtconsole/milestones/4.1>`__ + +- fix regressions in copy/paste, completion +- fix issues with inprocess IPython kernel +- fix ``jupyter qtconsole --generate-config`` + +.. _4.0: + +4.0 +--- + +.. _4.0.1: + +4.0.1 +~~~~~ + +- fix installation issues, including setuptools entrypoints for Windows +- Qt5 fixes + +.. _4.0.0: + +4.0.0 +~~~~~ + +`4.0 on GitHub <https://github.com/jupyter/qtconsole/milestones/4.0>`__ + +First release of qtconsole as a standalone package. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/docs/source/index.rst new/qtconsole-4.1.0/docs/source/index.rst --- old/qtconsole-4.0.1/docs/source/index.rst 2015-08-17 23:21:18.000000000 +0200 +++ new/qtconsole-4.1.0/docs/source/index.rst 2015-10-16 13:38:00.000000000 +0200 @@ -4,6 +4,9 @@ A Qt Console for Jupyter ======================== +:Release: |release| +:Date: |today| + To start the Qt console:: $> jupyter qtconsole @@ -12,6 +15,7 @@ :maxdepth: 2 config_options + changelog You can use any Jupyter kernel with this PyQt_ console GUI. This is a very lightweight widget that diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/qtconsole/_version.py new/qtconsole-4.1.0/qtconsole/_version.py --- old/qtconsole-4.0.1/qtconsole/_version.py 2015-08-17 23:21:18.000000000 +0200 +++ new/qtconsole-4.1.0/qtconsole/_version.py 2015-10-16 13:38:31.000000000 +0200 @@ -1,2 +1,2 @@ -version_info = (4, 0, 1) +version_info = (4, 1, 0) __version__ = '.'.join(map(str, version_info)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/qtconsole/base_frontend_mixin.py new/qtconsole-4.1.0/qtconsole/base_frontend_mixin.py --- old/qtconsole-4.0.1/qtconsole/base_frontend_mixin.py 2015-08-17 23:21:18.000000000 +0200 +++ new/qtconsole-4.1.0/qtconsole/base_frontend_mixin.py 2015-10-08 16:28:13.000000000 +0200 @@ -69,12 +69,18 @@ kc = self.kernel_client if kc is None: return + + try: + blocking_client = kc.blocking_client + except AttributeError: + def blocking_client(): + info = kc.get_connection_info() + bc = BlockingKernelClient(**info) + bc.session.key = kc.session.key + return bc - info = kc.get_connection_info() - bc = BlockingKernelClient(**info) - bc.session.key = kc.session.key - bc.shell_channel.start() - self._blocking_client = bc + self._blocking_client = blocking_client() + self._blocking_client.shell_channel.start() @property def blocking_client(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/qtconsole/frontend_widget.py new/qtconsole-4.1.0/qtconsole/frontend_widget.py --- old/qtconsole-4.0.1/qtconsole/frontend_widget.py 2015-08-17 23:21:18.000000000 +0200 +++ new/qtconsole-4.1.0/qtconsole/frontend_widget.py 2015-10-16 13:11:30.000000000 +0200 @@ -12,6 +12,7 @@ from queue import Empty except ImportError: from Queue import Empty +import re from qtconsole import qt from qtconsole.qt import QtCore, QtGui @@ -25,6 +26,33 @@ from .history_console_widget import HistoryConsoleWidget from .pygments_highlighter import PygmentsHighlighter +_classic_prompt_re = re.compile(r'^([ \t]*>>> |^[ \t]*\.\.\. )') + +def transform_classic_prompt(line): + """Handle inputs that start with '>>> ' syntax.""" + + if not line or line.isspace(): + return line + m = _classic_prompt_re.match(line) + if m: + return line[len(m.group(0)):] + else: + return line + + +_ipy_prompt_re = re.compile(r'^([ \t]*In \[\d+\]: |^[ \t]*\ \ \ \.\.\.+: )') + +def transform_ipy_prompt(line): + """Handle inputs that start classic IPython prompt syntax.""" + + if not line or line.isspace(): + return line + m = _ipy_prompt_re.match(line) + if m: + return line[len(m.group(0)):] + else: + return line + class FrontendHighlighter(PygmentsHighlighter): """ A PygmentsHighlighter that understands and ignores prompts. @@ -213,8 +241,13 @@ elif self._control.hasFocus(): text = self._control.textCursor().selection().toPlainText() if text: + # Remove prompts. + lines = text.splitlines() + lines = map(transform_classic_prompt, lines) + lines = map(transform_ipy_prompt, lines) + text = '\n'.join(lines) was_newline = text[-1] == '\n' - if not was_newline: # user doesn't need newline + if was_newline: # user doesn't need newline text = text[:-1] QtGui.QApplication.clipboard().setText(text) else: @@ -536,7 +569,7 @@ def _handle_shutdown_reply(self, msg): """ Handle shutdown signal, only if from other console. """ - self.log.info("shutdown: %s", msg.get('content', '')) + self.log.debug("shutdown: %s", msg.get('content', '')) restart = msg.get('content', {}).get('restart', False) if not self._hidden and not self.from_here(msg): # got shutdown reply, request came from session other than ours diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/qtconsole/qtconsoleapp.py new/qtconsole-4.1.0/qtconsole/qtconsoleapp.py --- old/qtconsole-4.0.1/qtconsole/qtconsoleapp.py 2015-08-17 23:21:18.000000000 +0200 +++ new/qtconsole-4.1.0/qtconsole/qtconsoleapp.py 2015-10-08 16:28:13.000000000 +0200 @@ -56,9 +56,9 @@ Dict, Unicode, CBool, Any ) -from jupyter_core.application import JupyterApp +from jupyter_core.application import JupyterApp, base_flags, base_aliases from jupyter_client.consoleapp import ( - JupyterConsoleApp, app_aliases, app_flags, flags, aliases + JupyterConsoleApp, app_aliases, app_flags, ) @@ -73,8 +73,8 @@ # Aliases and Flags #----------------------------------------------------------------------------- -# start with copy of flags -flags = dict(flags) +# FIXME: workaround bug in jupyter_client < 4.1 excluding base_flags,aliases +flags = dict(base_flags) qt_flags = { 'plain' : ({'JupyterQtConsoleApp' : {'plain' : True}}, "Disable rich text support."), @@ -90,8 +90,8 @@ # add frontend flags to the full set flags.update(qt_flags) -# start with copy of front&backend aliases list -aliases = dict(aliases) +# start with copy of base jupyter aliases +aliases = dict(base_aliases) qt_aliases = dict( style = 'JupyterWidget.syntax_style', stylesheet = 'JupyterQtConsoleApp.stylesheet', @@ -338,6 +338,8 @@ def initialize(self, argv=None): self.init_qt_app() super(JupyterQtConsoleApp, self).initialize(argv) + if self._dispatching: + return # handle deprecated renames for old_name, new_name in [ ('IPythonQtConsoleApp', 'JupyterQtConsole'), @@ -352,6 +354,7 @@ self.init_signal() def start(self): + super(JupyterQtConsoleApp, self).start() # draw the window if self.maximize: @@ -375,9 +378,7 @@ #----------------------------------------------------------------------------- def main(): - app = JupyterQtConsoleApp() - app.initialize() - app.start() + JupyterQtConsoleApp.launch_instance() if __name__ == '__main__': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/qtconsole/tests/test_app.py new/qtconsole-4.1.0/qtconsole/tests/test_app.py --- old/qtconsole-4.0.1/qtconsole/tests/test_app.py 2015-08-17 23:21:18.000000000 +0200 +++ new/qtconsole-4.1.0/qtconsole/tests/test_app.py 2015-10-08 16:28:13.000000000 +0200 @@ -3,7 +3,11 @@ # Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. -import nose.tools as nt +import os +import shutil +import sys +import tempfile +from subprocess import check_output from traitlets.tests.utils import check_help_all_output from ipython_genutils.testing.decorators import skip_if_no_x11 @@ -13,3 +17,14 @@ """jupyter qtconsole --help-all works""" check_help_all_output('qtconsole') +@skip_if_no_x11 +def test_generate_config(): + """jupyter qtconsole --generate-config""" + td = tempfile.mkdtemp() + try: + check_output([sys.executable, '-m', 'qtconsole', '--generate-config'], + env={'JUPYTER_CONFIG_DIR': td}, + ) + assert os.path.isfile(os.path.join(td, 'jupyter_qtconsole_config.py')) + finally: + shutil.rmtree(td) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.0.1/setup.py new/qtconsole-4.1.0/setup.py --- old/qtconsole-4.0.1/setup.py 2015-08-17 23:21:18.000000000 +0200 +++ new/qtconsole-4.1.0/setup.py 2015-10-16 13:38:00.000000000 +0200 @@ -83,9 +83,9 @@ install_requires = setuptools_args['install_requires'] = [ 'traitlets', 'jupyter_core', - 'jupyter_client', + 'jupyter_client>=4.1', 'pygments', - 'ipykernel', # not a real dependency, but require the reference kernel + 'ipykernel>=4.1', # not a real dependency, but require the reference kernel ] extras_require = setuptools_args['extras_require'] = {