Hello community,
here is the log from the commit of package python-jupyter_client for
openSUSE:Factory checked in at 2018-05-29 10:38:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_client (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_client.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_client"
Tue May 29 10:38:45 2018 rev:7 rq:611088 version:5.2.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-jupyter_client/python-jupyter_client-doc.changes
2018-02-15 13:27:05.396524557 +0100
+++
/work/SRC/openSUSE:Factory/.python-jupyter_client.new/python-jupyter_client-doc.changes
2018-05-29 10:38:49.849977499 +0200
@@ -1,0 +2,14 @@
+Thu Apr 12 20:47:13 UTC 2018 - [email protected]
+
+- specfile:
+ * add requirement for python-backcall
+ * fix 'provides' syntax
+
+- update to version 5.2.3:
+ * Fix hang on close in :class:`.ThreadedKernelClient` (used in
+ QtConsole) when using tornado with asyncio (default behavior of
+ tornado 5, see :ghpull:`352`).
+ * Fix errors when using deprecated :attr:`.KernelManager.kernel_cmd`
+ (:ghpull:`343`, :ghpull:`344`).
+
+-------------------------------------------------------------------
---
/work/SRC/openSUSE:Factory/python-jupyter_client/python-jupyter_client.changes
2018-02-15 13:27:05.656515114 +0100
+++
/work/SRC/openSUSE:Factory/.python-jupyter_client.new/python-jupyter_client.changes
2018-05-29 10:38:51.285924487 +0200
@@ -1,0 +2,13 @@
+Thu Apr 12 20:47:13 UTC 2018 - [email protected]
+
+- specfile:
+ - remove fix_COPY_THRESHOLD.patch, included upstream
+
+- update to version 5.2.3:
+ * Fix hang on close in :class:`.ThreadedKernelClient` (used in
+ QtConsole) when using tornado with asyncio (default behavior of
+ tornado 5, see :ghpull:`352`).
+ * Fix errors when using deprecated :attr:`.KernelManager.kernel_cmd`
+ (:ghpull:`343`, :ghpull:`344`).
+
+-------------------------------------------------------------------
Old:
----
fix_COPY_THRESHOLD.patch
jupyter_client-5.2.2.tar.gz
New:
----
jupyter_client-5.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_client-doc.spec ++++++
--- /var/tmp/diff_new_pack.EFmmOV/_old 2018-05-29 10:38:52.901864831 +0200
+++ /var/tmp/diff_new_pack.EFmmOV/_new 2018-05-29 10:38:52.901864831 +0200
@@ -16,29 +16,31 @@
#
+%{?!python_module:%define python_module() python-%{**} python3-%{**}}
# PDF documentation currently broken
%bcond_with pdf
-
%bcond_without html
-
%bcond_without tests
-
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_client-doc
-Version: 5.2.2
+Version: 5.2.3
Release: 0
Summary: Documentation for python-jupyter_client
License: BSD-3-Clause
Group: Development/Languages/Python
Url: https://github.com/jupyter/jupyter_client
Source:
https://files.pythonhosted.org/packages/source/j/jupyter_client/jupyter_client-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM fix_COPY_THRESHOLD.patch -- fix testing patch for pyzmq <
17 -- https://github.com/jupyter/jupyter_client/pull/349
-Patch0: fix_COPY_THRESHOLD.patch
BuildRequires: %{python_module jupyter_client}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
+Provides: %{name}-html = %{version}
+Provides: %{name}-pdf = %{version}
+Obsoletes: %{name}-html < %{version}
+Obsoletes: %{name}-pdf < %{version}
+Provides: python-jupyter_client-doc = %{version}
+BuildArch: noarch
%if %{with tests}
# Test Requirements
+BuildRequires: %{python_module backcall}
BuildRequires: %{python_module jupyter_ipykernel}
BuildRequires: %{python_module nose}
BuildRequires: %{python_module pytest}
@@ -53,29 +55,22 @@
%if %{with pdf}
BuildRequires: python3-Sphinx-latex
%endif
-BuildArch: noarch
-Provides: %{name}-html = %{version}
-Provides: %{name}-pdf = %{version}
-Obsoletes: %{name}-html < %{version}
-Obsoletes: %{name}-pdf < %{version}
-Provides: %{python_module jupyter_client-doc = %{version}}
%description
Documentation and help files for python-jupyter_client.
%prep
%setup -q -n jupyter_client-%{version}
-%patch0 -p1
%build
# Build the documentation
pushd docs
%if %{with html}
-make html
+make %{?_smp_mflags} html
rm -rf build/html/.buildinfo
%endif
%if %{with pdf}
-make latexpdf
+make %{?_smp_mflags} latexpdf
%endif
popd
@@ -100,8 +95,7 @@
%endif
%files
-%defattr(-,root,root,-)
-%doc COPYING.md
+%license COPYING.md
%{_docdir}/python-jupyter_client/
%changelog
++++++ python-jupyter_client.spec ++++++
--- /var/tmp/diff_new_pack.EFmmOV/_old 2018-05-29 10:38:52.925863945 +0200
+++ /var/tmp/diff_new_pack.EFmmOV/_new 2018-05-29 10:38:52.925863945 +0200
@@ -18,15 +18,13 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_client
-Version: 5.2.2
+Version: 5.2.3
Release: 0
Summary: Jupyter protocol implementation and client libraries
License: BSD-3-Clause
Group: Development/Languages/Python
Url: https://github.com/jupyter/jupyter_client
Source:
https://files.pythonhosted.org/packages/source/j/jupyter_client/jupyter_client-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM fix_COPY_THRESHOLD.patch -- fix testing patch for pyzmq <
17 -- https://github.com/jupyter/jupyter_client/pull/349
-Patch0: fix_COPY_THRESHOLD.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -49,7 +47,6 @@
%prep
%setup -q -n jupyter_client-%{version}
-%patch0 -p1
%build
%python_build
@@ -59,8 +56,8 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%files %{python_files}
-%defattr(-,root,root,-)
-%doc CONTRIBUTING.md COPYING.md README.md
+%license COPYING.md
+%doc CONTRIBUTING.md README.md
%python3_only %{_bindir}/jupyter-kernel
%python3_only %{_bindir}/jupyter-kernelspec
%python3_only %{_bindir}/jupyter-run
++++++ jupyter_client-5.2.2.tar.gz -> jupyter_client-5.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_client-5.2.2/PKG-INFO
new/jupyter_client-5.2.3/PKG-INFO
--- old/jupyter_client-5.2.2/PKG-INFO 2018-01-24 18:35:14.000000000 +0100
+++ new/jupyter_client-5.2.3/PKG-INFO 2018-03-12 17:11:51.000000000 +0100
@@ -1,22 +1,28 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: jupyter_client
-Version: 5.2.2
+Version: 5.2.3
Summary: Jupyter protocol implementation and client libraries
Home-page: https://jupyter.org
Author: Jupyter Development Team
Author-email: [email protected]
License: BSD
+Project-URL: Documentation, https://jupyter-client.readthedocs.io
+Project-URL: Source, https://github.com/jupyter/jupyter_client/
+Project-URL: Tracker, https://github.com/jupyter/jupyter_client/issues
Description-Content-Type: UNKNOWN
Description: UNKNOWN
Keywords: Interactive,Interpreter,Shell,Web
Platform: Linux
Platform: Mac OS X
Platform: Windows
+Classifier: Framework :: Jupyter
Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Education
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_client-5.2.2/docs/changelog.rst
new/jupyter_client-5.2.3/docs/changelog.rst
--- old/jupyter_client-5.2.2/docs/changelog.rst 2018-01-24 18:34:35.000000000
+0100
+++ new/jupyter_client-5.2.3/docs/changelog.rst 2018-03-12 15:12:43.000000000
+0100
@@ -4,6 +4,17 @@
Changes in Jupyter Client
=========================
+5.2.3
+=====
+
+`5.2.3 on GitHub
<https://github.com/jupyter/jupyter_client/milestones/5.2.3>`__
+
+- Fix hang on close in :class:`.ThreadedKernelClient` (used in QtConsole)
+ when using tornado with asyncio
+ (default behavior of tornado 5, see :ghpull:`352`).
+- Fix errors when using deprecated :attr:`.KernelManager.kernel_cmd`
+ (:ghpull:`343`, :ghpull:`344`).
+
5.2.2
=====
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_client-5.2.2/jupyter_client/_version.py
new/jupyter_client-5.2.3/jupyter_client/_version.py
--- old/jupyter_client-5.2.2/jupyter_client/_version.py 2018-01-24
18:34:48.000000000 +0100
+++ new/jupyter_client-5.2.3/jupyter_client/_version.py 2018-03-12
17:11:28.000000000 +0100
@@ -1,4 +1,4 @@
-version_info = (5, 2, 2)
+version_info = (5, 2, 3)
__version__ = '.'.join(map(str, version_info))
protocol_version_info = (5, 3)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_client-5.2.2/jupyter_client/manager.py
new/jupyter_client-5.2.3/jupyter_client/manager.py
--- old/jupyter_client-5.2.2/jupyter_client/manager.py 2018-01-24
10:30:48.000000000 +0100
+++ new/jupyter_client-5.2.3/jupyter_client/manager.py 2018-03-12
17:11:16.000000000 +0100
@@ -11,6 +11,7 @@
import signal
import sys
import time
+import warnings
import zmq
@@ -77,7 +78,7 @@
@property
def kernel_spec(self):
- if self._kernel_spec is None:
+ if self._kernel_spec is None and self.kernel_name is not '':
self._kernel_spec =
self.kernel_spec_manager.get_kernel_spec(self.kernel_name)
return self._kernel_spec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_client-5.2.2/jupyter_client/tests/test_session.py
new/jupyter_client-5.2.3/jupyter_client/tests/test_session.py
--- old/jupyter_client-5.2.2/jupyter_client/tests/test_session.py
2017-11-22 12:54:35.000000000 +0100
+++ new/jupyter_client-5.2.3/jupyter_client/tests/test_session.py
2018-03-11 15:14:54.000000000 +0100
@@ -41,7 +41,7 @@
@pytest.fixture
def no_copy_threshold():
"""Disable zero-copy optimizations in pyzmq >= 17"""
- with mock.patch.object(zmq, 'COPY_THRESHOLD', 1):
+ with mock.patch.object(zmq, 'COPY_THRESHOLD', 1, create=True):
yield
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_client-5.2.2/jupyter_client/threaded.py
new/jupyter_client-5.2.3/jupyter_client/threaded.py
--- old/jupyter_client-5.2.2/jupyter_client/threaded.py 2018-01-24
10:08:58.000000000 +0100
+++ new/jupyter_client-5.2.3/jupyter_client/threaded.py 2018-03-11
15:14:56.000000000 +0100
@@ -3,7 +3,8 @@
from __future__ import absolute_import
import atexit
import errno
-from threading import Thread
+import sys
+from threading import Thread, Event
import time
# import ZMQError in top-level namespace, to avoid ugly attribute-error
messages
@@ -41,9 +42,15 @@
self.socket = socket
self.session = session
self.ioloop = loop
+ evt = Event()
- self.stream = zmqstream.ZMQStream(self.socket, self.ioloop)
- self.stream.on_recv(self._handle_recv)
+ def setup_stream():
+ self.stream = zmqstream.ZMQStream(self.socket, self.ioloop)
+ self.stream.on_recv(self._handle_recv)
+ evt.set()
+
+ self.ioloop.add_callback(setup_stream)
+ evt.wait()
_is_alive = False
def is_alive(self):
@@ -142,11 +149,11 @@
"""Run a pyzmq ioloop in a thread to send and receive messages
"""
_exiting = False
+ ioloop = None
- def __init__(self, loop):
+ def __init__(self):
super(IOLoopThread, self).__init__()
self.daemon = True
- self.ioloop = loop or ioloop.IOLoop()
@staticmethod
@atexit.register
@@ -156,8 +163,26 @@
if IOLoopThread is not None:
IOLoopThread._exiting = True
+ def start(self):
+ """Start the IOLoop thread
+
+ Don't return until self.ioloop is defined,
+ which is created in the thread
+ """
+ self._start_event = Event()
+ Thread.start(self)
+ self._start_event.wait()
+
def run(self):
"""Run my loop, ignoring EINTR events in the poller"""
+ if 'asyncio' in sys.modules:
+ # tornado may be using asyncio,
+ # ensure an eventloop exists for this thread
+ import asyncio
+ asyncio.set_event_loop(asyncio.new_event_loop())
+ self.ioloop = ioloop.IOLoop()
+ # signal that self.ioloop is defined
+ self._start_event.set()
while True:
try:
self.ioloop.start()
@@ -182,9 +207,10 @@
:meth:`~threading.Thread.start` is called again.
"""
if self.ioloop is not None:
- self.ioloop.stop()
+ self.ioloop.add_callback(self.ioloop.stop)
self.join()
self.close()
+ self.ioloop = None
def close(self):
if self.ioloop is not None:
@@ -198,22 +224,19 @@
""" A KernelClient that provides thread-safe sockets with async callbacks
on message replies.
"""
- _ioloop = None
@property
def ioloop(self):
- if self._ioloop is None:
- self._ioloop = ioloop.IOLoop()
- return self._ioloop
+ return self.ioloop_thread.ioloop
ioloop_thread = Instance(IOLoopThread, allow_none=True)
def start_channels(self, shell=True, iopub=True, stdin=True, hb=True):
+ self.ioloop_thread = IOLoopThread()
+ self.ioloop_thread.start()
+
if shell:
self.shell_channel._inspect = self._check_kernel_info_reply
- self.ioloop_thread = IOLoopThread(self.ioloop)
- self.ioloop_thread.start()
-
super(ThreadedKernelClient, self).start_channels(shell, iopub, stdin,
hb)
def _check_kernel_info_reply(self, msg):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_client-5.2.2/jupyter_client.egg-info/PKG-INFO
new/jupyter_client-5.2.3/jupyter_client.egg-info/PKG-INFO
--- old/jupyter_client-5.2.2/jupyter_client.egg-info/PKG-INFO 2018-01-24
18:35:14.000000000 +0100
+++ new/jupyter_client-5.2.3/jupyter_client.egg-info/PKG-INFO 2018-03-12
17:11:51.000000000 +0100
@@ -1,22 +1,28 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: jupyter-client
-Version: 5.2.2
+Version: 5.2.3
Summary: Jupyter protocol implementation and client libraries
Home-page: https://jupyter.org
Author: Jupyter Development Team
Author-email: [email protected]
License: BSD
+Project-URL: Documentation, https://jupyter-client.readthedocs.io
+Project-URL: Source, https://github.com/jupyter/jupyter_client/
+Project-URL: Tracker, https://github.com/jupyter/jupyter_client/issues
Description-Content-Type: UNKNOWN
Description: UNKNOWN
Keywords: Interactive,Interpreter,Shell,Web
Platform: Linux
Platform: Mac OS X
Platform: Windows
+Classifier: Framework :: Jupyter
Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Education
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_client-5.2.2/setup.py
new/jupyter_client-5.2.3/setup.py
--- old/jupyter_client-5.2.2/setup.py 2018-01-24 10:30:54.000000000 +0100
+++ new/jupyter_client-5.2.3/setup.py 2018-03-12 17:11:16.000000000 +0100
@@ -60,22 +60,29 @@
name = name,
version = version_ns['__version__'],
packages = packages,
- description = "Jupyter protocol implementation and client libraries",
+ description = 'Jupyter protocol implementation and client libraries',
author = 'Jupyter Development Team',
author_email = '[email protected]',
url = 'https://jupyter.org',
license = 'BSD',
platforms = "Linux, Mac OS X, Windows",
keywords = ['Interactive', 'Interpreter', 'Shell', 'Web'],
+ project_urls = {
+ 'Documentation': 'https://jupyter-client.readthedocs.io',
+ 'Source': 'https://github.com/jupyter/jupyter_client/',
+ 'Tracker': 'https://github.com/jupyter/jupyter_client/issues',
+ },
classifiers = [
+ 'Framework :: Jupyter',
'Intended Audience :: Developers',
+ 'Intended Audience :: Education',
'Intended Audience :: System Administrators',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: BSD License',
+ 'Operating System :: OS Independent',
'Programming Language :: Python',
- 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 2',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.3',
],
install_requires = [
'traitlets',
@@ -84,6 +91,7 @@
'python-dateutil>=2.1',
'tornado>=4.1',
],
+ python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*',
extras_require = {
'test': ['ipykernel', 'ipython', 'mock'],
'test:python_version == "3.3"': ['pytest<3.3.0'],