Hello community,
here is the log from the commit of package python-jupyter_qtconsole for
openSUSE:Factory checked in at 2015-11-18 22:34:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_qtconsole (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_qtconsole.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_qtconsole"
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-jupyter_qtconsole/python-jupyter_qtconsole.changes
2015-09-30 05:49:52.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python-jupyter_qtconsole.new/python-jupyter_qtconsole.changes
2015-11-18 22:34:23.000000000 +0100
@@ -1,0 +2,12 @@
+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.
+
+-------------------------------------------------------------------
+Mon Oct 5 10:01:17 UTC 2015 - [email protected]
+
+- Build documentation
+
+-------------------------------------------------------------------
Old:
----
qtconsole-4.0.1.tar.gz
New:
----
qtconsole-4.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_qtconsole.spec ++++++
--- /var/tmp/diff_new_pack.ezVUcu/_old 2015-11-18 22:34:24.000000000 +0100
+++ /var/tmp/diff_new_pack.ezVUcu/_new 2015-11-18 22:34:24.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-jupyter_qtconsole
-Version: 4.0.1
+Version: 4.1.0
Release: 0
Summary: Jupyter Qt console
License: BSD-3-Clause
@@ -44,6 +44,11 @@
%endif
# Python 2 test requirements
BuildRequires: python-mock
+# Documentation requirements
+BuildRequires: python-Sphinx
+%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} >
1110 )
+BuildRequires: python-Sphinx-latex
+%endif
Requires: hicolor-icon-theme
Requires: python-Pygments
Requires: python-jupyter_client
@@ -71,6 +76,20 @@
A rich Qt-based console for working with Jupyter kernels,
supporting rich media output, session export, and more.
+%package doc-html
+Summary: HTML documentation for %{name}
+Recommends: %{name} = %{version}
+
+%description doc-html
+Documentation and help files for %{name} in HTML format
+
+%package doc-pdf
+Summary: HTML documentation for %{name}
+Recommends: %{name} = %{version}
+
+%description doc-pdf
+Documentation and help files for %{name} in PDF format
+
%prep
%setup -q -n qtconsole-%{version}
@@ -81,9 +100,11 @@
export LANG=en_US.UTF-8
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+mv %{buildroot}%{_bindir}/jupyter-qtconsole
%{buildroot}%{_bindir}/jupyter2-qtconsole
+ln -s -f %{_bindir}/jupyter2-qtconsole
%{buildroot}%{_bindir}/jupyter-qtconsole-%{py_ver}
+
# Prepare for update-alternatives usage
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
-mv %{buildroot}%{_bindir}/jupyter-qtconsole
%{buildroot}%{_bindir}/jupyter-qtconsole-%{py_ver}
ln -s -f %{_sysconfdir}/alternatives/jupyter-qtconsole
%{buildroot}%{_bindir}/jupyter-qtconsole
# create a dummy target for /etc/alternatives/jupyter-qtconsole
touch %{buildroot}%{_sysconfdir}/alternatives/jupyter-qtconsole
@@ -97,6 +118,16 @@
desktop-file-edit --set-comment="Jupyter qtconsole for Python %{py_ver}"
--set-name="Jupyter Qt console for Python %{py_ver}"
--set-generic-name="Jupyter shell for Python %{py_ver}" --set-key="Exec"
--set-value="jupyter-qtconsole-%{py_ver}"
--set-icon="JupyterQtConsole-%{py_ver}" jupyter-qtconsole-%{py_ver}.desktop
%suse_update_desktop_file -i -r jupyter-qtconsole-%{py_ver}
"System;TerminalEmulator;"
+# Build the documentation
+pushd docs
+sed -i -s 's/ python3 / python /' Makefile
+%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} >
1110 )
+PYTHONPATH=%{buildroot}%{python_sitelib} make latexpdf
+%endif
+PYTHONPATH=%{buildroot}%{python_sitelib} make html
+rm -rf build/html/.buildinfo
+popd
+
%post
%_sbindir/update-alternatives \
--install %{_bindir}/jupyter-qtconsole jupyter-qtconsole
%{_bindir}/jupyter-qtconsole-%{py_ver} 30
@@ -116,11 +147,25 @@
%files
%defattr(-,root,root,-)
%doc COPYING.md README.md
+%doc examples
%{_bindir}/jupyter-qtconsole
+%{_bindir}/jupyter2-qtconsole
%{_bindir}/jupyter-qtconsole-%{py_ver}
%ghost %{_sysconfdir}/alternatives/jupyter-qtconsole
%{_datadir}/applications/jupyter-qtconsole-%{py_ver}.desktop
%{_datadir}/icons/hicolor/scalable/apps/JupyterQtConsole-%{py_ver}.svg
%{python_sitelib}/*
+%files doc-html
+%defattr(-,root,root,-)
+%doc COPYING.md
+%doc docs/build/html/
+
+%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} >
1110 )
+%files doc-pdf
+%defattr(-,root,root,-)
+%doc COPYING.md
+%doc docs/build/latex/*.pdf
+%endif
+
%changelog
++++++ 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'] = {