openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
October 2017
- 1 participants
- 1963 discussions
Hello community,
here is the log from the commit of package python-jupyter_ipykernel for openSUSE:Factory checked in at 2017-10-03 23:17:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_ipykernel (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_ipykernel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_ipykernel"
Tue Oct 3 23:17:01 2017 rev:5 rq:527573 version:4.6.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter_ipykernel/python-jupyter_ipykernel-doc.changes 2017-05-17 17:12:19.812034350 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_ipykernel.new/python-jupyter_ipykernel-doc.changes 2017-10-03 23:17:02.504472874 +0200
@@ -1,0 +2,9 @@
+Tue Sep 19 20:00:24 UTC 2017 - toddrme2178(a)gmail.com
+
+- Update to 4.6.1
+ * Fix eventloop-integration bug preventing Qt windows/widgets
+ from displaying with ipykernel 4.6.0 and IPython ≥ 5.2.
+ * Avoid deprecation warnings about naive datetimes when working
+ with jupyter_client ≥ 5.0.
+
+-------------------------------------------------------------------
python-jupyter_ipykernel.changes: same change
Old:
----
ipykernel-4.6.0.tar.gz
New:
----
ipykernel-4.6.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_ipykernel-doc.spec ++++++
--- /var/tmp/diff_new_pack.uk8sCl/_old 2017-10-03 23:17:03.276364242 +0200
+++ /var/tmp/diff_new_pack.uk8sCl/_new 2017-10-03 23:17:03.284363116 +0200
@@ -16,19 +16,13 @@
#
-%if 0%{?suse_version} && 0%{?suse_version} != 1315
-%bcond_without pdf
-%else
%bcond_with pdf
-%endif
-
%bcond_without html
-
%bcond_without tests
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_ipykernel-doc
-Version: 4.6.0
+Version: 4.6.1
Release: 0
Summary: Documentation for python-jupyter_ipykernel
License: BSD-3-Clause
@@ -52,7 +46,6 @@
%if %{with pdf}
BuildRequires: python3-Sphinx-latex
%endif
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Provides: %{name}-html = %{version}
Provides: %{name}-pdf = %{version}
@@ -68,6 +61,7 @@
%build
# Build the documentation
+export LANG=en_US.UTF-8
pushd docs
%if %{with html}
make html
@@ -81,14 +75,14 @@
%install
mkdir -p %{buildroot}%{_docdir}/python-jupyter_ipykernel
-%if %{with pdf}
-cp docs/_build/latex/*.pdf %{buildroot}%{_docdir}/python-jupyter_ipykernel/
-%endif
-
%if %{with html}
cp -r docs/_build/html %{buildroot}%{_docdir}/python-jupyter_ipykernel/
%endif
+%if %{with pdf}
+cp docs/_build/latex/*.pdf %{buildroot}%{_docdir}/python-jupyter_ipykernel/
+%endif
+
%fdupes %{buildroot}%{_docdir}/python-jupyter_ipykernel/
%if %{with tests}
++++++ python-jupyter_ipykernel.spec ++++++
--- /var/tmp/diff_new_pack.uk8sCl/_old 2017-10-03 23:17:03.332356362 +0200
+++ /var/tmp/diff_new_pack.uk8sCl/_new 2017-10-03 23:17:03.336355799 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_ipykernel
-Version: 4.6.0
+Version: 4.6.1
Release: 0
Summary: IPython Kernel for Jupyter
License: BSD-3-Clause
@@ -29,12 +29,11 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: %{python_module devel}
-BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module jupyter_client}
BuildRequires: %{python_module jupyter_ipython >= 4.0.0}
+BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module tornado >= 4.0}
BuildRequires: %{python_module traitlets >= 4.1.0}
-BuildRequires: python-typing
Requires: python-jupyter_client
Requires: python-jupyter_ipython >= 4.0.0
Requires: python-tornado >= 4.0
@@ -44,10 +43,8 @@
%endif
# typing is only built-in for later versions of python
%if 0%{?suse_version} <= 1320
-BuildRequires: %{python_module typing}
Requires: python-typing
%endif
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%python_subpackages
++++++ ipykernel-4.6.0.tar.gz -> ipykernel-4.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-4.6.0/PKG-INFO new/ipykernel-4.6.1/PKG-INFO
--- old/ipykernel-4.6.0/PKG-INFO 2017-04-04 09:46:09.000000000 +0200
+++ new/ipykernel-4.6.1/PKG-INFO 2017-04-11 18:12:21.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: ipykernel
-Version: 4.6.0
+Version: 4.6.1
Summary: IPython Kernel for Jupyter
Home-page: http://ipython.org
Author: IPython Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-4.6.0/docs/changelog.rst new/ipykernel-4.6.1/docs/changelog.rst
--- old/ipykernel-4.6.0/docs/changelog.rst 2017-03-31 15:34:41.000000000 +0200
+++ new/ipykernel-4.6.1/docs/changelog.rst 2017-04-11 18:11:32.000000000 +0200
@@ -4,6 +4,15 @@
4.6
---
+4.6.1
+*****
+
+`4.6.1 on GitHub <https://github.com/ipython/ipykernel/milestones/4.6.1>`__
+
+- Fix eventloop-integration bug preventing Qt windows/widgets from displaying with ipykernel 4.6.0 and IPython ≥ 5.2.
+- Avoid deprecation warnings about naive datetimes when working with jupyter_client ≥ 5.0.
+
+
4.6.0
*****
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-4.6.0/ipykernel/_version.py new/ipykernel-4.6.1/ipykernel/_version.py
--- old/ipykernel-4.6.0/ipykernel/_version.py 2017-04-04 09:36:16.000000000 +0200
+++ new/ipykernel-4.6.1/ipykernel/_version.py 2017-04-11 18:11:41.000000000 +0200
@@ -1,4 +1,4 @@
-version_info = (4, 6, 0)
+version_info = (4, 6, 1)
__version__ = '.'.join(map(str, version_info))
kernel_protocol_version_info = (5, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-4.6.0/ipykernel/eventloops.py new/ipykernel-4.6.1/ipykernel/eventloops.py
--- old/ipykernel-4.6.0/ipykernel/eventloops.py 2016-11-30 10:07:29.000000000 +0100
+++ new/ipykernel-4.6.1/ipykernel/eventloops.py 2017-04-11 18:11:19.000000000 +0200
@@ -72,11 +72,23 @@
return decorator
+def _loop_qt(app):
+ """Inner-loop for running the Qt eventloop
+
+ Pulled from guisupport.start_event_loop in IPython < 5.2,
+ since IPython 5.2 only checks `get_ipython().active_eventloop` is defined,
+ rather than if the eventloop is actually running.
+ """
+ app._in_event_loop = True
+ app.exec_()
+ app._in_event_loop = False
+
+
@register_integration('qt', 'qt4')
def loop_qt4(kernel):
"""Start a kernel with PyQt4 event loop integration."""
- from IPython.lib.guisupport import get_app_qt4, start_event_loop_qt4
+ from IPython.lib.guisupport import get_app_qt4
kernel.app = get_app_qt4([" "])
kernel.app.setQuitOnLastWindowClosed(False)
@@ -84,7 +96,8 @@
for s in kernel.shell_streams:
_notify_stream_qt(kernel, s)
- start_event_loop_qt4(kernel.app)
+ _loop_qt(kernel.app)
+
@register_integration('qt5')
def loop_qt5(kernel):
@@ -93,12 +106,23 @@
return loop_qt4(kernel)
+def _loop_wx(app):
+ """Inner-loop for running the Wx eventloop
+
+ Pulled from guisupport.start_event_loop in IPython < 5.2,
+ since IPython 5.2 only checks `get_ipython().active_eventloop` is defined,
+ rather than if the eventloop is actually running.
+ """
+ app._in_event_loop = True
+ app.MainLoop()
+ app._in_event_loop = False
+
+
@register_integration('wx')
def loop_wx(kernel):
"""Start a kernel with wx event loop support."""
import wx
- from IPython.lib.guisupport import start_event_loop_wx
if _use_appnope() and kernel._darwin_app_nap:
# we don't hook up App Nap contexts for Wx,
@@ -143,7 +167,7 @@
if not callable(signal.getsignal(signal.SIGINT)):
signal.signal(signal.SIGINT, signal.default_int_handler)
- start_event_loop_wx(kernel.app)
+ _loop_wx(kernel.app)
@register_integration('tk')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-4.6.0/ipykernel/ipkernel.py new/ipykernel-4.6.1/ipykernel/ipkernel.py
--- old/ipykernel-4.6.0/ipykernel/ipkernel.py 2016-11-30 10:07:29.000000000 +0100
+++ new/ipykernel-4.6.1/ipykernel/ipkernel.py 2017-04-11 18:11:32.000000000 +0200
@@ -213,7 +213,7 @@
u'evalue': safe_unicode(err),
})
- # FIXME: deprecate piece for ipyparallel:
+ # FIXME: deprecated piece for ipyparallel (remove in 5.0):
e_info = dict(engine_uuid=self.ident, engine_id=self.int_id,
method='execute')
reply_content['engine_info'] = e_info
@@ -351,7 +351,7 @@
u'ename': unicode_type(type(e).__name__),
u'evalue': safe_unicode(e),
}
- # FIXME: deprecate piece for ipyparallel:
+ # FIXME: deprecated piece for ipyparallel (remove in 5.0):
e_info = dict(engine_uuid=self.ident, engine_id=self.int_id, method='apply')
reply_content['engine_info'] = e_info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-4.6.0/ipykernel/kernelbase.py new/ipykernel-4.6.1/ipykernel/kernelbase.py
--- old/ipykernel-4.6.0/ipykernel/kernelbase.py 2017-03-31 15:34:41.000000000 +0200
+++ new/ipykernel-4.6.1/ipykernel/kernelbase.py 2017-04-11 18:11:32.000000000 +0200
@@ -11,6 +11,13 @@
import uuid
from datetime import datetime
+try:
+ # jupyter_client >= 5, use tz-aware now
+ from jupyter_client.session import utcnow as now
+except ImportError:
+ # jupyter_client < 5, use local now()
+ now = datetime.now
+
from signal import signal, default_int_handler, SIGINT
import zmq
@@ -350,8 +357,10 @@
Run at the beginning of execution requests.
"""
+ # FIXME: `started` is part of ipyparallel
+ # Remove for ipykernel 5.0
return {
- 'started': datetime.now(),
+ 'started': now(),
}
def finish_metadata(self, parent, metadata, reply_content):
1
0
Hello community,
here is the log from the commit of package python-jupyter_console for openSUSE:Factory checked in at 2017-10-03 23:16:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_console (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_console.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_console"
Tue Oct 3 23:16:59 2017 rev:5 rq:527436 version:5.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter_console/python-jupyter_console-doc.changes 2017-05-17 17:12:33.802062300 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_console.new/python-jupyter_console-doc.changes 2017-10-03 23:17:00.748719969 +0200
@@ -1,0 +2,12 @@
+Tue Sep 19 19:51:19 UTC 2017 - toddrme2178(a)gmail.com
+
+- Update to 5.2.0
+ * When using a kernel that the console did not start, exiting with Ctrl-D now
+ leaves it running.
+ * Added Ctrl-\\ shortcut to quit the console.
+ * Input prompt numbers are now updated when another frontend has executed
+ code in the same kernel.
+ * Fix setting next input with newer versions of prompt_toolkit.
+ * Ensure history entries are unicode, not bytes, on Python 2.
+
+-------------------------------------------------------------------
python-jupyter_console.changes: same change
Old:
----
jupyter_console-5.1.0.tar.gz
New:
----
jupyter_console-5.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_console-doc.spec ++++++
--- /var/tmp/diff_new_pack.L6M1jp/_old 2017-10-03 23:17:01.372632163 +0200
+++ /var/tmp/diff_new_pack.L6M1jp/_new 2017-10-03 23:17:01.376631600 +0200
@@ -29,7 +29,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_console-doc
-Version: 5.1.0
+Version: 5.2.0
Release: 0
Summary: Documentation for python-jupyter_console
License: BSD-3-Clause
@@ -48,6 +48,7 @@
# Documentation requirements
%if %{with pdf} || %{with html}
BuildRequires: python3-Sphinx
+BuildRequires: python3-sphinxcontrib-github-alt
%endif
%if %{with pdf}
BuildRequires: python3-Sphinx-latex
++++++ python-jupyter_console.spec ++++++
--- /var/tmp/diff_new_pack.L6M1jp/_old 2017-10-03 23:17:01.408627098 +0200
+++ /var/tmp/diff_new_pack.L6M1jp/_new 2017-10-03 23:17:01.412626534 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_console
-Version: 5.1.0
+Version: 5.2.0
Release: 0
Summary: Jupyter terminal console
License: BSD-3-Clause
@@ -29,13 +29,10 @@
BuildRequires: python-rpm-macros
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module jupyter_client}
-BuildRequires: %{python_module jupyter_ipykernel}
-BuildRequires: %{python_module jupyter_ipython}
Requires: python-jupyter_client
Requires: python-jupyter_ipykernel
Requires: python-jupyter_ipython
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Recommends: python-prompt_toolkit >= 1.0.0
BuildArch: noarch
%python_subpackages
++++++ jupyter_console-5.1.0.tar.gz -> jupyter_console-5.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_console-5.1.0/PKG-INFO new/jupyter_console-5.2.0/PKG-INFO
--- old/jupyter_console-5.1.0/PKG-INFO 2017-02-03 16:43:54.000000000 +0100
+++ new/jupyter_console-5.2.0/PKG-INFO 2017-08-21 12:37:54.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: jupyter_console
-Version: 5.1.0
+Version: 5.2.0
Summary: Jupyter terminal console
Home-page: https://jupyter.org
Author: Jupyter Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_console-5.1.0/docs/changelog.rst new/jupyter_console-5.2.0/docs/changelog.rst
--- old/jupyter_console-5.1.0/docs/changelog.rst 2017-02-03 16:36:12.000000000 +0100
+++ new/jupyter_console-5.2.0/docs/changelog.rst 2017-08-21 12:27:33.000000000 +0200
@@ -3,6 +3,17 @@
A summary of changes in Jupyter console releases.
+5.2
+---
+
+- When using a kernel that the console did not start, exiting with Ctrl-D now
+ leaves it running. :ghpull:`127`
+- Added Ctrl-\\ shortcut to quit the console. :ghpull:`130`
+- Input prompt numbers are now updated when another frontend has executed
+ code in the same kernel. :ghpull:`119`
+- Fix setting next input with newer versions of prompt_toolkit. :ghpull:`123`
+- Ensure history entries are unicode, not bytes, on Python 2. :ghpull:`122`
+
5.1
---
@@ -24,20 +35,21 @@
Interactive Shell architecture
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-- disinherit shell class from IPython Interactive Shell `#68 <https://github.com/jupyter/jupyter_console/pull/68>`_
- This separates jupyter_console's ZMQTerminalInteractiveShell from IPython's TerminalInteractiveShell and InteractiveShell classes.
-- update SIGINT handler to not use the old interactive API shell `#80 <https://github.com/jupyter/jupyter_console/pull/80>`_
+- Disinherit shell class from IPython Interactive Shell (:ghpull:`68`).
+ This separates jupyter_console's ``ZMQTerminalInteractiveShell`` from
+ IPython's ``TerminalInteractiveShell`` and ``InteractiveShell`` classes.
+- Update SIGINT handler to not use the old interactive API shell. :ghpull:`80`
Image Handling improvement
^^^^^^^^^^^^^^^^^^^^^^^^^^
-- use PIL as default image handler `#79 <https://github.com/jupyter/jupyter_console/pull/79>`_
-- better indication of whether image data was handled `#77 <https://github.com/jupyter/jupyter_console/pull/77>`_
+- use PIL as default image handler :ghpull:`79`
+- better indication of whether image data was handled :ghpull:`77`
Prompts improvement
^^^^^^^^^^^^^^^^^^^
-- use prompt_toolkit 1.0 `#74 <https://github.com/jupyter/jupyter_console/pull/74>`_
-- don't use prompt_manager `#75 <https://github.com/jupyter/jupyter_console/pull/75>`_
-- remove ``colors_force`` flag that have no effects: `#88 <https://github.com/jupyter/jupyter_console/pull/88>`_
+- use prompt_toolkit 1.0 :ghpull:`74`
+- don't use prompt_manager :ghpull:`75`
+- remove ``colors_force`` flag that have no effects: :ghpull:`88`
4.1
---
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_console-5.1.0/docs/conf.py new/jupyter_console-5.2.0/docs/conf.py
--- old/jupyter_console-5.1.0/docs/conf.py 2016-10-22 18:24:16.000000000 +0200
+++ new/jupyter_console-5.2.0/docs/conf.py 2017-08-21 12:27:33.000000000 +0200
@@ -44,8 +44,11 @@
# ones.
extensions = [
'sphinx.ext.intersphinx',
+ 'sphinxcontrib_github_alt',
]
+github_project_url = "https://github.com/jupyter/jupyter_console"
+
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_console-5.1.0/docs/requirements.txt new/jupyter_console-5.2.0/docs/requirements.txt
--- old/jupyter_console-5.1.0/docs/requirements.txt 2016-09-17 10:09:23.000000000 +0200
+++ new/jupyter_console-5.2.0/docs/requirements.txt 2017-08-21 12:27:33.000000000 +0200
@@ -3,3 +3,4 @@
jupyter_core
jupyter_client
sphinx
+sphinxcontrib_github_alt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_console-5.1.0/jupyter_console/_version.py new/jupyter_console-5.2.0/jupyter_console/_version.py
--- old/jupyter_console-5.1.0/jupyter_console/_version.py 2017-02-03 16:40:10.000000000 +0100
+++ new/jupyter_console-5.2.0/jupyter_console/_version.py 2017-08-21 12:32:57.000000000 +0200
@@ -5,6 +5,6 @@
See PEP 440 https://www.python.org/dev/peps/pep-0440/
"""
-version_info = (5, 1, 0)
+version_info = (5, 2, 0)
__version__ = '.'.join(map(str, version_info[:3])) + ''.join(version_info[3:])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_console-5.1.0/jupyter_console/ptshell.py new/jupyter_console-5.2.0/jupyter_console/ptshell.py
--- old/jupyter_console-5.1.0/jupyter_console/ptshell.py 2017-02-03 16:38:05.000000000 +0100
+++ new/jupyter_console-5.2.0/jupyter_console/ptshell.py 2017-08-17 14:55:43.000000000 +0200
@@ -30,6 +30,7 @@
from . import __version__
from prompt_toolkit.completion import Completer, Completion
+from prompt_toolkit.document import Document
from prompt_toolkit.enums import DEFAULT_BUFFER, EditingMode
from prompt_toolkit.filters import HasFocus, HasSelection, ViInsertMode, EmacsInsertMode
from prompt_toolkit.history import InMemoryHistory
@@ -122,6 +123,7 @@
_execution_state = Unicode('')
_pending_clearoutput = False
_eventloop = None
+ own_kernel = False # Changed by ZMQTerminalIPythonApp
editing_mode = Unicode('emacs', config=True,
help="Shortcut style to use at the prompt. 'vi' or 'emacs'.",
@@ -358,6 +360,10 @@
b.newline()
return
+ # Pressing enter flushes any pending display. This also ensures
+ # the displayed execution_count is correct.
+ self.handle_iopub()
+
more, indent = self.check_complete(d.text)
if (not more) and b.accept_action.is_returnable:
@@ -369,13 +375,17 @@
def _(event):
event.current_buffer.reset()
+ @kbmanager.registry.add_binding(Keys.ControlBackslash, filter=HasFocus(DEFAULT_BUFFER))
+ def _(event):
+ raise EOFError
+
# Pre-populate history from IPython's history database
history = InMemoryHistory()
last_cell = u""
for _, _, cell in self.history_manager.get_tail(self.history_load_length,
include_latest=True):
# Ignore blank lines and consecutive duplicates
- cell = cell.rstrip()
+ cell = cast_unicode_py2(cell.rstrip())
if cell and (cell != last_cell):
history.append(cell)
@@ -460,11 +470,19 @@
def pre_prompt(self):
if self.next_input:
- b = self.pt_cli.application.buffer
- b.text = cast_unicode_py2(self.next_input)
+ # We can't set the buffer here, because it will be reset just after
+ # this. Adding a callable to pre_run_callables does what we need
+ # after the buffer is reset.
+ s = cast_unicode_py2(self.next_input)
+ def set_doc():
+ self.pt_cli.application.buffer.document = Document(s)
+ if hasattr(self.pt_cli, 'pre_run_callables'):
+ self.pt_cli.pre_run_callables.append(set_doc)
+ else:
+ # Older version of prompt_toolkit; it's OK to set the document
+ # directly here.
+ set_doc()
self.next_input = None
- # Move the cursor to the end
- b.cursor_position += b.document.get_end_of_document_position()
def interact(self, display_banner=None):
while self.keep_running:
@@ -482,7 +500,7 @@
self.run_cell(code, store_history=True)
def mainloop(self):
- self.keepkernel = False
+ self.keepkernel = not self.own_kernel
# An extra layer of protection in case someone mashing Ctrl-C breaks
# out of our internal code.
while True:
@@ -663,6 +681,10 @@
msg_type = sub_msg['header']['msg_type']
parent = sub_msg["parent_header"]
+ # Update execution_count in case it changed in another session
+ if msg_type == "execute_input":
+ self.execution_count = int(sub_msg["content"]["execution_count"]) + 1
+
if self.include_output(sub_msg):
if msg_type == 'status':
self._execution_state = sub_msg["content"]["execution_state"]
1
0
03 Oct '17
Hello community,
here is the log from the commit of package python-sphinxcontrib-github-alt for openSUSE:Factory checked in at 2017-10-03 23:16:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sphinxcontrib-github-alt (Old)
and /work/SRC/openSUSE:Factory/.python-sphinxcontrib-github-alt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sphinxcontrib-github-alt"
Tue Oct 3 23:16:54 2017 rev:1 rq:527432 version:1.0
Changes:
--------
New Changes file:
--- /dev/null 2017-07-20 07:30:00.335470106 +0200
+++ /work/SRC/openSUSE:Factory/.python-sphinxcontrib-github-alt.new/python-sphinxcontrib-github-alt.changes 2017-10-03 23:16:55.345480393 +0200
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Wed Sep 20 01:52:53 UTC 2017 - toddrme2178(a)gmail.com
+
+- Initial version
New:
----
python-sphinxcontrib-github-alt.changes
python-sphinxcontrib-github-alt.spec
sphinxcontrib_github_alt-1.0-py2.py3-none-any.whl
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sphinxcontrib-github-alt.spec ++++++
#
# spec file for package python-sphinxcontrib-github-alt
#
# Copyright (c) 2017 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_with test
Name: python-sphinxcontrib-github-alt
Version: 1.0
Release: 0
Summary: Link to GitHub issues, pull requests, commits and users from Sphinx docs
License: BSD-2-Clause
Group: Development/Languages/Python
Url: http://github.com/Calysto/octave_kernel
Source0: https://files.pythonhosted.org/packages/py2.py3/s/sphinxcontrib_github_alt/…
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pip}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-Sphinx
Requires: python-docutils
BuildArch: noarch
%python_subpackages
%description
Link to GitHub issues, pull requests, commits and users for a
particular project.
To use this extension, add it to the extensions list in conf.py,
and set the variable github_project_url:
%prep
%setup -T -c -n %{name}-%{version}
%build
# Not needed
%install
%{python_expand pip%{$python_bin_suffix} install \
--root %{buildroot} \
--prefix %{_prefix} \
--compile \
%{SOURCE0}
}
%files %{python_files}
%defattr(-,root,root,-)
%{python_sitelib}/sphinxcontrib_github_alt.py*
%pycache_only %{python_sitelib}/__pycache__/sphinxcontrib_github_alt*.py*
%{python_sitelib}/sphinxcontrib_github_alt-%{version}.dist-info
%changelog
1
0
Hello community,
here is the log from the commit of package python-jupyter_qtconsole for openSUSE:Factory checked in at 2017-10-03 23:16:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_qtconsole (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_qtconsole.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_qtconsole"
Tue Oct 3 23:16:45 2017 rev:5 rq:527429 version:4.3.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter_qtconsole/python-jupyter_qtconsole-doc.changes 2017-05-17 17:12:46.408285282 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_qtconsole.new/python-jupyter_qtconsole-doc.changes 2017-10-03 23:16:46.694697860 +0200
@@ -1,0 +2,7 @@
+Tue Sep 19 21:07:54 UTC 2017 - toddrme2178(a)gmail.com
+
+- Update to 4.3.1
+ * Make %clear to delete previous output on Windows.
+ * Fix SVG rendering.
+
+-------------------------------------------------------------------
python-jupyter_qtconsole.changes: same change
Old:
----
qtconsole-4.3.0.tar.gz
New:
----
qtconsole-4.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_qtconsole-doc.spec ++++++
--- /var/tmp/diff_new_pack.eJnbvV/_old 2017-10-03 23:16:47.530580221 +0200
+++ /var/tmp/diff_new_pack.eJnbvV/_new 2017-10-03 23:16:47.534579658 +0200
@@ -28,7 +28,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_qtconsole-doc
-Version: 4.3.0
+Version: 4.3.1
Release: 0
Summary: Documentation for python-jupyter_qtconsole
License: BSD-3-Clause
++++++ python-jupyter_qtconsole.spec ++++++
--- /var/tmp/diff_new_pack.eJnbvV/_old 2017-10-03 23:16:47.566575156 +0200
+++ /var/tmp/diff_new_pack.eJnbvV/_new 2017-10-03 23:16:47.570574593 +0200
@@ -18,35 +18,31 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_qtconsole
-Version: 4.3.0
+Version: 4.3.1
Release: 0
Summary: Jupyter Qt console
License: BSD-3-Clause
Group: Development/Languages/Python
Url: http://jupyter.org
Source: https://files.pythonhosted.org/packages/source/q/qtconsole/qtconsole-%{vers…
+BuildRequires: %{python_module devel}
+BuildRequires: %{python_module jupyter_core}
+BuildRequires: %{python_module setuptools}
BuildRequires: desktop-file-utils
-BuildRequires: hicolor-icon-theme
BuildRequires: fdupes
+BuildRequires: hicolor-icon-theme
BuildRequires: python-rpm-macros
-BuildRequires: %{python_module devel}
-BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module Pygments}
-BuildRequires: %{python_module jupyter_client}
-BuildRequires: %{python_module jupyter_core}
-BuildRequires: %{python_module jupyter_ipykernel}
-BuildRequires: %{python_module traitlets}
BuildRequires: update-desktop-files
Requires: hicolor-icon-theme
Requires: python-Pygments
-Requires: python-jupyter_client
+Requires: python-ipython_genutils
+Requires: python-jupyter_client >= 4.1
Requires: python-jupyter_core
-Requires: python-jupyter_ipykernel
+Requires: python-jupyter_ipykernel >= 4.1
Requires: python-sip
Requires: python-traitlets
-Requires: python-qt5
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
+
%python_subpackages
%description
++++++ qtconsole-4.3.0.tar.gz -> qtconsole-4.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/PKG-INFO new/qtconsole-4.3.1/PKG-INFO
--- old/qtconsole-4.3.0/PKG-INFO 2017-03-29 14:53:11.000000000 +0200
+++ new/qtconsole-4.3.1/PKG-INFO 2017-08-12 18:16:08.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: qtconsole
-Version: 4.3.0
+Version: 4.3.1
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.3.0/docs/source/changelog.rst new/qtconsole-4.3.1/docs/source/changelog.rst
--- old/qtconsole-4.3.0/docs/source/changelog.rst 2017-03-29 14:34:25.000000000 +0200
+++ new/qtconsole-4.3.1/docs/source/changelog.rst 2017-08-12 18:12:42.000000000 +0200
@@ -3,6 +3,14 @@
Changes in Jupyter Qt console
=============================
+.. _4.3.1:
+
+`4.3.1 on GitHub <https://github.com/jupyter/qtconsole/milestones/4.3.1>`__
+
+- Make %clear to delete previous output on Windows.
+- Fix SVG rendering.
+
+
.. _4.3:
4.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/docs/source/conf.py new/qtconsole-4.3.1/docs/source/conf.py
--- old/qtconsole-4.3.0/docs/source/conf.py 2016-03-22 21:38:37.000000000 +0100
+++ new/qtconsole-4.3.1/docs/source/conf.py 2017-08-12 17:49:25.000000000 +0200
@@ -314,4 +314,4 @@
# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {'https://docs.python.org/': None}
+intersphinx_mapping = {'https://docs.python.org/3/': None}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/qtconsole/_version.py new/qtconsole-4.3.1/qtconsole/_version.py
--- old/qtconsole-4.3.0/qtconsole/_version.py 2017-03-29 14:36:46.000000000 +0200
+++ new/qtconsole-4.3.1/qtconsole/_version.py 2017-08-12 18:14:24.000000000 +0200
@@ -1,2 +1,2 @@
-version_info = (4, 3, 0)
+version_info = (4, 3, 1)
__version__ = '.'.join(map(str, version_info))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/qtconsole/console_widget.py new/qtconsole-4.3.1/qtconsole/console_widget.py
--- old/qtconsole-4.3.0/qtconsole/console_widget.py 2017-03-29 14:34:25.000000000 +0200
+++ new/qtconsole-4.3.1/qtconsole/console_widget.py 2017-08-12 17:49:25.000000000 +0200
@@ -3,6 +3,7 @@
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
+import os
import os.path
import re
import sys
@@ -1834,6 +1835,10 @@
cursor.joinPreviousEditBlock()
cursor.deletePreviousChar()
+ if os.name == 'nt':
+ cursor.select(QtGui.QTextCursor.Document)
+ cursor.removeSelectedText()
+
elif act.action == 'carriage-return':
cursor.movePosition(
cursor.StartOfLine, cursor.KeepAnchor)
@@ -2123,8 +2128,13 @@
# We can't leave the cursor at the end of the document though, because
# that would cause any further additions to move the cursor. Therefore,
# we move it back one place and move it forward again at the end of
- # this method.
- self._append_before_prompt_cursor.setPosition(cursor.position() - 1)
+ # this method. However, we only do this if the cursor isn't already
+ # at the start of the text.
+ if cursor.position() == 0:
+ move_forward = False
+ else:
+ move_forward = True
+ self._append_before_prompt_cursor.setPosition(cursor.position() - 1)
# Insert a preliminary newline, if necessary.
if newline and cursor.position() > 0:
@@ -2151,8 +2161,10 @@
self._flush_pending_stream()
self._prompt_cursor.setPosition(self._get_end_pos() - 1)
- self._append_before_prompt_cursor.setPosition(
- self._append_before_prompt_cursor.position() + 1)
+
+ if move_forward:
+ self._append_before_prompt_cursor.setPosition(
+ self._append_before_prompt_cursor.position() + 1)
self._prompt_started()
#------ Signal handlers ----------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/qtconsole/frontend_widget.py new/qtconsole-4.3.1/qtconsole/frontend_widget.py
--- old/qtconsole-4.3.0/qtconsole/frontend_widget.py 2016-11-13 18:38:20.000000000 +0100
+++ new/qtconsole-4.3.1/qtconsole/frontend_widget.py 2017-08-12 17:49:25.000000000 +0200
@@ -447,9 +447,7 @@
of the value of corresponding `user_expressions` as argument.
`callback` is then removed from the known list so that any message
coming again with the same id won't trigger it.
-
"""
-
user_exp = msg['content'].get('user_expressions')
if not user_exp:
return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/qtconsole/mainwindow.py new/qtconsole-4.3.1/qtconsole/mainwindow.py
--- old/qtconsole-4.3.0/qtconsole/mainwindow.py 2017-01-08 23:13:40.000000000 +0100
+++ new/qtconsole-4.3.1/qtconsole/mainwindow.py 2017-08-12 17:49:25.000000000 +0200
@@ -704,8 +704,7 @@
self.active_frontend._page(gui_reference)
def _open_online_help(self):
- filename="http://ipython.org/ipython-doc/stable/index.html"
- webbrowser.open(filename, new=1, autoraise=True)
+ webbrowser.open("https://qtconsole.readthedocs.io", new=1, autoraise=True)
def toggleMaximized(self):
if not self.isMaximized():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/qtconsole/rich_jupyter_widget.py new/qtconsole-4.3.1/qtconsole/rich_jupyter_widget.py
--- old/qtconsole-4.3.0/qtconsole/rich_jupyter_widget.py 2017-03-29 14:34:25.000000000 +0200
+++ new/qtconsole-4.3.1/qtconsole/rich_jupyter_widget.py 2017-08-12 17:49:25.000000000 +0200
@@ -61,8 +61,7 @@
# Do we support jpg ?
# it seems that sometime jpg support is a plugin of QT, so try to assume
# it is not always supported.
- _supported_format = [bytes(f) for f in QtGui.QImageReader.supportedImageFormats()]
- self._jpg_supported = b'jpeg' in _supported_format
+ self._jpg_supported = 'jpeg' in QtGui.QImageReader.supportedImageFormats()
#---------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/qtconsole/styles.py new/qtconsole-4.3.1/qtconsole/styles.py
--- old/qtconsole-4.3.0/qtconsole/styles.py 2015-12-20 15:40:14.000000000 +0100
+++ new/qtconsole-4.3.1/qtconsole/styles.py 2017-08-12 17:49:25.000000000 +0200
@@ -12,48 +12,45 @@
# Constants
#-----------------------------------------------------------------------------
-# The default light style sheet: black text on a white background.
-default_light_style_template = '''
- QPlainTextEdit, QTextEdit { background-color: %(bgcolor)s;
- color: %(fgcolor)s ;
- selection-background-color: %(select)s}
+default_template = '''\
+ QPlainTextEdit, QTextEdit {
+ background-color: %(bgcolor)s;
+ background-clip: padding;
+ color: %(fgcolor)s;
+ selection-background-color: %(select)s;
+ }
+ .inverted {
+ background-color: %(fgcolor)s;
+ color: %(bgcolor)s;
+ }
.error { color: red; }
- .in-prompt { color: navy; }
.in-prompt-number { font-weight: bold; }
- .out-prompt { color: darkred; }
.out-prompt-number { font-weight: bold; }
- .inverted { background-color: %(fgcolor)s ; color:%(bgcolor)s;}
+'''
+
+# The default light style sheet: black text on a white background.
+default_light_style_template = default_template + '''\
+ .in-prompt { color: navy; }
+ .out-prompt { color: darkred; }
'''
default_light_style_sheet = default_light_style_template%dict(
bgcolor='white', fgcolor='black', select="#ccc")
default_light_syntax_style = 'default'
# The default dark style sheet: white text on a black background.
-default_dark_style_template = '''
- QPlainTextEdit, QTextEdit { background-color: %(bgcolor)s;
- color: %(fgcolor)s ;
- selection-background-color: %(select)s}
- QFrame { border: 1px solid grey; }
- .error { color: red; }
- .in-prompt { color: lime; }
- .in-prompt-number { color: lime; font-weight: bold; }
- .out-prompt { color: red; }
- .out-prompt-number { color: red; font-weight: bold; }
- .inverted { background-color: %(fgcolor)s ; color:%(bgcolor)s;}
+default_dark_style_template = default_template + '''\
+ .in-prompt,
+ .in-prompt-number { color: lime; }
+ .out-prompt,
+ .out-prompt-number { color: red; }
'''
default_dark_style_sheet = default_dark_style_template%dict(
bgcolor='black', fgcolor='white', select="#555")
default_dark_syntax_style = 'monokai'
# The default monochrome
-default_bw_style_sheet = '''
- QPlainTextEdit, QTextEdit { background-color: white;
- color: black ;
- selection-background-color: #cccccc}
- .in-prompt-number { font-weight: bold; }
- .out-prompt-number { font-weight: bold; }
- .inverted { background-color: black ; color: white;}
-'''
+default_bw_style_sheet = default_template%dict(
+ bgcolor='white', fgcolor='black', select="#ccc")
default_bw_syntax_style = 'bw'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtconsole-4.3.0/qtconsole/svg.py new/qtconsole-4.3.1/qtconsole/svg.py
--- old/qtconsole-4.3.0/qtconsole/svg.py 2015-12-20 15:40:14.000000000 +0100
+++ new/qtconsole-4.3.1/qtconsole/svg.py 2017-08-12 17:49:25.000000000 +0200
@@ -86,6 +86,7 @@
if size is None:
size = renderer.defaultSize()
image = QtGui.QImage(size, QtGui.QImage.Format_ARGB32)
+ image.fill(0)
painter = QtGui.QPainter(image)
renderer.render(painter)
return image
1
0
Hello community,
here is the log from the commit of package python-jupyter_notebook for openSUSE:Factory checked in at 2017-10-03 23:16:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_notebook (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_notebook.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_notebook"
Tue Oct 3 23:16:40 2017 rev:5 rq:527424 version:5.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter_notebook/python-jupyter_notebook-doc.changes 2017-05-17 17:14:19.147211597 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_notebook.new/python-jupyter_notebook-doc.changes 2017-10-03 23:16:43.447154902 +0200
@@ -1,0 +2,22 @@
+Tue Sep 19 20:58:26 UTC 2017 - toddrme2178(a)gmail.com
+
+- Update to 5.1.0
+ * Preliminary i18n implementation
+ * Expose URL with auth token in notebook UI
+ * Fix search background style
+ * List running notebooks without requiring ``--allow-root``
+ * Allow session of type other than notebook
+ * Fix search background style
+ * Fix some Markdown styling issues
+ * Remove keymaps that conflict with non-English keyboards
+ * Add session-specific favicons (notebook, terminal, file)
+ * Add /api/shutdown handler
+ * Include metadata when copying a cell
+ * Stop notebook server from command line
+ * Improve "View" and "Edit" file handling in dashboard
+ * Provide a promise to replace use of the ``app_initialized.NotebookApp`` event
+ * Fix disabled collapse/expand output button
+ * Cull idle kernels using ``--MappingKernelManager.cull_idle_timeout``
+ * Allow read-only notebooks to be trusted
+
+-------------------------------------------------------------------
python-jupyter_notebook.changes: same change
Old:
----
notebook-5.0.0.tar.gz
New:
----
notebook-5.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_notebook-doc.spec ++++++
--- /var/tmp/diff_new_pack.DHOyVW/_old 2017-10-03 23:16:45.226904429 +0200
+++ /var/tmp/diff_new_pack.DHOyVW/_new 2017-10-03 23:16:45.230903866 +0200
@@ -28,7 +28,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_notebook-doc
-Version: 5.0.0
+Version: 5.1.0
Release: 0
Summary: Documentation for python-jupyter_notebook
License: BSD-3-Clause
++++++ python-jupyter_notebook.spec ++++++
--- /var/tmp/diff_new_pack.DHOyVW/_old 2017-10-03 23:16:45.266898801 +0200
+++ /var/tmp/diff_new_pack.DHOyVW/_new 2017-10-03 23:16:45.274897675 +0200
@@ -18,31 +18,19 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_notebook
-Version: 5.0.0
+Version: 5.1.0
Release: 0
Summary: Jupyter Notebook
License: BSD-3-Clause
Group: Development/Languages/Python
Url: http://jupyter.org
Source: https://files.pythonhosted.org/packages/source/n/notebook/notebook-%{versio…
-BuildRequires: hicolor-icon-theme
-BuildRequires: fdupes
-BuildRequires: python-rpm-macros
BuildRequires: %{python_module devel}
-BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module Jinja2}
-BuildRequires: %{python_module ipython_genutils}
-BuildRequires: %{python_module jupyter_client}
BuildRequires: %{python_module jupyter_core}
-BuildRequires: %{python_module jupyter_ipykernel}
-BuildRequires: %{python_module jupyter_nbconvert}
-BuildRequires: %{python_module jupyter_nbformat}
-BuildRequires: %{python_module terminado >= 0.3.3}
-BuildRequires: %{python_module tornado >= 4}
-BuildRequires: %{python_module traitlets}
-BuildRequires: %{python_module backports_abc}
-# BuildRequires: python-backports_abc
-BuildRequires: python-singledispatch
+BuildRequires: %{python_module setuptools}
+BuildRequires: fdupes
+BuildRequires: hicolor-icon-theme
+BuildRequires: python-rpm-macros
Requires: python-Jinja2
Requires: python-ipython_genutils
Requires: python-jupyter_client
@@ -52,12 +40,9 @@
Requires: python-jupyter_nbformat
Requires: python-terminado >= 0.3.3
Requires: python-tornado >= 4
-Requires: python-traitlets
-%ifpython2
-Requires: python-backports_abc
-Requires: python-singledispatch
-%endif
+Requires: python-traitlets >= 4.2.1
Recommends: python-jupyter_ipywidgets
+Suggests: %{name}-latex
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%python_subpackages
@@ -65,6 +50,15 @@
%description
The Jupyter HTML notebook is a web-based notebook environment for interactive computing.
+%package latex
+Summary: LaTeX support for the Jupyter Notebook
+Requires: python-jupyter_nbconvert-latex
+
+%description latex
+The Jupyter HTML notebook is a web-based notebook environment for interactive computing.
+
+This package pulls in the LaTeX dependencies for the Jupyter Notebook.
+
%prep
%setup -q -n notebook-%{version}
@@ -97,14 +91,17 @@
%files %{python_files}
%defattr(-,root,root,-)
%doc COPYING.md README.md
-%python3_only %{_bindir}/less-watch
%python3_only %{_bindir}/jupyter-bundlerextension
%python3_only %{_bindir}/jupyter-nbextension
%python3_only %{_bindir}/jupyter-notebook
%python3_only %{_bindir}/jupyter-serverextension
%python3_only %{_datadir}/icons/hicolor/*/apps/JupyterNotebook.*
-%{_datadir}/jupyter/nbextensions
-%{_sysconfdir}/jupyter/nbextensions
+%dir %{_datadir}/jupyter/nbextensions
+%dir %{_sysconfdir}/jupyter/nbextensions
%{python_sitelib}/*
+%files %{python_files latex}
+%defattr(-,root,root,-)
+%doc COPYING.md README.md
+
%changelog
++++++ notebook-5.0.0.tar.gz -> notebook-5.1.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-jupyter_notebook/notebook-5.0.0.tar.gz /work/SRC/openSUSE:Factory/.python-jupyter_notebook.new/notebook-5.1.0.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package python-jupyter_nbformat for openSUSE:Factory checked in at 2017-10-03 23:16:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_nbformat (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_nbformat.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_nbformat"
Tue Oct 3 23:16:37 2017 rev:4 rq:527423 version:4.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter_nbformat/python-jupyter_nbformat-doc.changes 2017-05-17 17:12:56.030928820 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_nbformat.new/python-jupyter_nbformat-doc.changes 2017-10-03 23:16:37.591978931 +0200
@@ -1,0 +2,16 @@
+Tue Sep 19 20:52:35 UTC 2017 - toddrme2178(a)gmail.com
+
+- Update to 4.4.0
+ * Explicitly state that metadata fields can be ignored.
+ * Introduce official jupyter namespace inside metadata (``metadata.jupyter``).
+ * Introduce ``source_hidden`` and ``outputs_hidden`` as official front-end
+ metadata fields to indicate hiding source and outputs areas. **NB**: These
+ fields should not be used to hide elements in exported formats.
+ * Fix ending the redundant storage of signatures in the signature database.
+ * :func:`nbformat.validate` can be set to not raise a ValidationError if
+ additional properties are included.
+ * Fix for errors with connecting and backing up the signature database.
+ * Dict-like objects added to NotebookNode attributes are now transformed to be
+ NotebookNode objects; transformation also works for `.update()`.
+
+-------------------------------------------------------------------
python-jupyter_nbformat.changes: same change
Old:
----
nbformat-4.3.0.tar.gz
New:
----
nbformat-4.4.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_nbformat-doc.spec ++++++
--- /var/tmp/diff_new_pack.dr9wcu/_old 2017-10-03 23:16:38.383867484 +0200
+++ /var/tmp/diff_new_pack.dr9wcu/_new 2017-10-03 23:16:38.383867484 +0200
@@ -28,7 +28,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_nbformat-doc
-Version: 4.3.0
+Version: 4.4.0
Release: 0
Summary: Documentation for python-jupyter_nbformat
License: BSD-3-Clause
@@ -70,7 +70,7 @@
pushd docs
%if %{with html}
make html
-rm -rf build/html/.buildinfo
+rm -r _build/html/.buildinfo
%endif
%if %{with pdf}
make latexpdf
++++++ python-jupyter_nbformat.spec ++++++
--- /var/tmp/diff_new_pack.dr9wcu/_old 2017-10-03 23:16:38.427861293 +0200
+++ /var/tmp/diff_new_pack.dr9wcu/_new 2017-10-03 23:16:38.427861293 +0200
@@ -18,26 +18,21 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_nbformat
-Version: 4.3.0
+Version: 4.4.0
Release: 0
Summary: The Jupyter Notebook format
License: BSD-3-Clause
Group: Development/Languages/Python
Url: http://jupyter.org
Source: https://files.pythonhosted.org/packages/source/n/nbformat/nbformat-%{versio…
-BuildRequires: fdupes
-BuildRequires: python-rpm-macros
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module ipython_genutils}
-BuildRequires: %{python_module jsonschema > 2.5.0}
-BuildRequires: %{python_module jupyter_core}
-BuildRequires: %{python_module traitlets}
+BuildRequires: fdupes
+BuildRequires: python-rpm-macros
Requires: python-ipython_genutils
Requires: python-jsonschema > 2.5.0
Requires: python-jupyter_core
-Requires: python-traitlets
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Requires: python-traitlets >= 4.1
BuildArch: noarch
%python_subpackages
++++++ nbformat-4.3.0.tar.gz -> nbformat-4.4.0.tar.gz ++++++
++++ 17295 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-jupyter_ipywidgets for openSUSE:Factory checked in at 2017-10-03 23:16:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_ipywidgets (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_ipywidgets.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_ipywidgets"
Tue Oct 3 23:16:30 2017 rev:6 rq:527407 version:7.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter_ipywidgets/python-jupyter_ipywidgets-doc.changes 2017-05-17 17:13:58.098179075 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_ipywidgets.new/python-jupyter_ipywidgets-doc.changes 2017-10-03 23:16:30.876923974 +0200
@@ -1,0 +2,49 @@
+Tue Sep 19 20:31:32 UTC 2017 - toddrme2178(a)gmail.com
+
+- Update to version 7.0.1
+ + Major user-visible changes in ipywidgets 7.0 include:
+ * Widgets are now displayed in the output area in the classic notebook and are treated as any other output. This allows the widgets to work more naturally with other cell output. To delete a widget, clear the output from the cell. Output from functions triggered by a widget view is appended to the output area that contains the widget view. This means that printed text will be appended to the output, and calling `clear_output()` will delete the entire output, including the widget view. ([#1274](https://github.com/jupyter-widgets/ipywidgets/pull/1274), [#1353](https://github.com/jupyter-widgets/ipywidgets/pull/1353))
+ * Removed the version validation check since it was causing too many false warnings about the widget javascript not being installed or the wrong version number. It is now up to the user to ensure that the ipywidgets and widgetsnbextension packages are compatible. ([#1219](https://github.com/jupyter-widgets/ipywidgets/pull/1219))
+ * The documentation theme is changed to the new standard Jupyter theme. ([#1363](https://github.com/jupyter-widgets/ipywidgets/pull/1363))
+ * The `layout` and `style` traits can be set with a dictionary for convenience, which will automatically converted to a Layout or Style object, like `IntSlider(layout={'width': '100%'}, style={'handle_color': 'lightgreen'})`. ([#1253](https://github.com/jupyter-widgets/ipywidgets/pull/1253))
+ * The Select widget now is a listbox instead of a dropdown, reverting back to the pre-6.0 behavior. ([#1238](https://github.com/jupyter-widgets/ipywidgets/pull/1238))
+ * The Select and SelectMultiple widgets now have a `rows` attribute for the number of rows to display, consistent with the Textarea widget. The `layout.height` attribute overrides this to control the height of the widget. ([#1250](https://github.com/jupyter-widgets/ipywidgets/pull/1250))
+ * Selection widgets (`Select`, `Dropdown`, `ToggleButtons`, etc.) have new `.value`, `.label`, and `.index` traits to make it easier to access or change the selected option. ([#1262](https://github.com/jupyter-widgets/ipywidgets/pull/1262), [#1513](https://github.com/jupyter-widgets/ipywidgets/pull/1513))
+ * Selection container widgets (`Accordion`, `Tabs`) can have their `.selected_index` set to `None` to deselect all items. ([#1495](https://github.com/jupyter-widgets/ipywidgets/pull/1495))
+ * The `Play` widget range is now inclusive (max value is max, instead of max-1), to be consistent with Sliders
+ * The `Play` widget now has an optional repeat toggle button (visible by default). ([#1190](https://github.com/jupyter-widgets/ipywidgets/pull/1190))
+ * A refactoring of the text, slider, slider range, and progress widgets in resulted in the progress widgets losing their `step` attribute (which was previously ignored), and a number of these widgets changing their `_model_name` and/or `_view_name` attributes ([#1290](https://github.com/jupyter-widgets/ipywidgets/pull/1290))
+ * The `Checkbox` description is now on the right of the checkbox and is clickable. The `Checkbox` widget has a new `indent` attribute (defaults to `True`) to line up nicely with controls that have descriptions. To make the checkbox align to the left, set `indent` to `False`. ([#1346](https://github.com/jupyter-widgets/ipywidgets/pull/1346))
+ * A new Password widget, which behaves exactly like the Text widget, but hides the typed text: `Password()`. ([#1310](https://github.com/jupyter-widgets/ipywidgets/pull/1310))
+ * A new SelectionRangeSlider widget for selecting ranges from ordered lists of objects. For example, this enables having a slider to select a date range. ([#1356](https://github.com/jupyter-widgets/ipywidgets/pull/1356))
+ * The `Label` widget now has no width restriction. ([#1269](https://github.com/jupyter-widgets/ipywidgets/pull/1269))
+ * The description width is now configurable with the `.style.description_width` attribute ([#1376](https://github.com/jupyter-widgets/ipywidgets/pull/1376))
+ * ToggleButtons have a new `.style.button_width` attribute to set the CSS width of the buttons. Set this to `'initial'` to have buttons that individually size to the content width. ([#1257](https://github.com/jupyter-widgets/ipywidgets/pull/1257))
+ * The `readout_format` attribute of number sliders now validates its argument. ([#1550](https://github.com/jupyter-widgets/ipywidgets/pull/1550))
+ * The `IntRangeSlider` widget now has a `.readout_format` trait to control the formatting of the readout. ([#1446](https://github.com/jupyter-widgets/ipywidgets/pull/1446))
+ * The `Text`, `Textarea`, `IntText`, `BoundedIntText`, `FloatText`, and `BoundedFloatText` widgets all gained a `continuous_update` attribute (defaults to `True` for `Text` and `TextArea`, and `False` for the others). ([#1545](https://github.com/jupyter-widgets/ipywidgets/pull/1545))
+ * The `IntText`, `BoundedIntText`, `FloatText`, and `BoundedFloatText` widgets are now rendered as HTML number inputs, and have a `step` attribute that controls the resolution. ([#1545](https://github.com/jupyter-widgets/ipywidgets/pull/1545))
+ * The `Text.on_submit` callback is deprecated; instead, set `continuous_update` to `False` and observe the `value` attribute: `mywidget.observe(callback, 'value')`. The `Textarea.scroll_to_bottom` method was removed. ([#1545](https://github.com/jupyter-widgets/ipywidgets/pull/1545))
+ * The `msg_throttle` attribute on widgets is now gone, and the code has a hardcoded message throttle equivalent to `msg_throttle=1`. ([#1557](https://github.com/jupyter-widgets/ipywidgets/pull/1557))
+ * Using function annotations to specify interact controls for a function is now deprecated and will be removed in a future version of ipywidgets. ([#1292](https://github.com/jupyter-widgets/ipywidgets/pull/1292))
+ * There are now two simple ways to embed widgets in an HTML page: with a simple script tag that does not use require.js and does not support anything but the basic widgets, and a require module that does support custom widgets. See the migration guide for more details. ([#1615](https://github.com/jupyter-widgets/ipywidgets/pull/1615), [#1629](https://github.com/jupyter-widgets/ipywidgets/pull/1629), [#1630](https://github.com/jupyter-widgets/ipywidgets/pull/1630))
+ + If you are developing a custom widget or widget manager, here are some major changes that may affect you. The [migration guide](./migration_guides.html) also walks through how to upgrade a custom widget.
+ * On the Python/kernel side:
+ > The Python `@register` decorator for widget classes no longer takes a string argument, but registers a widget class using the `_model_*` and `_view_*` traits in the class. Using the decorator as `@register('name')` is deprecated and should be changed to just `@register`. [#1228](https://github.com/jupyter-widgets/ipywidgets/pull/1228), [#1276](https://github.com/jupyter-widgets/ipywidgets/pull/1276)
+ > Widgets will now need correct `_model_module` and `_view_module` Unicode traits defined.
+ > Selection widgets now sync the index of the selected item, rather than the label. ([#1262](https://github.com/jupyter-widgets/ipywidgets/pull/1262))
+ > The Python `ipywidget.domwidget.LabeledWidget` is now `ipywidget.widget_description.DescriptionWidget`, and there is a new `ipywidget.widget_description.DescriptionStyle` that lets the user set the CSS width of the description.
+ > Custom serializers can now return a structure that contains binary objects (`memoryview`, `bytearray`, or Python 3 `bytes` object). In this case, the sync message will be a binary message, which is much more efficient for binary data than base64-encoding. The Image widget now uses this binary synchronization. ([#1194](https://github.com/jupyter-widgets/ipywidgets/pull/1194), [#1595](https://github.com/jupyter-widgets/ipywidgets/pull/1595), [#1643](https://github.com/jupyter-widgets/ipywidgets/pull/1643))
+ * On the Javascript side:
+ > The `jupyter-js-widgets` Javascript package has been split into `@jupyter-widgets/base` package (containing base widget classes, the DOM widget, and the associated layout and style classes), and the `@jupyter-widgets/controls` package (containing the rest of the Jupyter widgets controls). Authors of custom widgets will need to update to depend on `@jupyter-widgets/base` instead of `jupyter-js-widgets` (if you use a class from the controls package, you will also need to depend on `@jupyter-widgets/controls`). See the [cookie cutter](https://github.com/jupyter-widgets/widget-cookiecutter) to generate a simple example custom widget using the new packages.
+ > Custom serializers in Javascript are now synchronous, and should return a snapshot of the widget state. The default serializer makes a copy of JSONable objects. ([#1270](https://github.com/jupyter-widgets/ipywidgets/pull/1270))
+ > Custom serializers can now return a structure that contains binary objects (`ArrayBuffer`, `DataView`, or a typed array such as `Int8Array`, `Float64Array`, etc.). In this case, the sync message will be a binary message, which is much more efficient for binary data than base64-encoding. The Image widget now uses this binary synchronization. ([#1194](https://github.com/jupyter-widgets/ipywidgets/pull/1194), [#1643](https://github.com/jupyter-widgets/ipywidgets/pull/1643))
+ > A custom serializer is given the widget instance as its second argument, and a custom deserializer is given the widget manager as its second argument.
+ > The Javascript model `.id` attribute has been renamed to `.model_id` to avoid conflicting with the Backbone `.id` attribute. ([#1410](https://github.com/jupyter-widgets/ipywidgets/pull/1410))
+ * Regarding widget managers and the syncing message protocol:
+ > The widget protocol was significantly overhauled. The new widget messaging protocol (version 2) is specified in the [version 2 protocol documentation](https://github.com/jupyter-widgets/ipywidgets/blob/master/ju….
+ > Widgets are now displayed with a `display_data` message instead of with a custom comm message. See the [ipywidgets](https://github.com/jupyter-widgets/ipywidgets/blob/20cd0f050090… implementation for an example. ([#1274](https://github.com/jupyter-widgets/ipywidgets/pull/1274))
+ > Custom widget managers are now responsible completely for loading widget model and view classes. Widget managers should provide an output model and view class appropriate for their environment so that the `Output` widget works. ([#1313](https://github.com/jupyter-widgets/ipywidgets/pull/1313))
+ > The widget manager `clear_state` method no longer has a `commlessOnly` argument. All models in the widget manager will be closed and cleared when `clear_state` is called. ([#1354](https://github.com/jupyter-widgets/ipywidgets/pull/1354))
+
+-------------------------------------------------------------------
python-jupyter_ipywidgets.changes: same change
Old:
----
ipywidgets-6.0.0.tar.gz
New:
----
ipywidgets-7.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_ipywidgets-doc.spec ++++++
--- /var/tmp/diff_new_pack.CNFwC0/_old 2017-10-03 23:16:32.124748362 +0200
+++ /var/tmp/diff_new_pack.CNFwC0/_new 2017-10-03 23:16:32.132747236 +0200
@@ -27,7 +27,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_ipywidgets-doc
-Version: 6.0.0
+Version: 7.0.1
Release: 0
Summary: Documentation for python-jupyter_ipywidgets
License: BSD-3-Clause
++++++ python-jupyter_ipywidgets.spec ++++++
--- /var/tmp/diff_new_pack.CNFwC0/_old 2017-10-03 23:16:32.260729224 +0200
+++ /var/tmp/diff_new_pack.CNFwC0/_new 2017-10-03 23:16:32.276726973 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_ipywidgets
-Version: 6.0.0
+Version: 7.0.1
Release: 0
Summary: IPython HTML widgets for Jupyter
License: BSD-3-Clause
@@ -29,17 +29,11 @@
BuildRequires: python-rpm-macros
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module jupyter_ipykernel}
-BuildRequires: %{python_module jupyter_ipython >= 4}
-BuildRequires: %{python_module jupyter_notebook}
-BuildRequires: %{python_module jupyter_widgetsnbextension}
-BuildRequires: %{python_module traitlets}
-Requires: python-jupyter_ipykernel
+Requires: python-jupyter_ipykernel >= 4.5.1
Requires: python-jupyter_ipython >= 4
-Requires: python-jupyter_notebook
-Requires: python-jupyter_widgetsnbextension
-Requires: python-traitlets
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Requires: python-jupyter_nbformat >= 4.2.0
+Requires: python-jupyter_widgetsnbextension >= 3.0.0
+Requires: python-traitlets >= 4.3.1
BuildArch: noarch
%python_subpackages
++++++ ipywidgets-6.0.0.tar.gz -> ipywidgets-7.0.1.tar.gz ++++++
++++ 30887 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-jupyter_client for openSUSE:Factory checked in at 2017-10-03 23:16:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 Oct 3 23:16:27 2017 rev:5 rq:527405 version:5.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter_client/python-jupyter_client-doc.changes 2017-05-17 17:11:48.076507687 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_client.new/python-jupyter_client-doc.changes 2017-10-03 23:16:29.277149119 +0200
@@ -1,0 +2,13 @@
+Tue Sep 19 19:45:32 UTC 2017 - toddrme2178(a)gmail.com
+
+- Update to version 5.1
+ * Define Jupyter protocol version 5.2,
+ resolving ambiguity of ``cursor_pos`` field in the presence
+ of unicode surrogate pairs.
+ * Add :meth:`Session.clone` for making a copy of a Session object
+ without sharing the digest history.
+ Reusing a single Session object to connect multiple sockets
+ to the same IOPub peer can cause digest collisions.
+ * Avoid global references preventing garbage collection of background threads.
+
+-------------------------------------------------------------------
python-jupyter_client.changes: same change
Old:
----
jupyter_client-5.0.1.tar.gz
New:
----
jupyter_client-5.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_client-doc.spec ++++++
--- /var/tmp/diff_new_pack.pbq1lj/_old 2017-10-03 23:16:30.384993206 +0200
+++ /var/tmp/diff_new_pack.pbq1lj/_new 2017-10-03 23:16:30.388992644 +0200
@@ -25,7 +25,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_client-doc
-Version: 5.0.1
+Version: 5.1.0
Release: 0
Summary: Documentation for python-jupyter_client
License: BSD-3-Clause
++++++ python-jupyter_client.spec ++++++
--- /var/tmp/diff_new_pack.pbq1lj/_old 2017-10-03 23:16:30.444984763 +0200
+++ /var/tmp/diff_new_pack.pbq1lj/_new 2017-10-03 23:16:30.448984201 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jupyter_client
-Version: 5.0.1
+Version: 5.1.0
Release: 0
Summary: Jupyter protocol implementation and client libraries
License: BSD-3-Clause
@@ -29,11 +29,7 @@
BuildRequires: python-rpm-macros
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module python-dateutil}
-BuildRequires: %{python_module jupyter_core}
-BuildRequires: %{python_module pyzmq >= 13}
-BuildRequires: %{python_module traitlets}
-Requires: python-python-dateutil
+Requires: python-python-dateutil >= 2.1
Requires: python-jupyter_core
Requires: python-pyzmq >= 13
Requires: python-traitlets
@@ -61,7 +57,7 @@
%files %{python_files}
%defattr(-,root,root,-)
%doc CONTRIBUTING.md COPYING.md README.md
-%python3_only %{_bindir}/jupyter-kernelspec
+# %%python3_only %%{_bindir}/jupyter-kernelspec
%{python_sitelib}/*
%changelog
++++++ jupyter_client-5.0.1.tar.gz -> jupyter_client-5.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/MANIFEST.in new/jupyter_client-5.1.0/MANIFEST.in
--- old/jupyter_client-5.0.1/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_client-5.1.0/MANIFEST.in 2017-01-06 14:35:54.000000000 +0100
@@ -0,0 +1,22 @@
+include COPYING.md
+include CONTRIBUTING.md
+include README.md
+
+# Documentation
+graft docs
+exclude docs/\#*
+
+# Examples
+graft examples
+
+# docs subdirs we want to skip
+prune docs/build
+prune docs/gh-pages
+prune docs/dist
+
+# Patterns to exclude from any directory
+global-exclude *~
+global-exclude *.pyc
+global-exclude *.pyo
+global-exclude .git
+global-exclude .ipynb_checkpoints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/PKG-INFO new/jupyter_client-5.1.0/PKG-INFO
--- old/jupyter_client-5.0.1/PKG-INFO 2017-04-04 14:09:57.000000000 +0200
+++ new/jupyter_client-5.1.0/PKG-INFO 2017-06-22 14:13:50.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: jupyter_client
-Version: 5.0.1
+Version: 5.1.0
Summary: Jupyter protocol implementation and client libraries
Home-page: http://jupyter.org
Author: Jupyter Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/docs/changelog.rst new/jupyter_client-5.1.0/docs/changelog.rst
--- old/jupyter_client-5.0.1/docs/changelog.rst 2017-04-04 09:48:29.000000000 +0200
+++ new/jupyter_client-5.1.0/docs/changelog.rst 2017-06-22 13:46:04.000000000 +0200
@@ -4,6 +4,26 @@
Changes in Jupyter Client
=========================
+5.1
+===
+
+`5.1 on GitHub <https://github.com/jupyter/jupyter_client/milestones/5.1>`__
+
+- Define Jupyter protocol version 5.2,
+ resolving ambiguity of ``cursor_pos`` field in the presence
+ of unicode surrogate pairs.
+
+ .. seealso::
+
+ :ref:`cursor_pos_unicode_note`
+
+- Add :meth:`Session.clone` for making a copy of a Session object
+ without sharing the digest history.
+ Reusing a single Session object to connect multiple sockets
+ to the same IOPub peer can cause digest collisions.
+- Avoid global references preventing garbage collection of background threads.
+
+
5.0
===
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/docs/environment.yml new/jupyter_client-5.1.0/docs/environment.yml
--- old/jupyter_client-5.0.1/docs/environment.yml 2017-04-04 09:48:29.000000000 +0200
+++ new/jupyter_client-5.1.0/docs/environment.yml 2017-04-06 09:55:35.000000000 +0200
@@ -8,4 +8,3 @@
- jupyter_core
- sphinx>=1.3.6
- sphinx_rtd_theme
-- ipykernel
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/docs/messaging.rst new/jupyter_client-5.1.0/docs/messaging.rst
--- old/jupyter_client-5.0.1/docs/messaging.rst 2017-04-04 09:48:29.000000000 +0200
+++ new/jupyter_client-5.1.0/docs/messaging.rst 2017-06-22 09:57:44.000000000 +0200
@@ -21,7 +21,7 @@
The Jupyter message specification is versioned independently of the packages
that use it.
-The current version of the specification is 5.1.
+The current version of the specification is 5.2.
.. note::
*New in* and *Changed in* messages in this document refer to versions of the
@@ -547,6 +547,14 @@
``name`` key replaced with ``code`` and ``cursor_pos``,
moving the lexing responsibility to the kernel.
+.. versionchanged:: 5.2
+
+ Due to a widespread bug in many frontends, ``cursor_pos``
+ in versions prior to 5.2 is ambiguous in the presence of "astral-plane" characters.
+ In 5.2, cursor_pos **must be** the actual encoding-independent offset in unicode codepoints.
+ See :ref:`cursor_pos_unicode_note` for more.
+
+
The reply is a mime-bundle, like a `display_data`_ message,
which should be a formatted representation of information about the context.
In the notebook, this is used to show tooltips over function calls, etc.
@@ -595,6 +603,13 @@
``line``, ``block``, and ``text`` keys are removed in favor of a single ``code`` for context.
Lexing is up to the kernel.
+.. versionchanged:: 5.2
+
+ Due to a widespread bug in many frontends, ``cursor_pos``
+ in versions prior to 5.2 is ambiguous in the presence of "astral-plane" characters.
+ In 5.2, cursor_pos **must be** the actual encoding-independent offset in unicode codepoints.
+ See :ref:`cursor_pos_unicode_note` for more.
+
Message type: ``complete_reply``::
@@ -1370,12 +1385,48 @@
just like an execute request.
-To Do
+Notes
=====
-Missing things include:
+.. _cursor_pos_unicode_note:
+
+``cursor_pos`` and unicode offsets
+----------------------------------
+
+Many frontends, especially those implemented in javascript,
+reported cursor_pos as the interpreter's string index,
+which is not the same as the unicode character offset if the interpreter uses UTF-16 (e.g. javascript or Python 2 on macOS),
+which stores "astral-plane" characters such as ``𝐚 (U+1D41A)`` as surrogate pairs,
+taking up two indices instead of one, causing a unicode offset
+drift of one per astral-plane character.
+Not all frontends have this behavior, however,
+and after JSON serialization information about which encoding was used
+when calculating the offset is lost,
+so assuming ``cursor_pos`` is calculated in UTF-16 could result in a similarly incorrect offset
+for frontends that did the right thing.
+
+For this reason, in protocol versions prior to 5.2, ``cursor_pos``
+is officially ambiguous in the presence of astral plane unicode characters.
+Frontends claiming to implement protocol 5.2 **MUST** identify cursor_pos as the encoding-independent unicode character offset.
+Kernels may choose to expect the UTF-16 offset from requests implementing protocol 5.1 and earlier, in order to behave correctly with the most popular frontends.
+But they should know that doing so *introduces* the inverse bug for the frontends that do not have this bug.
+
+Known affected frontends (as of 2017-06):
+
+- Jupyter Notebook < 5.1
+- JupyterLab < 0.24
+- nteract
+- CoCalc
+- Jupyter Console and QtConsole with Python 2 on macOS and Windows
+
+Known *not* affected frontends:
+
+- QtConsole, Jupyter Console with Python 3 or Python 2 on Linux
+
+.. see-also::
+
+ `Discussion on GitHub <https://github.com/jupyter/jupyter_client/issues/259>`_
-* Important: finish thinking through the payload concept and API.
.. _ZeroMQ: http://zeromq.org
.. _nteract: https://nteract.io
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/_version.py new/jupyter_client-5.1.0/jupyter_client/_version.py
--- old/jupyter_client-5.0.1/jupyter_client/_version.py 2017-04-04 09:48:52.000000000 +0200
+++ new/jupyter_client-5.1.0/jupyter_client/_version.py 2017-06-22 14:08:34.000000000 +0200
@@ -1,5 +1,5 @@
-version_info = (5, 0, 1)
+version_info = (5, 1, 0)
__version__ = '.'.join(map(str, version_info))
-protocol_version_info = (5, 1)
+protocol_version_info = (5, 2)
protocol_version = "%i.%i" % protocol_version_info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/blocking/client.py new/jupyter_client-5.1.0/jupyter_client/blocking/client.py
--- old/jupyter_client-5.0.1/jupyter_client/blocking/client.py 2017-02-20 16:32:46.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/blocking/client.py 2017-06-22 14:08:22.000000000 +0200
@@ -46,6 +46,11 @@
return self._recv_reply(msg_id, timeout=timeout)
+ if not meth.__doc__:
+ # python -OO removes docstrings,
+ # so don't bother building the wrapped docstring
+ return wrapped
+
basedoc, _ = meth.__doc__.split('Returns\n', 1)
parts = [basedoc.strip()]
if 'Parameters' not in basedoc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/channels.py new/jupyter_client-5.1.0/jupyter_client/channels.py
--- old/jupyter_client-5.0.1/jupyter_client/channels.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/channels.py 2017-06-22 09:57:44.000000000 +0200
@@ -70,7 +70,6 @@
raise InvalidPortNumber(message)
address = "tcp://%s:%i" % address
self.address = address
- atexit.register(self._notice_exit)
# running is False until `.start()` is called
self._running = False
@@ -78,8 +77,10 @@
self._pause = False
self.poller = zmq.Poller()
- def _notice_exit(self):
- self._exiting = True
+ @staticmethod
+ @atexit.register
+ def _notice_exit():
+ HBChannel._exiting = True
def _create_socket(self):
if self.socket is not None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/connect.py new/jupyter_client-5.1.0/jupyter_client/connect.py
--- old/jupyter_client-5.0.1/jupyter_client/connect.py 2017-02-20 16:32:46.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/connect.py 2017-05-23 18:21:26.000000000 +0200
@@ -207,6 +207,7 @@
for p in path:
matches.extend(glob.glob(os.path.join(p, pat)))
+ matches = [ os.path.abspath(m) for m in matches ]
if not matches:
raise IOError("Could not find %r in %r" % (filename, path))
elif len(matches) == 1:
@@ -371,8 +372,9 @@
control_port=self.control_port,
)
if session:
- # add session
- info['session'] = self.session
+ # add *clone* of my session,
+ # so that state such as digest_history is not shared.
+ info['session'] = self.session.clone()
else:
# add session info
info.update(dict(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/consoleapp.py new/jupyter_client-5.1.0/jupyter_client/consoleapp.py
--- old/jupyter_client-5.0.1/jupyter_client/consoleapp.py 2017-02-20 16:32:46.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/consoleapp.py 2017-05-23 18:21:26.000000000 +0200
@@ -161,7 +161,7 @@
"""
if self.existing:
try:
- cf = find_connection_file(self.existing, [self.runtime_dir])
+ cf = find_connection_file(self.existing, ['.', self.runtime_dir])
except Exception:
self.log.critical("Could not find existing kernel connection file %s", self.existing)
self.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/manager.py new/jupyter_client-5.1.0/jupyter_client/manager.py
--- old/jupyter_client-5.0.1/jupyter_client/manager.py 2017-02-20 16:32:46.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/manager.py 2017-04-28 15:54:56.000000000 +0200
@@ -295,7 +295,7 @@
self._close_control_socket()
def shutdown_kernel(self, now=False, restart=False):
- """Attempts to the stop the kernel process cleanly.
+ """Attempts to stop the kernel process cleanly.
This attempts to shutdown the kernels cleanly by:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/session.py new/jupyter_client-5.1.0/jupyter_client/session.py
--- old/jupyter_client-5.0.1/jupyter_client/session.py 2017-02-20 16:32:46.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/session.py 2017-06-22 10:22:33.000000000 +0200
@@ -488,6 +488,24 @@
if not self.key:
get_logger().warning("Message signing is disabled. This is insecure and not recommended!")
+ def clone(self):
+ """Create a copy of this Session
+
+ Useful when connecting multiple times to a given kernel.
+ This prevents a shared digest_history warning about duplicate digests
+ due to multiple connections to IOPub in the same process.
+
+ .. versionadded:: 5.1
+ """
+ # make a copy
+ new_session = type(self)()
+ for name in self.traits():
+ setattr(new_session, name, getattr(self, name))
+ # fork digest_history
+ new_session.digest_history = set()
+ new_session.digest_history.update(self.digest_history)
+ return new_session
+
@property
def msg_id(self):
"""always return new uuid"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_adapter.py new/jupyter_client-5.1.0/jupyter_client/tests/test_adapter.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_adapter.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_adapter.py 2017-05-18 19:29:10.000000000 +0200
@@ -6,7 +6,6 @@
import copy
import json
from unittest import TestCase
-import nose.tools as nt
from jupyter_client.adapter import adapt, V4toV5, V5toV4, code_to_line
from jupyter_client.session import Session
@@ -18,12 +17,12 @@
msg['header'].pop('version')
original = copy.deepcopy(msg)
adapted = adapt(original)
- nt.assert_equal(adapted['header']['version'], V4toV5.version)
+ assert adapted['header']['version'] == V4toV5.version
def test_code_to_line_no_code():
line, pos = code_to_line("", 0)
- nt.assert_equal(line, "")
- nt.assert_equal(pos, 0)
+ assert line == ""
+ assert pos == 0
class AdapterTest(TestCase):
@@ -263,7 +262,7 @@
msg = self.msg(v5_type, {'key' : 'value'})
v5, v4 = self.adapt(msg)
self.assertEqual(v4['header']['msg_type'], v4_type)
- nt.assert_not_in('version', v4['header'])
+ assert 'version' not in v4['header']
self.assertEqual(v4['content'], v5['content'])
def test_execute_request(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_client.py new/jupyter_client-5.1.0/jupyter_client/tests/test_client.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_client.py 2017-02-10 14:29:06.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_client.py 2017-05-18 19:29:10.000000000 +0200
@@ -8,12 +8,12 @@
pjoin = os.path.join
from unittest import TestCase
-from nose import SkipTest
-
from jupyter_client.kernelspec import KernelSpecManager, NoSuchKernel, NATIVE_KERNEL_NAME
from ..manager import start_new_kernel
from .utils import test_env
+import pytest
+
from ipython_genutils.py3compat import string_types
from IPython.utils.capture import capture_output
@@ -27,7 +27,7 @@
try:
KernelSpecManager().get_kernel_spec(NATIVE_KERNEL_NAME)
except NoSuchKernel:
- raise SkipTest()
+ pytest.skip()
self.km, self.kc = start_new_kernel(kernel_name=NATIVE_KERNEL_NAME)
self.addCleanup(self.kc.stop_channels)
self.addCleanup(self.km.shutdown_kernel)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_connect.py new/jupyter_client-5.1.0/jupyter_client/tests/test_connect.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_connect.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_connect.py 2017-05-23 18:21:26.000000000 +0200
@@ -6,10 +6,9 @@
import json
import os
-import nose.tools as nt
-
from traitlets.config import Config
from jupyter_core.application import JupyterApp
+from jupyter_core.paths import jupyter_runtime_dir
from ipython_genutils.tempdir import TemporaryDirectory, TemporaryWorkingDirectory
from ipython_genutils.py3compat import str_to_bytes
from jupyter_client import connect, KernelClient
@@ -36,11 +35,11 @@
with TemporaryDirectory() as d:
cf = os.path.join(d, 'kernel.json')
connect.write_connection_file(cf, **sample_info)
- nt.assert_true(os.path.exists(cf))
+ assert os.path.exists(cf)
with open(cf, 'r') as f:
info = json.load(f)
info['key'] = str_to_bytes(info['key'])
- nt.assert_equal(info, sample_info)
+ assert info == sample_info
def test_load_connection_file_session():
@@ -56,8 +55,8 @@
app.connection_file = cf
app.load_connection_file()
- nt.assert_equal(session.key, sample_info['key'])
- nt.assert_equal(session.signature_scheme, sample_info['signature_scheme'])
+ assert session.key == sample_info['key']
+ assert session.signature_scheme == sample_info['signature_scheme']
def test_load_connection_file_session_with_kn():
@@ -73,8 +72,8 @@
app.connection_file = cf
app.load_connection_file()
- nt.assert_equal(session.key, sample_info_kn['key'])
- nt.assert_equal(session.signature_scheme, sample_info_kn['signature_scheme'])
+ assert session.key == sample_info_kn['key']
+ assert session.signature_scheme == sample_info_kn['signature_scheme']
def test_app_load_connection_file():
@@ -89,7 +88,7 @@
if attr in ('key', 'signature_scheme'):
continue
value = getattr(app, attr)
- nt.assert_equal(value, expected, "app.%s = %s != %s" % (attr, value, expected))
+ assert value == expected, "app.%s = %s != %s" % (attr, value, expected)
def test_load_connection_info():
@@ -112,11 +111,9 @@
def test_find_connection_file():
- cfg = Config()
with TemporaryDirectory() as d:
- cfg.ProfileDir.location = d
cf = 'kernel.json'
- app = DummyConsoleApp(config=cfg, connection_file=cf)
+ app = DummyConsoleApp(runtime_dir=d, connection_file=cf)
app.initialize()
security_dir = app.runtime_dir
@@ -131,7 +128,47 @@
'*ernel*',
'k*',
):
- nt.assert_equal(connect.find_connection_file(query, path=security_dir), profile_cf)
+ assert connect.find_connection_file(query, path=security_dir) == profile_cf
+
- JupyterApp._instance = None
+def test_find_connection_file_local():
+ with TemporaryWorkingDirectory() as d:
+ cf = 'test.json'
+ abs_cf = os.path.abspath(cf)
+ with open(cf, 'w') as f:
+ f.write('{}')
+
+ for query in (
+ 'test.json',
+ 'test',
+ abs_cf,
+ os.path.join('.', 'test.json'),
+ ):
+ assert connect.find_connection_file(query, path=['.', jupyter_runtime_dir()]) == abs_cf
+
+
+def test_find_connection_file_relative():
+ with TemporaryWorkingDirectory() as d:
+ cf = 'test.json'
+ os.mkdir('subdir')
+ cf = os.path.join('subdir', 'test.json')
+ abs_cf = os.path.abspath(cf)
+ with open(cf, 'w') as f:
+ f.write('{}')
+
+ for query in (
+ os.path.join('.', 'subdir', 'test.json'),
+ os.path.join('subdir', 'test.json'),
+ abs_cf,
+ ):
+ assert connect.find_connection_file(query, path=['.', jupyter_runtime_dir()]) == abs_cf
+
+
+def test_find_connection_file_abspath():
+ with TemporaryDirectory() as d:
+ cf = 'absolute.json'
+ abs_cf = os.path.abspath(cf)
+ with open(cf, 'w') as f:
+ f.write('{}')
+ assert connect.find_connection_file(abs_cf, path=jupyter_runtime_dir()) == abs_cf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_jsonutil.py new/jupyter_client-5.1.0/jupyter_client/tests/test_jsonutil.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_jsonutil.py 2017-02-10 14:29:06.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_jsonutil.py 2017-05-18 19:29:10.000000000 +0200
@@ -14,8 +14,6 @@
# py2
import mock
-import nose.tools as nt
-
from dateutil.tz import tzlocal, tzoffset
from jupyter_client import jsonutil
from jupyter_client.session import utcnow
@@ -33,29 +31,29 @@
extracted = jsonutil.extract_dates(timestamps)
ref = extracted[0]
for dt in extracted:
- nt.assert_true(isinstance(dt, datetime.datetime))
- nt.assert_not_equal(dt.tzinfo, None)
+ assert isinstance(dt, datetime.datetime)
+ assert dt.tzinfo != None
- nt.assert_equal(extracted[0].tzinfo.utcoffset(ref), tzlocal().utcoffset(ref))
- nt.assert_equal(extracted[1].tzinfo.utcoffset(ref), timedelta(0))
- nt.assert_equal(extracted[2].tzinfo.utcoffset(ref), timedelta(hours=-8))
- nt.assert_equal(extracted[3].tzinfo.utcoffset(ref), timedelta(hours=8))
- nt.assert_equal(extracted[4].tzinfo.utcoffset(ref), timedelta(hours=-8))
- nt.assert_equal(extracted[5].tzinfo.utcoffset(ref), timedelta(hours=8))
+ assert extracted[0].tzinfo.utcoffset(ref) == tzlocal().utcoffset(ref)
+ assert extracted[1].tzinfo.utcoffset(ref) == timedelta(0)
+ assert extracted[2].tzinfo.utcoffset(ref) == timedelta(hours=-8)
+ assert extracted[3].tzinfo.utcoffset(ref) == timedelta(hours=8)
+ assert extracted[4].tzinfo.utcoffset(ref) == timedelta(hours=-8)
+ assert extracted[5].tzinfo.utcoffset(ref) == timedelta(hours=8)
def test_parse_ms_precision():
base = '2013-07-03T16:34:52'
digits = '1234567890'
parsed = jsonutil.parse_date(base)
- nt.assert_is_instance(parsed, datetime.datetime)
+ assert isinstance(parsed, datetime.datetime)
for i in range(len(digits)):
ts = base + '.' + digits[:i]
parsed = jsonutil.parse_date(ts)
if i >= 1 and i <= 6:
- nt.assert_is_instance(parsed, datetime.datetime)
+ assert isinstance(parsed, datetime.datetime)
else:
- nt.assert_is_instance(parsed, str)
+ assert isinstance(parsed, str)
@@ -66,10 +64,10 @@
data = dict(naive=naive, utc=utcnow(), withtz=naive.replace(tzinfo=other))
with mock.patch.object(jsonutil, 'tzlocal', lambda : local):
jsondata = json.dumps(data, default=jsonutil.date_default)
- nt.assert_in("Z", jsondata)
- nt.assert_equal(jsondata.count("Z"), 1)
+ assert "Z" in jsondata
+ assert jsondata.count("Z") == 1
extracted = jsonutil.extract_dates(json.loads(jsondata))
for dt in extracted.values():
- nt.assert_is_instance(dt, datetime.datetime)
- nt.assert_not_equal(dt.tzinfo, None)
+ assert isinstance(dt, datetime.datetime)
+ assert dt.tzinfo != None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_kernelmanager.py new/jupyter_client-5.1.0/jupyter_client/tests/test_kernelmanager.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_kernelmanager.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_kernelmanager.py 2017-05-18 19:29:10.000000000 +0200
@@ -13,13 +13,11 @@
import time
from unittest import TestCase
-from ipython_genutils.testing import decorators as dec
-
from traitlets.config.loader import Config
from jupyter_core import paths
from jupyter_client import KernelManager
from ..manager import start_new_kernel
-from .utils import test_env
+from .utils import test_env, skip_win32
TIMEOUT = 30
@@ -67,7 +65,7 @@
km = self._get_tcp_km()
self._run_lifecycle(km)
- @dec.skip_win32
+ @skip_win32
def test_ipc_lifecycle(self):
km = self._get_ipc_km()
self._run_lifecycle(km)
@@ -82,8 +80,8 @@
'key', 'signature_scheme',
])
self.assertEqual(keys, expected)
-
- @dec.skip_win32
+
+ @skip_win32
def test_signal_kernel_subprocesses(self):
self._install_test_kernel()
km, kc = start_new_kernel(kernel_name='signaltest')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_kernelspec.py new/jupyter_client-5.1.0/jupyter_client/tests/test_kernelspec.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_kernelspec.py 2017-02-10 14:29:06.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_kernelspec.py 2017-05-18 19:29:10.000000000 +0200
@@ -13,12 +13,13 @@
import sys
import unittest
+import pytest
+
if str is bytes: # py2
StringIO = io.BytesIO
else:
StringIO = io.StringIO
-from ipython_genutils.testing.decorators import onlyif
from ipython_genutils.tempdir import TemporaryDirectory
from jupyter_client import kernelspec
from jupyter_core import paths
@@ -123,7 +124,9 @@
self.ksm.log.removeHandler(handler)
self.assertNotIn("may not be found", captured)
- @onlyif(os.name != 'nt' and not os.access('/usr/local/share', os.W_OK), "needs Unix system without root privileges")
+ @pytest.mark.skipif(
+ not (os.name != 'nt' and not os.access('/usr/local/share', os.W_OK)),
+ reason="needs Unix system without root privileges")
def test_cant_install_kernel_spec(self):
with self.assertRaises(OSError):
self.ksm.install_kernel_spec(self.installable_kernel,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_multikernelmanager.py new/jupyter_client-5.1.0/jupyter_client/tests/test_multikernelmanager.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_multikernelmanager.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_multikernelmanager.py 2017-05-18 19:29:10.000000000 +0200
@@ -4,12 +4,11 @@
import time
from unittest import TestCase
-from ipython_genutils.testing import decorators as dec
-
from traitlets.config.loader import Config
from ..localinterfaces import localhost
from jupyter_client import KernelManager
from jupyter_client.multikernelmanager import MultiKernelManager
+from .utils import skip_win32
class TestKernelManager(TestCase):
@@ -75,12 +74,12 @@
km = self._get_tcp_km()
self._run_cinfo(km, 'tcp', localhost())
- @dec.skip_win32
+ @skip_win32
def test_ipc_lifecycle(self):
km = self._get_ipc_km()
self._run_lifecycle(km)
- @dec.skip_win32
+ @skip_win32
def test_ipc_cinfo(self):
km = self._get_ipc_km()
self._run_cinfo(km, 'ipc', 'test')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_public_api.py new/jupyter_client-5.1.0/jupyter_client/tests/test_public_api.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_public_api.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_public_api.py 2017-05-18 19:29:10.000000000 +0200
@@ -4,8 +4,6 @@
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
-import nose.tools as nt
-
from jupyter_client import launcher, connect
import jupyter_client
@@ -13,17 +11,17 @@
def test_kms():
for base in ("", "Multi"):
KM = base + "KernelManager"
- nt.assert_in(KM, dir(jupyter_client))
+ assert KM in dir(jupyter_client)
def test_kcs():
for base in ("", "Blocking"):
KM = base + "KernelClient"
- nt.assert_in(KM, dir(jupyter_client))
+ assert KM in dir(jupyter_client)
def test_launcher():
for name in launcher.__all__:
- nt.assert_in(name, dir(jupyter_client))
+ assert name in dir(jupyter_client)
def test_connect():
for name in connect.__all__:
- nt.assert_in(name, dir(jupyter_client))
+ assert name in dir(jupyter_client)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/test_session.py new/jupyter_client-5.1.0/jupyter_client/tests/test_session.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/test_session.py 2017-02-10 14:29:06.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/test_session.py 2017-05-18 19:29:10.000000000 +0200
@@ -8,6 +8,8 @@
import uuid
from datetime import datetime
+import pytest
+
import zmq
from zmq.tests import BaseZMQTestCase
@@ -16,7 +18,6 @@
from jupyter_client import session as ss
from jupyter_client import jsonutil
-from ipython_genutils.testing.decorators import skipif, module_not_available
from ipython_genutils.py3compat import string_types
def _bad_packer(obj):
@@ -286,9 +287,8 @@
session = ss.Session(packer='pickle')
self._datetime_test(session)
- @skipif(module_not_available('msgpack'))
def test_datetimes_msgpack(self):
- import msgpack
+ msgpack = pytest.importorskip('msgpack')
session = ss.Session(
pack=msgpack.packb,
@@ -320,3 +320,15 @@
A.close()
B.close()
ctx.term()
+
+ def test_clone(self):
+ s = self.session
+ s._add_digest('initial')
+ s2 = s.clone()
+ assert s2.session == s.session
+ assert s2.digest_history == s.digest_history
+ assert s2.digest_history is not s.digest_history
+ digest = 'abcdef'
+ s._add_digest(digest)
+ assert digest in s.digest_history
+ assert digest not in s2.digest_history
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/tests/utils.py new/jupyter_client-5.1.0/jupyter_client/tests/utils.py
--- old/jupyter_client-5.0.1/jupyter_client/tests/utils.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/tests/utils.py 2017-05-18 19:29:10.000000000 +0200
@@ -3,13 +3,20 @@
"""
import os
pjoin = os.path.join
+import sys
try:
from unittest.mock import patch
except ImportError:
from mock import patch
+import pytest
+
from ipython_genutils.tempdir import TemporaryDirectory
+
+skip_win32 = pytest.mark.skipif(sys.platform.startswith('win'), reason="Windows")
+
+
class test_env(object):
"""Set Jupyter path variables to a temporary directory
@@ -46,11 +53,11 @@
validate_message(reply, 'execute_reply', msg_id)
busy = kc.get_iopub_msg(timeout=TIMEOUT)
validate_message(busy, 'status', msg_id)
- nt.assert_equal(busy['content']['execution_state'], 'busy')
+ assert busy['content']['execution_state'] == 'busy'
if not kwargs.get('silent'):
execute_input = kc.get_iopub_msg(timeout=TIMEOUT)
validate_message(execute_input, 'execute_input', msg_id)
- nt.assert_equal(execute_input['content']['code'], code)
+ assert execute_input['content']['code'] == code
return msg_id, reply['content']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client/threaded.py new/jupyter_client-5.1.0/jupyter_client/threaded.py
--- old/jupyter_client-5.0.1/jupyter_client/threaded.py 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client/threaded.py 2017-06-22 09:57:44.000000000 +0200
@@ -141,14 +141,17 @@
class IOLoopThread(Thread):
"""Run a pyzmq ioloop in a thread to send and receive messages
"""
+ _exiting = False
+
def __init__(self, loop):
super(IOLoopThread, self).__init__()
self.daemon = True
- atexit.register(self._notice_exit)
self.ioloop = loop or ioloop.IOLoop()
- def _notice_exit(self):
- self._exiting = True
+ @staticmethod
+ @atexit.register
+ def _notice_exit():
+ IOLoopThread._exiting = True
def run(self):
"""Run my loop, ignoring EINTR events in the poller"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client.egg-info/PKG-INFO new/jupyter_client-5.1.0/jupyter_client.egg-info/PKG-INFO
--- old/jupyter_client-5.0.1/jupyter_client.egg-info/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client.egg-info/PKG-INFO 2017-06-22 14:13:49.000000000 +0200
@@ -0,0 +1,21 @@
+Metadata-Version: 1.1
+Name: jupyter-client
+Version: 5.1.0
+Summary: Jupyter protocol implementation and client libraries
+Home-page: http://jupyter.org
+Author: Jupyter Development Team
+Author-email: jupyter(a)googlegroups.com
+License: BSD
+Description: UNKNOWN
+Keywords: Interactive,Interpreter,Shell,Web
+Platform: Linux
+Platform: Mac OS X
+Platform: Windows
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: System Administrators
+Classifier: Intended Audience :: Science/Research
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client.egg-info/SOURCES.txt new/jupyter_client-5.1.0/jupyter_client.egg-info/SOURCES.txt
--- old/jupyter_client-5.0.1/jupyter_client.egg-info/SOURCES.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client.egg-info/SOURCES.txt 2017-06-22 14:13:49.000000000 +0200
@@ -0,0 +1,68 @@
+CONTRIBUTING.md
+COPYING.md
+MANIFEST.in
+README.md
+setup.cfg
+setup.py
+docs/Makefile
+docs/changelog.rst
+docs/conf.py
+docs/environment.yml
+docs/index.rst
+docs/kernels.rst
+docs/make.bat
+docs/messaging.rst
+docs/wrapperkernels.rst
+docs/api/client.rst
+docs/api/index.rst
+docs/api/kernelspec.rst
+docs/api/manager.rst
+docs/figs/frontend-kernel.png
+docs/figs/frontend-kernel.svg
+jupyter_client/__init__.py
+jupyter_client/_version.py
+jupyter_client/adapter.py
+jupyter_client/channels.py
+jupyter_client/channelsabc.py
+jupyter_client/client.py
+jupyter_client/clientabc.py
+jupyter_client/connect.py
+jupyter_client/consoleapp.py
+jupyter_client/jsonutil.py
+jupyter_client/kernelspec.py
+jupyter_client/kernelspecapp.py
+jupyter_client/launcher.py
+jupyter_client/localinterfaces.py
+jupyter_client/manager.py
+jupyter_client/managerabc.py
+jupyter_client/multikernelmanager.py
+jupyter_client/restarter.py
+jupyter_client/runapp.py
+jupyter_client/session.py
+jupyter_client/threaded.py
+jupyter_client/win_interrupt.py
+jupyter_client.egg-info/PKG-INFO
+jupyter_client.egg-info/SOURCES.txt
+jupyter_client.egg-info/dependency_links.txt
+jupyter_client.egg-info/entry_points.txt
+jupyter_client.egg-info/requires.txt
+jupyter_client.egg-info/top_level.txt
+jupyter_client/blocking/__init__.py
+jupyter_client/blocking/channels.py
+jupyter_client/blocking/client.py
+jupyter_client/ioloop/__init__.py
+jupyter_client/ioloop/manager.py
+jupyter_client/ioloop/restarter.py
+jupyter_client/tests/__init__.py
+jupyter_client/tests/signalkernel.py
+jupyter_client/tests/test_adapter.py
+jupyter_client/tests/test_client.py
+jupyter_client/tests/test_connect.py
+jupyter_client/tests/test_jsonutil.py
+jupyter_client/tests/test_kernelmanager.py
+jupyter_client/tests/test_kernelspec.py
+jupyter_client/tests/test_localinterfaces.py
+jupyter_client/tests/test_multikernelmanager.py
+jupyter_client/tests/test_public_api.py
+jupyter_client/tests/test_session.py
+jupyter_client/tests/utils.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client.egg-info/dependency_links.txt new/jupyter_client-5.1.0/jupyter_client.egg-info/dependency_links.txt
--- old/jupyter_client-5.0.1/jupyter_client.egg-info/dependency_links.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client.egg-info/dependency_links.txt 2017-06-22 14:13:49.000000000 +0200
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client.egg-info/entry_points.txt new/jupyter_client-5.1.0/jupyter_client.egg-info/entry_points.txt
--- old/jupyter_client-5.0.1/jupyter_client.egg-info/entry_points.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client.egg-info/entry_points.txt 2017-06-22 14:13:49.000000000 +0200
@@ -0,0 +1,4 @@
+[console_scripts]
+jupyter-kernelspec = jupyter_client.kernelspecapp:KernelSpecApp.launch_instance
+jupyter-run = jupyter_client.runapp:RunApp.launch_instance
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client.egg-info/requires.txt new/jupyter_client-5.1.0/jupyter_client.egg-info/requires.txt
--- old/jupyter_client-5.0.1/jupyter_client.egg-info/requires.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client.egg-info/requires.txt 2017-06-22 14:13:49.000000000 +0200
@@ -0,0 +1,9 @@
+traitlets
+jupyter_core
+pyzmq>=13
+python-dateutil>=2.1
+
+[test]
+ipykernel
+ipython
+pytest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/jupyter_client.egg-info/top_level.txt new/jupyter_client-5.1.0/jupyter_client.egg-info/top_level.txt
--- old/jupyter_client-5.0.1/jupyter_client.egg-info/top_level.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_client-5.1.0/jupyter_client.egg-info/top_level.txt 2017-06-22 14:13:49.000000000 +0200
@@ -0,0 +1 @@
+jupyter_client
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/scripts/jupyter-kernelspec new/jupyter_client-5.1.0/scripts/jupyter-kernelspec
--- old/jupyter_client-5.0.1/scripts/jupyter-kernelspec 2017-01-06 14:35:54.000000000 +0100
+++ new/jupyter_client-5.1.0/scripts/jupyter-kernelspec 1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-#!/usr/bin/env python
-from jupyter_client.kernelspecapp import KernelSpecApp
-
-def main():
- KernelSpecApp.launch_instance()
-
-if __name__ == '__main__':
- main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/setup.cfg new/jupyter_client-5.1.0/setup.cfg
--- old/jupyter_client-5.0.1/setup.cfg 2017-02-10 14:29:06.000000000 +0100
+++ new/jupyter_client-5.1.0/setup.cfg 2017-06-22 14:13:50.000000000 +0200
@@ -1,5 +1,10 @@
[bdist_wheel]
-universal=1
+universal = 1
[nosetests]
-warningfilters=default
+warningfilters = default
+
+[egg_info]
+tag_build =
+tag_date = 0
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jupyter_client-5.0.1/setup.py new/jupyter_client-5.1.0/setup.py
--- old/jupyter_client-5.0.1/setup.py 2017-02-20 16:32:46.000000000 +0100
+++ new/jupyter_client-5.1.0/setup.py 2017-05-18 19:29:10.000000000 +0200
@@ -82,7 +82,7 @@
]
extras_require = setuptools_args['extras_require'] = {
- 'test': ['ipykernel', 'ipython', 'nose_warnings_filters'],
+ 'test': ['ipykernel', 'ipython', 'pytest'],
}
if 'setuptools' in sys.modules:
1
0
Hello community,
here is the log from the commit of package linphoneqt for openSUSE:Factory checked in at 2017-10-03 23:16:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linphoneqt (Old)
and /work/SRC/openSUSE:Factory/.linphoneqt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linphoneqt"
Tue Oct 3 23:16:26 2017 rev:1 rq:522896 version:4.1.1
Changes:
--------
New Changes file:
--- /dev/null 2017-07-20 07:30:00.335470106 +0200
+++ /work/SRC/openSUSE:Factory/.linphoneqt.new/linphoneqt.changes 2017-10-03 23:16:26.689513290 +0200
@@ -0,0 +1,10 @@
+-------------------------------------------------------------------
+Sun Sep 10 14:23:13 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Add linphoneqt-fix-cmake-i18n.patch: Support new CMake versions
+ for translations (commit e70c077).
+
+-------------------------------------------------------------------
+Fri Jul 21 13:30:37 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Initial package.
New:
----
linphone.appdata.xml
linphoneqt-4.1.1.tar.gz
linphoneqt-fix-cmake-i18n.patch
linphoneqt.changes
linphoneqt.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ linphoneqt.spec ++++++
#
# spec file for package linphoneqt
#
# Copyright (c) 2017 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define _name linphone
Name: linphoneqt
Version: 4.1.1
Release: 0
Summary: Qt interface for Linphone
License: GPL-2.0+
Group: Productivity/Networking/Other
Url: https://linphone.org/
Source: https://linphone.org/releases/sources/%{name}/%{name}-%{version}.tar.gz
Source1: %{_name}.appdata.xml
# PATCH-FIX-UPSTREAM linphoneqt-fix-cmake-i18n.patch -- Support new CMake versions for translations (commit e70c077).
Patch0: linphoneqt-fix-cmake-i18n.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: libqt5-linguist-devel >= 5.9
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Concurrent) >= 5.9
BuildRequires: pkgconfig(Qt5Core) >= 5.9
BuildRequires: pkgconfig(Qt5DBus) >= 5.9
BuildRequires: pkgconfig(Qt5Gui) >= 5.9
BuildRequires: pkgconfig(Qt5Network) >= 5.9
BuildRequires: pkgconfig(Qt5Quick) >= 5.9
BuildRequires: pkgconfig(Qt5QuickControls2) >= 5.9
BuildRequires: pkgconfig(Qt5Svg) >= 5.9
BuildRequires: pkgconfig(Qt5Widgets) >= 5.9
BuildRequires: pkgconfig(linphone) >= 3.12.0
BuildRequires: pkgconfig(mediastreamer) >= 2.16.0
%description
Linphone is a Web phone with a Qt interface. It lets you make
two-party calls over IP networks such as the Internet. It uses the IETF
protocols SIP (Session Initiation Protocol) and RTP (Realtime TransporT
Protocol) to make calls, so it should be able to communicate with other
SIP-based Web phones. With several codecs available, it can be used
with high speed connections as well as 28k modems.
%package -n %{_name}
Summary: Web Phone
Requires: lib%{_name}-data
Requires: libqt5-qtgraphicaleffects
Requires: libqt5-qtquickcontrols2
Recommends: %{_name}-cli
Obsoletes: %{_name}-lang < %{version}
%description -n %{_name}
Linphone is a Web phone with a Qt interface. It lets you make
two-party calls over IP networks such as the Internet. It uses the IETF
protocols SIP (Session Initiation Protocol) and RTP (Realtime TransporT
Protocol) to make calls, so it should be able to communicate with other
SIP-based Web phones. With several codecs available, it can be used
with high speed connections as well as 28k modems.
%prep
%setup -q
%patch0 -p1
cp %{SOURCE1} linphone.appdata.xml
%build
%cmake \
-DENABLE_DBUS=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DENABLE_STRICT=OFF \
-DENABLE_STATIC=OFF
make %{?_smp_mflags} V=1
%install
%cmake_install
install -Dpm 0644 linphone.appdata.xml \
%{buildroot}%{_datadir}/appdata/linphone.appdata.xml
%post -n %{_name}
%desktop_database_post
%icon_theme_cache_post
%postun -n %{_name}
%desktop_database_postun
%icon_theme_cache_postun
%files -n %{_name}
%doc LICENSE README.md
%{_bindir}/linphone
%{_bindir}/linphone-tester
%{_datadir}/linphone/
%{_datadir}/applications/linphone.desktop
%{_datadir}/icons/hicolor/*/apps/linphone.*
%dir %{_datadir}/appdata/
%{_datadir}/appdata/linphone.appdata.xml
%changelog
++++++ linphone.appdata.xml ++++++
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2015 Belledonne Communications <contact(a)belledonne-communications.com> -->
<component type="desktop">
<id>linphone.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<name>Linphone</name>
<summary>SIP video soft-phone</summary>
<description>
<ul>
<li>Make audio and video calls in HD</li>
<li>Create audio conferences</li>
<li>Record and store calls</li>
<li>View real-time presence status</li>
<li>Manage your address book</li>
<li>Communicate securely</li>
<li>Free subscription</li>
</ul>
</description>
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/BelledonneCommunications/linphone-desktop…</image>
<caption>Main window</caption>
</screenshot>
</screenshots>
<url type="homepage">https://linphone.org</url>
<updatecontact>contact(a)belledonne-communications.com</updatecontact>
</component>
++++++ linphoneqt-fix-cmake-i18n.patch ++++++
--- a/assets/languages/CMakeLists.txt
+++ b/assets/languages/CMakeLists.txt
@@ -27,6 +27,13 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/
# Create `qm` files from `ts` files.
qt5_create_translation(QM_FILES ${TS_FILES} ${SOURCES} ${HEADERS} ${QML_SOURCES} OPTIONS -no-obsolete)
+# Workaround: Create empty files for some cmake versions. Otherwise, the qm rules can't be used.
+foreach (qm ${QM_FILES})
+ if (NOT EXISTS "${qm}")
+ file(GENERATE OUTPUT "${qm}" CONTENT "")
+ endif ()
+endforeach ()
+
# Update translations.
add_custom_target(update_translations
COMMAND ${CMAKE_COMMAND} "-DLANGUAGES=\"${LANGUAGES}\"" -P "${CMAKE_CURRENT_SOURCE_DIR}/clean_translations.cmake"
1
0
03 Oct '17
Hello community,
here is the log from the commit of package python-jupyter_sphinx_theme for openSUSE:Factory checked in at 2017-10-03 23:16:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter_sphinx_theme (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter_sphinx_theme.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter_sphinx_theme"
Tue Oct 3 23:16:22 2017 rev:1 rq:522387 version:0.0.6
Changes:
--------
New Changes file:
--- /dev/null 2017-07-20 07:30:00.335470106 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter_sphinx_theme.new/python-jupyter_sphinx_theme.changes 2017-10-03 23:16:24.981753633 +0200
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Fri Sep 8 15:02:54 UTC 2017 - toddrme2178(a)gmail.com
+
+- Initial version
New:
----
jupyter-sphinx-theme-0.0.6.tar.gz
python-jupyter_sphinx_theme.changes
python-jupyter_sphinx_theme.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter_sphinx_theme.spec ++++++
#
# spec file for package python-jupyter_sphinx_theme
#
# Copyright (c) 2017 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without test
Name: python-jupyter_sphinx_theme
Version: 0.0.6
Release: 0
License: MIT
Summary: Jupyter Sphinx Theme
Url: http://github.com/jupyter/sphinx-theme
Group: Development/Languages/Python
Source: https://files.pythonhosted.org/packages/source/j/jupyter-sphinx-theme/jupyt…
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3-2to3
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
%if %{with test}
BuildRequires: %{python_module Sphinx >= 1.3.6}
BuildRequires: %{python_module jupyter_nbsphinx}
BuildRequires: %{python_module recommonmark >= 0.4.0}
BuildRequires: %{python_module setuptools}
%endif
Requires: python-Sphinx >= 1.3.6
Requires: python-jupyter_nbsphinx
Requires: python-recommonmark >= 0.4.0
Requires: python-setuptools
Provides: python-jupyter-sphinx-theme = %{version}
BuildArch: noarch
%python_subpackages
%description
A Jupyter Sphinx theme for narrative documentation.
%prep
%setup -q -n jupyter-sphinx-theme-%{version}
%build
%python_build
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%files %{python_files}
%defattr(-,root,root,-)
%doc README.md
%{python_sitelib}/*
%changelog
1
0