Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-nbclient for openSUSE:Factory checked in at 2021-02-15 23:20:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-nbclient (Old) and /work/SRC/openSUSE:Factory/.python-nbclient.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nbclient" Mon Feb 15 23:20:23 2021 rev:7 rq:872454 version:0.5.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-nbclient/python-nbclient.changes 2020-11-29 12:30:47.574145678 +0100 +++ /work/SRC/openSUSE:Factory/.python-nbclient.new.28504/python-nbclient.changes 2021-02-15 23:22:04.139912765 +0100 @@ -1,0 +2,17 @@ +Sun Feb 14 18:08:05 UTC 2021 - Arun Persaud <a...@gmx.de> + +- specfile: + * update copyright year + +- update to version 0.5.2: + * Set minimum python version supported to 3.6.1 to avoid 3.6.0 + issues + * CellExecutionError is now unpickleable + * Added testing for python 3.9 + * Changed travis tests to github actions + * Documentation referencing an old model instead of NotebookClient + was fixed + * allow_error_names option was added for a more specific scope of + allow_errors to be applied + +------------------------------------------------------------------- Old: ---- nbclient-0.5.1.tar.gz New: ---- nbclient-0.5.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-nbclient.spec ++++++ --- /var/tmp/diff_new_pack.edPnHp/_old 2021-02-15 23:22:04.679913572 +0100 +++ /var/tmp/diff_new_pack.edPnHp/_new 2021-02-15 23:22:04.683913577 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-nbclient # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-nbclient -Version: 0.5.1 +Version: 0.5.2 Release: 0 Summary: A client library for executing notebooks License: BSD-3-Clause ++++++ nbclient-0.5.1.tar.gz -> nbclient-0.5.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/.bumpversion.cfg new/nbclient-0.5.2/.bumpversion.cfg --- old/nbclient-0.5.1/.bumpversion.cfg 2020-10-15 19:12:18.000000000 +0200 +++ new/nbclient-0.5.2/.bumpversion.cfg 2021-02-09 19:28:47.000000000 +0100 @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.5.1 +current_version = 0.5.2 commit = True tag = True tag_name = {new_version} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/PKG-INFO new/nbclient-0.5.2/PKG-INFO --- old/nbclient-0.5.1/PKG-INFO 2020-10-15 19:12:28.064823000 +0200 +++ new/nbclient-0.5.2/PKG-INFO 2021-02-09 19:29:39.656253600 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: nbclient -Version: 0.5.1 +Version: 0.5.2 Summary: A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor. Home-page: https://jupyter.org Author: Jupyter Development Team @@ -11,13 +11,13 @@ Project-URL: Source, https://github.com/jupyter/nbclient Project-URL: Tracker, https://github.com/jupyter/nbclient/issues Description: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter/nbclient/master?filepath=binder%2Frun_nbclient.ipynb) - [![Travis Build Status](https://travis-ci.org/jupyter/nbclient.svg?branch=master)](https://travis-ci.org/jupyter/nbclient) [![Build Status](https://github.com/jupyter/nbclient/workflows/CI/badge.svg)](https://github.com/jupyter/nbclient/actions) [![Documentation Status](https://readthedocs.org/projects/nbclient/badge/?version=latest)](https://nbclient.readthedocs.io/en/latest/?badge=latest) [![image](https://codecov.io/github/jupyter/nbclient/coverage.svg?branch=master)](https://codecov.io/github/jupyter/nbclient?branch=master) [![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/) [![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/) [![Python 3.8](https://img.shields.io/badge/python-3.8-blue.svg)](https://www.python.org/downloads/release/python-380/) + [![Python 3.9](https://img.shields.io/badge/python-3.9-blue.svg)](https://www.python.org/downloads/release/python-390/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) # nbclient @@ -26,7 +26,7 @@ different execution contexts. NBClient was spun out of [nbconvert](https://nbconvert.readthedocs.io/en/latest/)'s former `ExecutePreprocessor`. - **NBClient** lets you **execute** notebooks. + **NBClient** lets you **execute** notebooks. ## Interactive Demo @@ -64,7 +64,7 @@ `jupyter_client` is a client library for the jupyter protocol. Specifically, `jupyter_client` provides the Python API for starting, managing and communicating with Jupyter kernels. - + While, nbclient allows notebooks to be run in different execution contexts. Keywords: jupyter,pipeline,notebook,executor @@ -80,7 +80,8 @@ Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 -Requires-Python: >=3.6 +Classifier: Programming Language :: Python :: 3.9 +Requires-Python: >=3.6.1 Description-Content-Type: text/markdown Provides-Extra: test Provides-Extra: dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/README.md new/nbclient-0.5.2/README.md --- old/nbclient-0.5.1/README.md 2020-09-11 23:53:48.000000000 +0200 +++ new/nbclient-0.5.2/README.md 2021-02-09 19:28:47.000000000 +0100 @@ -1,11 +1,11 @@ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter/nbclient/master?filepath=binder%2Frun_nbclient.ipynb) -[![Travis Build Status](https://travis-ci.org/jupyter/nbclient.svg?branch=master)](https://travis-ci.org/jupyter/nbclient) [![Build Status](https://github.com/jupyter/nbclient/workflows/CI/badge.svg)](https://github.com/jupyter/nbclient/actions) [![Documentation Status](https://readthedocs.org/projects/nbclient/badge/?version=latest)](https://nbclient.readthedocs.io/en/latest/?badge=latest) [![image](https://codecov.io/github/jupyter/nbclient/coverage.svg?branch=master)](https://codecov.io/github/jupyter/nbclient?branch=master) [![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/) [![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/) [![Python 3.8](https://img.shields.io/badge/python-3.8-blue.svg)](https://www.python.org/downloads/release/python-380/) +[![Python 3.9](https://img.shields.io/badge/python-3.9-blue.svg)](https://www.python.org/downloads/release/python-390/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) # nbclient @@ -14,7 +14,7 @@ different execution contexts. NBClient was spun out of [nbconvert](https://nbconvert.readthedocs.io/en/latest/)'s former `ExecutePreprocessor`. -**NBClient** lets you **execute** notebooks. +**NBClient** lets you **execute** notebooks. ## Interactive Demo @@ -52,5 +52,5 @@ `jupyter_client` is a client library for the jupyter protocol. Specifically, `jupyter_client` provides the Python API for starting, managing and communicating with Jupyter kernels. - + While, nbclient allows notebooks to be run in different execution contexts. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/docs/changelog.md new/nbclient-0.5.2/docs/changelog.md --- old/nbclient-0.5.1/docs/changelog.md 2020-10-15 19:11:27.000000000 +0200 +++ new/nbclient-0.5.2/docs/changelog.md 2021-02-09 19:28:47.000000000 +0100 @@ -1,5 +1,14 @@ # Changelog +## 0.5.2 + +- Set minimum python version supported to 3.6.1 to avoid 3.6.0 issues +- CellExecutionError is now unpickleable +- Added testing for python 3.9 +- Changed travis tests to github actions +- Documentation referencing an old model instead of NotebookClient was fixed +- `allow_error_names` option was added for a more specific scope of `allow_errors` to be applied + ## 0.5.1 - Update kernel client class JIT if it's the synchronous version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/docs/client.rst new/nbclient-0.5.2/docs/client.rst --- old/nbclient-0.5.1/docs/client.rst 2020-10-15 19:08:22.000000000 +0200 +++ new/nbclient-0.5.2/docs/client.rst 2021-02-09 19:28:47.000000000 +0100 @@ -68,7 +68,7 @@ Execution arguments (traitlets) ------------------------------- -The arguments passed to :class:`Executor` are configuration options +The arguments passed to :class:`NotebookClient` are configuration options called `traitlets <https://traitlets.readthedocs.io/en/stable>`_. There are many cool things about traitlets. For example, they enforce the input type, and they can be accessed/modified as @@ -156,7 +156,7 @@ We can tell nbclient to not store the state using the `store_widget_state` argument:: - executor = Executor(nb, store_widget_state=False) + client = NotebookClient(nb, store_widget_state=False) This widget rendering is not performed against a browser during execution, so only widget default states or states manipulated via user code will be diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/docs/conf.py new/nbclient-0.5.2/docs/conf.py --- old/nbclient-0.5.1/docs/conf.py 2020-09-11 23:53:48.000000000 +0200 +++ new/nbclient-0.5.2/docs/conf.py 2021-02-09 19:28:47.000000000 +0100 @@ -115,10 +115,7 @@ # Custom sidebar templates, must be a dictionary that maps document names # to template names. -# -# This is required for the alabaster theme -# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars -html_sidebars = {'**': ['about.html', 'navigation.html', 'relations.html', 'searchbox.html']} +#html_sidebars = {} html_title = "nbclient" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/docs/index.rst new/nbclient-0.5.2/docs/index.rst --- old/nbclient-0.5.1/docs/index.rst 2020-10-15 19:08:22.000000000 +0200 +++ new/nbclient-0.5.2/docs/index.rst 2021-02-09 19:28:47.000000000 +0100 @@ -3,10 +3,10 @@ .. image:: https://img.shields.io/github/stars/jupyter/nbclient?label=stars&style=social :alt: GitHub stars - :target: https://githu.com/jupyter/nbclient -.. image:: https://img.shields.io/travis/jupyter/nbclient - :alt: Travis (.org) - :target: https://travis-ci.org/jupyter/nbclient + :target: https://github.com/jupyter/nbclient +.. image:: https://github.com/jupyter/nbclient/workflows/CI/badge.svg + :alt: GitHub Actions + :target: https://github.com/jupyter/nbclient/actions .. image:: https://codecov.io/github/jupyter/nbclient/coverage.svg?branch=master :alt: CodeCov :target: https://codecov.io/github/jupyter/nbclient @@ -17,7 +17,7 @@ different execution contexts. NBClient was spun out of `nbconvert <https://nbconvert.readthedocs.io/en/latest/>`_'s former ``ExecutePreprocessor``. -**NBClient** lets you **execute** notebooks. +**NBClient** lets you **execute** notebooks. Demo ---- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/nbclient/_version.py new/nbclient-0.5.2/nbclient/_version.py --- old/nbclient-0.5.1/nbclient/_version.py 2020-10-15 19:12:18.000000000 +0200 +++ new/nbclient-0.5.2/nbclient/_version.py 2021-02-09 19:28:47.000000000 +0100 @@ -1 +1 @@ -version = '0.5.1' +version = '0.5.2' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/nbclient/client.py new/nbclient-0.5.2/nbclient/client.py --- old/nbclient-0.5.1/nbclient/client.py 2020-10-15 19:08:22.000000000 +0200 +++ new/nbclient-0.5.2/nbclient/client.py 2021-02-09 19:28:47.000000000 +0100 @@ -101,7 +101,8 @@ """ If ``False`` (default), when a cell raises an error the execution is stopped and a `CellExecutionError` - is raised. + is raised, except if the error name is in + ``allow_error_names``. If ``True``, execution errors are ignored and the execution is continued until the end of the notebook. Output from exceptions is included in the cell output in both cases. @@ -109,19 +110,31 @@ ), ).tag(config=True) + allow_error_names: t.List[str] = List( + Unicode(), + help=dedent( + """ + List of error names which won't stop the execution. Use this if the + ``allow_errors`` option it too general and you want to allow only + specific kinds of errors. + """ + ), + ).tag(config=True) + force_raise_errors: bool = Bool( False, help=dedent( """ If False (default), errors from executing the notebook can be allowed with a ``raises-exception`` tag on a single cell, or the - ``allow_errors`` configurable option for all cells. An allowed error - will be recorded in notebook output, and execution will continue. - If an error occurs when it is not explicitly allowed, a - `CellExecutionError` will be raised. + ``allow_errors`` or ``allow_error_names`` configurable options for + all cells. An allowed error will be recorded in notebook output, and + execution will continue. If an error occurs when it is not + explicitly allowed, a `CellExecutionError` will be raised. If True, `CellExecutionError` will be raised for any error that occurs - while executing the notebook. This overrides both the - ``allow_errors`` option and the ``raises-exception`` cell tag. + while executing the notebook. This overrides the ``allow_errors`` + and ``allow_error_names`` options and the ``raises-exception`` cell + tag. """ ), ).tag(config=True) @@ -731,13 +744,20 @@ cell: NotebookNode, exec_reply: t.Optional[t.Dict]) -> None: - cell_allows_errors = self.allow_errors or "raises-exception" in cell.metadata.get( - "tags", [] - ) + if exec_reply is None: + return None + + exec_reply_content = exec_reply['content'] + if exec_reply_content['status'] != 'error': + return None + + cell_allows_errors = (not self.force_raise_errors) and ( + self.allow_errors + or exec_reply_content.get('ename') in self.allow_error_names + or "raises-exception" in cell.metadata.get("tags", [])) - if self.force_raise_errors or not cell_allows_errors: - if (exec_reply is not None) and exec_reply['content']['status'] == 'error': - raise CellExecutionError.from_cell_and_msg(cell, exec_reply['content']) + if not cell_allows_errors: + raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content) async def async_execute_cell( self, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/nbclient/exceptions.py new/nbclient-0.5.2/nbclient/exceptions.py --- old/nbclient-0.5.1/nbclient/exceptions.py 2020-07-10 08:03:45.000000000 +0200 +++ new/nbclient-0.5.2/nbclient/exceptions.py 2021-02-09 19:28:47.000000000 +0100 @@ -68,6 +68,9 @@ self.ename = ename self.evalue = evalue + def __reduce__(self) -> tuple: + return type(self), (self.traceback, self.ename, self.evalue) + def __str__(self) -> str: s = self.__unicode__() if not isinstance(s, str): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/nbclient/tests/test_client.py new/nbclient-0.5.2/nbclient/tests/test_client.py --- old/nbclient-0.5.1/nbclient/tests/test_client.py 2020-08-25 18:56:19.000000000 +0200 +++ new/nbclient-0.5.2/nbclient/tests/test_client.py 2021-02-09 19:28:47.000000000 +0100 @@ -1414,6 +1414,24 @@ 'msg_type': 'execute_reply', 'header': {'msg_type': 'execute_reply'}, # ERROR + 'content': {'status': 'error', 'ename': 'NotImplementedError'}, + } + ) + def test_allow_error_names(self, executor, cell_mock, message_mock): + executor.allow_error_names = ['NotImplementedError'] + # Should NOT raise + executor.execute_cell(cell_mock, 0) + + # An error followed by an idle + assert message_mock.call_count == 1 + # Should also consume the message stream + assert cell_mock.outputs == [] + + @prepare_cell_mocks( + reply_msg={ + 'msg_type': 'execute_reply', + 'header': {'msg_type': 'execute_reply'}, + # ERROR 'content': {'status': 'error'}, } ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/nbclient.egg-info/PKG-INFO new/nbclient-0.5.2/nbclient.egg-info/PKG-INFO --- old/nbclient-0.5.1/nbclient.egg-info/PKG-INFO 2020-10-15 19:12:27.000000000 +0200 +++ new/nbclient-0.5.2/nbclient.egg-info/PKG-INFO 2021-02-09 19:29:39.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: nbclient -Version: 0.5.1 +Version: 0.5.2 Summary: A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor. Home-page: https://jupyter.org Author: Jupyter Development Team @@ -11,13 +11,13 @@ Project-URL: Source, https://github.com/jupyter/nbclient Project-URL: Tracker, https://github.com/jupyter/nbclient/issues Description: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter/nbclient/master?filepath=binder%2Frun_nbclient.ipynb) - [![Travis Build Status](https://travis-ci.org/jupyter/nbclient.svg?branch=master)](https://travis-ci.org/jupyter/nbclient) [![Build Status](https://github.com/jupyter/nbclient/workflows/CI/badge.svg)](https://github.com/jupyter/nbclient/actions) [![Documentation Status](https://readthedocs.org/projects/nbclient/badge/?version=latest)](https://nbclient.readthedocs.io/en/latest/?badge=latest) [![image](https://codecov.io/github/jupyter/nbclient/coverage.svg?branch=master)](https://codecov.io/github/jupyter/nbclient?branch=master) [![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/) [![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/) [![Python 3.8](https://img.shields.io/badge/python-3.8-blue.svg)](https://www.python.org/downloads/release/python-380/) + [![Python 3.9](https://img.shields.io/badge/python-3.9-blue.svg)](https://www.python.org/downloads/release/python-390/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) # nbclient @@ -26,7 +26,7 @@ different execution contexts. NBClient was spun out of [nbconvert](https://nbconvert.readthedocs.io/en/latest/)'s former `ExecutePreprocessor`. - **NBClient** lets you **execute** notebooks. + **NBClient** lets you **execute** notebooks. ## Interactive Demo @@ -64,7 +64,7 @@ `jupyter_client` is a client library for the jupyter protocol. Specifically, `jupyter_client` provides the Python API for starting, managing and communicating with Jupyter kernels. - + While, nbclient allows notebooks to be run in different execution contexts. Keywords: jupyter,pipeline,notebook,executor @@ -80,7 +80,8 @@ Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 -Requires-Python: >=3.6 +Classifier: Programming Language :: Python :: 3.9 +Requires-Python: >=3.6.1 Description-Content-Type: text/markdown Provides-Extra: test Provides-Extra: dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/setup.py new/nbclient-0.5.2/setup.py --- old/nbclient-0.5.1/setup.py 2020-10-15 19:08:22.000000000 +0200 +++ new/nbclient-0.5.2/setup.py 2021-02-09 19:28:47.000000000 +0100 @@ -52,7 +52,7 @@ long_description_content_type='text/markdown', packages=['nbclient'], include_package_data=True, - python_requires=">=3.6", + python_requires=">=3.6.1", install_requires=requirements, extras_require=extras_require, project_urls={ @@ -74,5 +74,6 @@ 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbclient-0.5.1/tox.ini new/nbclient-0.5.2/tox.ini --- old/nbclient-0.5.1/tox.ini 2020-07-10 08:03:45.000000000 +0200 +++ new/nbclient-0.5.2/tox.ini 2021-02-09 19:28:47.000000000 +0100 @@ -1,12 +1,13 @@ [tox] skipsdist = true -envlist = py{36,37,38}, flake8, mypy, dist, manifest, docs +envlist = py{36,37,38, 39}, flake8, mypy, dist, manifest, docs [gh-actions] python = 3.6: py36 3.7: py37 - 3.8: py38, flake8, mypy, dist, manifest + 3.8: py38 + 3.9: py39, flake8, mypy, dist, manifest # Linters [testenv:flake8] @@ -55,12 +56,13 @@ py36: python3.6 py37: python3.7 py38: python3.8 - flake8: python3.8 - mypy: python3.8 - manifest: python3.8 - binder: python3.8 - dist: python3.8 - docs: python3.8 + py39: python3.9 + flake8: python3.9 + mypy: python3.9 + manifest: python3.9 + binder: python3.9 + dist: python3.9 + docs: python3.9 deps = .[dev] commands = pytest -vv --maxfail=2 --cov=nbclient --cov-report=xml -W always {posargs}