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 - [email protected]
+
+- Don't build with python3-buildservice-tweak.
+ It causes package tests to fail .
+
+-------------------------------------------------------------------
+Fri Oct 16 12:15:08 UTC 2015 - [email protected]
+
+- 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'] = {