Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-ipykernel for
openSUSE:Factory checked in at 2023-04-04 21:27:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ipykernel (Old)
and /work/SRC/openSUSE:Factory/.python-ipykernel.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ipykernel"
Tue Apr 4 21:27:29 2023 rev:36 rq:1077234 version:6.22.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ipykernel/python-ipykernel.changes
2023-02-06 14:15:18.516538256 +0100
+++
/work/SRC/openSUSE:Factory/.python-ipykernel.new.19717/python-ipykernel.changes
2023-04-04 21:27:51.331725423 +0200
@@ -1,0 +2,17 @@
+Tue Apr 4 14:58:26 UTC 2023 - Ben Greiner <[email protected]>
+
+- Update to 6.22.0
+ * Deprecate Comm class + Fix incompatibility with ipywidgets
+ #1097 (@martinRenou)
+
+-------------------------------------------------------------------
+Sun Mar 19 16:23:32 UTC 2023 - Ben Greiner <[email protected]>
+
+- Update to 6.21.3
+ * Fix interrupt reply #1101 (@garlandz-db)
+- Release 6.21.2
+ * Un-expose __file__ and expose __session__ instead. #1095
+ (@Carreau)
+ * Remove test_enter_eventloop #1084 (@davidbrochart)
+
+-------------------------------------------------------------------
Old:
----
ipykernel-6.21.1.tar.gz
New:
----
ipykernel-6.22.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ipykernel.spec ++++++
--- /var/tmp/diff_new_pack.yI38HW/_old 2023-04-04 21:27:52.171730191 +0200
+++ /var/tmp/diff_new_pack.yI38HW/_new 2023-04-04 21:27:52.179730236 +0200
@@ -17,7 +17,7 @@
Name: python-ipykernel
-Version: 6.21.1
+Version: 6.22.0
Release: 0
Summary: IPython Kernel for Jupyter
License: BSD-3-Clause
@@ -51,7 +51,7 @@
BuildRequires: %{python_module nest-asyncio}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module psutil}
-BuildRequires: %{python_module pyzmq >= 17}
+BuildRequires: %{python_module pyzmq >= 20}
BuildRequires: %{python_module tornado >= 6.1}
BuildRequires: %{python_module traitlets >= 5.1.0}
BuildRequires: %{python_module jupyter-core >= 5.1 or (%python-jupyter-core
>= 4.12 with %python-jupyter-core < 5.0)}
@@ -63,7 +63,7 @@
Requires: python-nest-asyncio
Requires: python-packaging
Requires: python-psutil
-Requires: python-pyzmq >= 17
+Requires: python-pyzmq >= 20
Requires: python-tornado >= 6.1
Requires: python-traitlets >= 5.4.0
Requires: (python-jupyter-core >= 5.1 or (python-jupyter-core >= 4.12
with python-jupyter-core < 5.0))
@@ -123,7 +123,7 @@
%files %{python_files}
%doc README.md
-%license COPYING.md
+%license LICENSE
%{python_sitelib}/ipykernel
%{python_sitelib}/ipykernel_launcher.py
%{python_sitelib}/ipykernel-%{version}*-info
++++++ ipykernel-6.21.1.tar.gz -> ipykernel-6.22.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/.github/workflows/downstream.yml
new/ipykernel-6.22.0/.github/workflows/downstream.yml
--- old/ipykernel-6.21.1/.github/workflows/downstream.yml 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/.github/workflows/downstream.yml 2020-02-02
01:00:00.000000000 +0100
@@ -38,6 +38,7 @@
uses: jupyterlab/maintainer-tools/.github/actions/downstream-test@v1
with:
package_name: ipywidgets
+ test_command: pytest -vv -raXxs -k \"not deprecation_fa_icons and
not tooltip_deprecation and not on_submit_deprecation\" -W default --durations
10 --color=yes
jupyter_client:
runs-on: ubuntu-latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/.pre-commit-config.yaml
new/ipykernel-6.22.0/.pre-commit-config.yaml
--- old/ipykernel-6.21.1/.pre-commit-config.yaml 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/.pre-commit-config.yaml 2020-02-02
01:00:00.000000000 +0100
@@ -21,7 +21,7 @@
- id: trailing-whitespace
- repo: https://github.com/python-jsonschema/check-jsonschema
- rev: 0.19.2
+ rev: 0.21.0
hooks:
- id: check-github-workflows
@@ -31,12 +31,12 @@
- id: mdformat
- repo: https://github.com/psf/black
- rev: 22.12.0
+ rev: 23.1.0
hooks:
- id: black
- repo: https://github.com/charliermarsh/ruff-pre-commit
- rev: v0.0.236
+ rev: v0.0.254
hooks:
- id: ruff
args: ["--fix"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/CHANGELOG.md
new/ipykernel-6.22.0/CHANGELOG.md
--- old/ipykernel-6.21.1/CHANGELOG.md 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/CHANGELOG.md 2020-02-02 01:00:00.000000000 +0100
@@ -2,6 +2,65 @@
<!-- <START NEW CHANGELOG ENTRY> -->
+## 6.22.0
+
+([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.21.3...e2972d763b5357d4e1cb9b5355593583ca6d5657))
+
+### Bugs fixed
+
+- Deprecate Comm class + Fix incompatibility with ipywidgets
[#1097](https://github.com/ipython/ipykernel/pull/1097)
([@martinRenou](https://github.com/martinRenou))
+
+### Maintenance and upkeep improvements
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/ipython/ipykernel/graphs/contributors?from=2023-03-06&to=2023-03-20&type=c))
+
+[@martinRenou](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3AmartinRenou+updated%3A2023-03-06..2023-03-20&type=Issues)
|
[@pre-commit-ci](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Apre-commit-ci+updated%3A2023-03-06..2023-03-20&type=Issues)
+
+<!-- <END NEW CHANGELOG ENTRY> -->
+
+## 6.21.3
+
+([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.21.2...e46f75b93c388886f4b6ba32182e29c3cc486984))
+
+### Bugs fixed
+
+- Fix interrupt reply [#1101](https://github.com/ipython/ipykernel/pull/1101)
([@garlandz-db](https://github.com/garlandz-db))
+
+### Maintenance and upkeep improvements
+
+- Update docs link [#1103](https://github.com/ipython/ipykernel/pull/1103)
([@blink1073](https://github.com/blink1073))
+- Add license [#1098](https://github.com/ipython/ipykernel/pull/1098)
([@dcsaba89](https://github.com/dcsaba89))
+
+### Documentation improvements
+
+- Update changelog for markdown typo
[#1096](https://github.com/ipython/ipykernel/pull/1096)
([@mlucool](https://github.com/mlucool))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/ipython/ipykernel/graphs/contributors?from=2023-02-13&to=2023-03-06&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Ablink1073+updated%3A2023-02-13..2023-03-06&type=Issues)
|
[@ccordoba12](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Accordoba12+updated%3A2023-02-13..2023-03-06&type=Issues)
|
[@dcsaba89](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adcsaba89+updated%3A2023-02-13..2023-03-06&type=Issues)
|
[@garlandz-db](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Agarlandz-db+updated%3A2023-02-13..2023-03-06&type=Issues)
|
[@mlucool](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Amlucool+updated%3A2023-02-13..2023-03-06&type=Issues)
+
+## 6.21.2
+
+([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.21.1...1a486e06155a4d8e58e716fd40468cb5738ed6bb))
+
+### Bugs fixed
+
+- Un-expose `__file__` and expose `__session__` instead.
[#1095](https://github.com/ipython/ipykernel/pull/1095)
([@Carreau](https://github.com/Carreau))
+
+### Maintenance and upkeep improvements
+
+- Remove test_enter_eventloop
[#1084](https://github.com/ipython/ipykernel/pull/1084)
([@davidbrochart](https://github.com/davidbrochart))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/ipython/ipykernel/graphs/contributors?from=2023-02-02&to=2023-02-13&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Ablink1073+updated%3A2023-02-02..2023-02-13&type=Issues)
|
[@Carreau](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2023-02-02..2023-02-13&type=Issues)
|
[@davidbrochart](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adavidbrochart+updated%3A2023-02-02..2023-02-13&type=Issues)
|
[@pre-commit-ci](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Apre-commit-ci+updated%3A2023-02-02..2023-02-13&type=Issues)
+
## 6.21.1
([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.21.0...ac7776dfd68861ae005e1f142ec87cd6703847ea))
@@ -16,15 +75,13 @@
[@blink1073](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Ablink1073+updated%3A2023-01-30..2023-02-02&type=Issues)
-<!-- <END NEW CHANGELOG ENTRY> -->
-
## 6.21.0
([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.20.2...dde698850d865dec89bba2305d1f3dc3134f8413))
### Enhancements made
-- Expose session start file in __file__.
[#1078](https://github.com/ipython/ipykernel/pull/1078)
([@Carreau](https://github.com/Carreau))
+- Expose session start file in `__file__`.
[#1078](https://github.com/ipython/ipykernel/pull/1078)
([@Carreau](https://github.com/Carreau))
- Add copy_to_globals debug request handling
[#1055](https://github.com/ipython/ipykernel/pull/1055)
([@brichet](https://github.com/brichet))
### Maintenance and upkeep improvements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/COPYING.md
new/ipykernel-6.22.0/COPYING.md
--- old/ipykernel-6.21.1/COPYING.md 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/COPYING.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,61 +0,0 @@
-# Licensing terms
-
-This project is licensed under the terms of the Modified BSD License
-(also known as New or Revised or 3-Clause BSD), as follows:
-
-- Copyright (c) 2015, IPython Development Team
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this
-list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution.
-
-Neither the name of the IPython Development Team nor the names of its
-contributors may be used to endorse or promote products derived from this
-software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-## About the IPython Development Team
-
-The IPython Development Team is the set of all contributors to the IPython
project.
-This includes all of the IPython subprojects.
-
-The core team that coordinates development on GitHub can be found here:
-https://github.com/ipython/.
-
-## Our Copyright Policy
-
-IPython uses a shared copyright model. Each contributor maintains copyright
-over their contributions to IPython. But, it is important to note that these
-contributions are typically only changes to the repositories. Thus, the IPython
-source code, in its entirety is not the copyright of any single person or
-institution. Instead, it is the collective copyright of the entire IPython
-Development Team. If individual contributors want to maintain a record of what
-changes/contributions they have specific copyright on, they should indicate
-their copyright in the commit message of the change, when they commit the
-change to one of the IPython repositories.
-
-With this in mind, the following banner should be used in any source code file
-to indicate the copyright and license terms:
-
-```
-# Copyright (c) IPython Development Team.
-# Distributed under the terms of the Modified BSD License.
-```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/LICENSE new/ipykernel-6.22.0/LICENSE
--- old/ipykernel-6.21.1/LICENSE 1970-01-01 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/LICENSE 2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,30 @@
+BSD 3-Clause License
+
+Copyright (c) 2015, IPython Development Team
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/PKG-INFO
new/ipykernel-6.22.0/PKG-INFO
--- old/ipykernel-6.21.1/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,71 +1,40 @@
Metadata-Version: 2.1
Name: ipykernel
-Version: 6.21.1
+Version: 6.22.0
Summary: IPython Kernel for Jupyter
Project-URL: Homepage, https://ipython.org
Author-email: IPython Development Team <[email protected]>
-License: # Licensing terms
+License: BSD 3-Clause License
- This project is licensed under the terms of the Modified BSD License
- (also known as New or Revised or 3-Clause BSD), as follows:
-
- - Copyright (c) 2015, IPython Development Team
+ Copyright (c) 2015, IPython Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright notice,
this
- list of conditions and the following disclaimer.
+ 1. Redistributions of source code must retain the above copyright
notice, this
+ list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this
- list of conditions and the following disclaimer in the documentation
and/or
- other materials provided with the distribution.
-
- Neither the name of the IPython Development Team nor the names of its
- contributors may be used to endorse or promote products derived from
this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE
+ 2. Redistributions in binary form must reproduce the above copyright
notice,
+ this list of conditions and the following disclaimer in the
documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ## About the IPython Development Team
-
- The IPython Development Team is the set of all contributors to the
IPython project.
- This includes all of the IPython subprojects.
-
- The core team that coordinates development on GitHub can be found here:
- https://github.com/ipython/.
-
- ## Our Copyright Policy
-
- IPython uses a shared copyright model. Each contributor maintains
copyright
- over their contributions to IPython. But, it is important to note that
these
- contributions are typically only changes to the repositories. Thus,
the IPython
- source code, in its entirety is not the copyright of any single person
or
- institution. Instead, it is the collective copyright of the entire
IPython
- Development Team. If individual contributors want to maintain a record
of what
- changes/contributions they have specific copyright on, they should
indicate
- their copyright in the commit message of the change, when they commit
the
- change to one of the IPython repositories.
-
- With this in mind, the following banner should be used in any source
code file
- to indicate the copyright and license terms:
-
- ```
- # Copyright (c) IPython Development Team.
- # Distributed under the terms of the Modified BSD License.
- ```
-License-File: COPYING.md
+License-File: LICENSE
Keywords: Interactive,Interpreter,Shell,Web
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
@@ -88,7 +57,7 @@
Requires-Dist: nest-asyncio
Requires-Dist: packaging
Requires-Dist: psutil
-Requires-Dist: pyzmq>=17
+Requires-Dist: pyzmq>=20
Requires-Dist: tornado>=6.1
Requires-Dist: traitlets>=5.4.0
Provides-Extra: cov
@@ -123,7 +92,7 @@
[](https://github.com/ipython/ipykernel/actions/workflows/ci.yml/badge.svg?query=branch%3Amain++)
[](https://codecov.io/gh/ipython/ipykernel)
-[](http://ipython.readthedocs.io/en/latest/?badge=latest)
+[](http://ipykernel.readthedocs.io/en/latest/?badge=latest)
This package provides the IPython kernel for Jupyter.
@@ -154,3 +123,31 @@
```bash
pytest ipykernel -vv -s --cov ipykernel --cov-branch --cov-report
term-missing:skip-covered --durations 10
```
+
+## About the IPython Development Team
+
+The IPython Development Team is the set of all contributors to the IPython
project.
+This includes all of the IPython subprojects.
+
+The core team that coordinates development on GitHub can be found here:
+https://github.com/ipython/.
+
+## Our Copyright Policy
+
+IPython uses a shared copyright model. Each contributor maintains copyright
+over their contributions to IPython. But, it is important to note that these
+contributions are typically only changes to the repositories. Thus, the IPython
+source code, in its entirety is not the copyright of any single person or
+institution. Instead, it is the collective copyright of the entire IPython
+Development Team. If individual contributors want to maintain a record of what
+changes/contributions they have specific copyright on, they should indicate
+their copyright in the commit message of the change, when they commit the
+change to one of the IPython repositories.
+
+With this in mind, the following banner should be used in any source code file
+to indicate the copyright and license terms:
+
+```
+# Copyright (c) IPython Development Team.
+# Distributed under the terms of the Modified BSD License.
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/README.md
new/ipykernel-6.22.0/README.md
--- old/ipykernel-6.21.1/README.md 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/README.md 2020-02-02 01:00:00.000000000 +0100
@@ -2,7 +2,7 @@
[](https://github.com/ipython/ipykernel/actions/workflows/ci.yml/badge.svg?query=branch%3Amain++)
[](https://codecov.io/gh/ipython/ipykernel)
-[](http://ipython.readthedocs.io/en/latest/?badge=latest)
+[](http://ipykernel.readthedocs.io/en/latest/?badge=latest)
This package provides the IPython kernel for Jupyter.
@@ -33,3 +33,31 @@
```bash
pytest ipykernel -vv -s --cov ipykernel --cov-branch --cov-report
term-missing:skip-covered --durations 10
```
+
+## About the IPython Development Team
+
+The IPython Development Team is the set of all contributors to the IPython
project.
+This includes all of the IPython subprojects.
+
+The core team that coordinates development on GitHub can be found here:
+https://github.com/ipython/.
+
+## Our Copyright Policy
+
+IPython uses a shared copyright model. Each contributor maintains copyright
+over their contributions to IPython. But, it is important to note that these
+contributions are typically only changes to the repositories. Thus, the IPython
+source code, in its entirety is not the copyright of any single person or
+institution. Instead, it is the collective copyright of the entire IPython
+Development Team. If individual contributors want to maintain a record of what
+changes/contributions they have specific copyright on, they should indicate
+their copyright in the commit message of the change, when they commit the
+change to one of the IPython repositories.
+
+With this in mind, the following banner should be used in any source code file
+to indicate the copyright and license terms:
+
+```
+# Copyright (c) IPython Development Team.
+# Distributed under the terms of the Modified BSD License.
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/_version.py
new/ipykernel-6.22.0/ipykernel/_version.py
--- old/ipykernel-6.21.1/ipykernel/_version.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/_version.py 2020-02-02 01:00:00.000000000
+0100
@@ -5,7 +5,7 @@
from typing import List
# Version string must appear intact for hatch versioning
-__version__ = "6.21.1"
+__version__ = "6.22.0"
# Build up version_info tuple for backwards compatibility
pattern = r"(?P<major>\d+).(?P<minor>\d+).(?P<patch>\d+)(?P<rest>.*)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/comm/comm.py
new/ipykernel-6.22.0/ipykernel/comm/comm.py
--- old/ipykernel-6.21.1/ipykernel/comm/comm.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/comm/comm.py 2020-02-02 01:00:00.000000000
+0100
@@ -5,6 +5,7 @@
import uuid
from typing import Optional
+from warnings import warn
import comm.base_comm
import traitlets.config
@@ -70,8 +71,17 @@
def _default_comm_id(self):
return uuid.uuid4().hex
- def __init__(self, target_name='', data=None, metadata=None, buffers=None,
**kwargs):
+ def __init__(
+ self, target_name='', data=None, metadata=None, buffers=None,
show_warning=True, **kwargs
+ ):
"""Initialize a comm."""
+ if show_warning:
+ warn(
+ "The `ipykernel.comm.Comm` class has been deprecated. Please
use the `comm` module instead."
+ "For creating comms, use the function `from comm import
create_comm`.",
+ DeprecationWarning,
+ )
+
# Handle differing arguments between base classes.
had_kernel = 'kernel' in kwargs
kernel = kwargs.pop('kernel', None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/comm/manager.py
new/ipykernel-6.22.0/ipykernel/comm/manager.py
--- old/ipykernel-6.21.1/ipykernel/comm/manager.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/comm/manager.py 2020-02-02
01:00:00.000000000 +0100
@@ -3,11 +3,16 @@
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
+import logging
import comm.base_comm
import traitlets
import traitlets.config
+from .comm import Comm
+
+logger = logging.getLogger("ipykernel.comm")
+
class CommManager(comm.base_comm.CommManager,
traitlets.config.LoggingConfigurable):
"""A comm manager."""
@@ -21,3 +26,37 @@
# CommManager doesn't take arguments, so we explicitly forward
arguments
comm.base_comm.CommManager.__init__(self)
traitlets.config.LoggingConfigurable.__init__(self, **kwargs)
+
+ def comm_open(self, stream, ident, msg):
+ """Handler for comm_open messages"""
+ # This is for backward compatibility, the comm_open creates a a new
ipykernel.comm.Comm
+ # but we should let the base class create the comm with
comm.create_comm in a major release
+ content = msg["content"]
+ comm_id = content["comm_id"]
+ target_name = content["target_name"]
+ f = self.targets.get(target_name, None)
+ comm = Comm(
+ comm_id=comm_id,
+ primary=False,
+ target_name=target_name,
+ show_warning=False,
+ )
+ self.register_comm(comm)
+ if f is None:
+ logger.error("No such comm target registered: %s", target_name)
+ else:
+ try:
+ f(comm, msg)
+ return
+ except Exception:
+ logger.error("Exception opening comm with target: %s",
target_name, exc_info=True)
+
+ # Failure.
+ try:
+ comm.close()
+ except Exception:
+ logger.error(
+ """Could not close comm during `comm_open` failure
+ clean-up. The comm may not have been opened yet.""",
+ exc_info=True,
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/compiler.py
new/ipykernel-6.22.0/ipykernel/compiler.py
--- old/ipykernel-6.21.1/ipykernel/compiler.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/compiler.py 2020-02-02 01:00:00.000000000
+0100
@@ -29,7 +29,7 @@
val = length & 0x03
k = 0
- if val == 3: # noqa
+ if val == 3:
k = (ord(data[rounded_end + 2]) & 0xFF) << 16
if val in [2, 3]:
k |= (ord(data[rounded_end + 1]) & 0xFF) << 8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/gui/__init__.py
new/ipykernel-6.22.0/ipykernel/gui/__init__.py
--- old/ipykernel-6.21.1/ipykernel/gui/__init__.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/gui/__init__.py 2020-02-02
01:00:00.000000000 +0100
@@ -10,6 +10,6 @@
#
# Distributed under the terms of the BSD License.
#
-# The full license is in the file COPYING.txt, distributed as part of this
+# The full license is in the file LICENSE, distributed as part of this
# software.
# -----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/gui/gtk3embed.py
new/ipykernel-6.22.0/ipykernel/gui/gtk3embed.py
--- old/ipykernel-6.21.1/ipykernel/gui/gtk3embed.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/gui/gtk3embed.py 2020-02-02
01:00:00.000000000 +0100
@@ -4,7 +4,7 @@
# Copyright (C) 2010-2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
-# the file COPYING.txt, distributed as part of this software.
+# the file LICENSE, distributed as part of this software.
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/gui/gtkembed.py
new/ipykernel-6.22.0/ipykernel/gui/gtkembed.py
--- old/ipykernel-6.21.1/ipykernel/gui/gtkembed.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/gui/gtkembed.py 2020-02-02
01:00:00.000000000 +0100
@@ -4,7 +4,7 @@
# Copyright (C) 2010-2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
-# the file COPYING.txt, distributed as part of this software.
+# the file LICENSE, distributed as part of this software.
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/heartbeat.py
new/ipykernel-6.22.0/ipykernel/heartbeat.py
--- old/ipykernel-6.21.1/ipykernel/heartbeat.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/heartbeat.py 2020-02-02 01:00:00.000000000
+0100
@@ -5,7 +5,7 @@
# Copyright (C) 2008-2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
-# the file COPYING, distributed as part of this software.
+# the file LICENSE, distributed as part of this software.
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/inprocess/blocking.py
new/ipykernel-6.22.0/ipykernel/inprocess/blocking.py
--- old/ipykernel-6.21.1/ipykernel/inprocess/blocking.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/inprocess/blocking.py 2020-02-02
01:00:00.000000000 +0100
@@ -8,7 +8,7 @@
# Copyright (C) 2012 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
-# the file COPYING.txt, distributed as part of this software.
+# the file LICENSE, distributed as part of this software.
# -----------------------------------------------------------------------------
from queue import Empty, Queue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/inprocess/client.py
new/ipykernel-6.22.0/ipykernel/inprocess/client.py
--- old/ipykernel-6.21.1/ipykernel/inprocess/client.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/inprocess/client.py 2020-02-02
01:00:00.000000000 +0100
@@ -4,7 +4,7 @@
# Copyright (C) 2012 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
-# the file COPYING, distributed as part of this software.
+# the file LICENSE, distributed as part of this software.
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ipykernel-6.21.1/ipykernel/inprocess/tests/test_kernel.py
new/ipykernel-6.22.0/ipykernel/inprocess/tests/test_kernel.py
--- old/ipykernel-6.21.1/ipykernel/inprocess/tests/test_kernel.py
2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/inprocess/tests/test_kernel.py
2020-02-02 01:00:00.000000000 +0100
@@ -48,7 +48,6 @@
def test_with_cell_id(kc):
-
with patch_cell_id():
kc.execute("1+1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/iostream.py
new/ipykernel-6.22.0/ipykernel/iostream.py
--- old/ipykernel-6.21.1/ipykernel/iostream.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/iostream.py 2020-02-02 01:00:00.000000000
+0100
@@ -557,7 +557,6 @@
msg = "I/O operation on closed file"
raise ValueError(msg)
else:
-
is_child = not self._is_master_process()
# only touch the buffer in the IO thread to avoid races
with self._buffer_lock:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/ipkernel.py
new/ipykernel-6.22.0/ipykernel/ipkernel.py
--- old/ipykernel-6.21.1/ipykernel/ipkernel.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/ipkernel.py 2020-02-02 01:00:00.000000000
+0100
@@ -29,7 +29,7 @@
try:
from IPython.core.interactiveshell import _asyncio_runner #
type:ignore[attr-defined]
except ImportError:
- _asyncio_runner = None
+ _asyncio_runner = None # type:ignore
try:
from IPython.core.completer import provisionalcompleter as
_provisionalcompleter
@@ -55,7 +55,7 @@
def _get_comm_manager(*args, **kwargs):
"""Create a new CommManager."""
- global _comm_manager
+ global _comm_manager # noqa
if _comm_manager is None:
with _comm_lock:
if _comm_manager is None:
@@ -130,7 +130,7 @@
jupyter_session_name = os.environ.get('JPY_SESSION_NAME')
if jupyter_session_name:
- self.shell.user_ns['__file__'] = jupyter_session_name
+ self.shell.user_ns['__session__'] = jupyter_session_name
self.shell.displayhook.pub_socket = self.iopub_socket
self.shell.displayhook.topic = self._topic("execute_result")
@@ -366,7 +366,6 @@
with_cell_id = _accepts_cell_id(shell.run_cell)
try:
-
# default case: runner is asyncio and asyncio is already running
# TODO: this should check every case for "are we inside the
runner",
# not just asyncio
@@ -626,7 +625,7 @@
try:
from ipyparallel.serialize import serialize_object,
unpack_apply_message
except ImportError:
- from .serialize import serialize_object, unpack_apply_message #
type:ignore
+ from .serialize import serialize_object, unpack_apply_message
shell = self.shell
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/jsonutil.py
new/ipykernel-6.22.0/ipykernel/jsonutil.py
--- old/ipykernel-6.21.1/ipykernel/jsonutil.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/jsonutil.py 2020-02-02 01:00:00.000000000
+0100
@@ -98,7 +98,7 @@
it simply sanitizes it so that there will be no encoding errors later.
"""
- if int(JUPYTER_CLIENT_MAJOR_VERSION) >= 7: # noqa
+ if int(JUPYTER_CLIENT_MAJOR_VERSION) >= 7:
return obj
# types that are 'atomic' and ok in json as-is.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/kernelapp.py
new/ipykernel-6.22.0/ipykernel/kernelapp.py
--- old/ipykernel-6.21.1/ipykernel/kernelapp.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/kernelapp.py 2020-02-02 01:00:00.000000000
+0100
@@ -449,9 +449,9 @@
if self.no_stdout or self.no_stderr:
blackhole = open(os.devnull, "w") # noqa
if self.no_stdout:
- sys.stdout = sys.__stdout__ = blackhole
+ sys.stdout = sys.__stdout__ = blackhole # type:ignore
if self.no_stderr:
- sys.stderr = sys.__stderr__ = blackhole
+ sys.stderr = sys.__stderr__ = blackhole # type:ignore
def init_io(self):
"""Redirect input streams and set a display hook."""
@@ -471,11 +471,8 @@
sys.stderr.flush()
sys.stderr = outstream_factory(self.session, self.iopub_thread,
"stderr", echo=e_stderr)
if hasattr(sys.stderr, "_original_stdstream_copy"):
-
for handler in self.log.handlers:
- if isinstance(handler, StreamHandler) and (
- handler.stream.buffer.fileno() == 2 # noqa
- ):
+ if isinstance(handler, StreamHandler) and
(handler.stream.buffer.fileno() == 2):
self.log.debug("Seeing logger to stderr, rerouting to
raw filedescriptor.")
handler.stream = TextIOWrapper(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/kernelbase.py
new/ipykernel-6.22.0/ipykernel/kernelbase.py
--- old/ipykernel-6.21.1/ipykernel/kernelbase.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/kernelbase.py 2020-02-02
01:00:00.000000000 +0100
@@ -883,7 +883,7 @@
msg = self.session.send(stream, "comm_info_reply", reply_content,
parent, ident)
self.log.debug("%s", msg)
- def _send_interupt_children(self):
+ def _send_interrupt_children(self):
if os.name == "nt":
self.log.error("Interrupt message not supported on Windows")
else:
@@ -894,18 +894,27 @@
if pgid and pgid == pid and hasattr(os, "killpg"):
try:
os.killpg(pgid, SIGINT)
- return
except OSError:
- pass
- try:
+ os.kill(pid, SIGINT)
+ raise
+ else:
os.kill(pid, SIGINT)
- except OSError:
- pass
async def interrupt_request(self, stream, ident, parent):
"""Handle an interrupt request."""
- self._send_interupt_children()
- content = parent["content"]
+ content: t.Dict[str, t.Any] = {"status": "ok"}
+ try:
+ self._send_interrupt_children()
+ except OSError as err:
+ import traceback
+
+ content = {
+ "status": "error",
+ "traceback": traceback.format_stack(),
+ "ename": str(type(err).__name__),
+ "evalue": str(err),
+ }
+
self.session.send(stream, "interrupt_reply", content, parent,
ident=ident)
return
@@ -999,7 +1008,7 @@
cpu_percent = psutil.cpu_percent()
#
https://psutil.readthedocs.io/en/latest/index.html?highlight=cpu#psutil.cpu_percent
# The first time cpu_percent is called it will return a meaningless
0.0 value which you are supposed to ignore.
- if cpu_percent is not None and cpu_percent != 0.0: # noqa
+ if cpu_percent is not None and cpu_percent != 0.0:
reply_content["host_cpu_percent"] = cpu_percent
reply_content["cpu_count"] = psutil.cpu_count(logical=True)
reply_content["host_virtual_memory"] =
dict(psutil.virtual_memory()._asdict())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/pickleutil.py
new/ipykernel-6.22.0/ipykernel/pickleutil.py
--- old/ipykernel-6.21.1/ipykernel/pickleutil.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/pickleutil.py 2020-02-02
01:00:00.000000000 +0100
@@ -77,7 +77,7 @@
# dill doesn't work with cPickle,
# tell the two relevant modules to use plain pickle
- global pickle
+ global pickle # noqa
pickle = dill
try:
@@ -98,7 +98,7 @@
"""
import cloudpickle
- global pickle
+ global pickle # noqa
pickle = cloudpickle
try:
@@ -278,9 +278,9 @@
self.shape = obj.shape
self.dtype = obj.dtype.descr if obj.dtype.fields else obj.dtype.str
self.pickled = False
- if sum(obj.shape) == 0:
+ if sum(obj.shape) == 0: # noqa
self.pickled = True
- elif obj.dtype == "O":
+ elif obj.dtype == "O": # noqa
# can't handle object dtype with buffer approach
self.pickled = True
elif obj.dtype.fields and any(dt == "O" for dt, sz in
obj.dtype.fields.values()):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/serialize.py
new/ipykernel-6.22.0/ipykernel/serialize.py
--- old/ipykernel-6.21.1/ipykernel/serialize.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.22.0/ipykernel/serialize.py 2020-02-02 01:00:00.000000000
+0100
@@ -181,7 +181,7 @@
"""unpack f,args,kwargs from buffers packed by pack_apply_message()
Returns: original f,args,kwargs"""
bufs = list(bufs) # allow us to pop
- assert len(bufs) >= 2, "not enough buffers!" # noqa
+ assert len(bufs) >= 2, "not enough buffers!"
pf = bufs.pop(0)
f = uncan(pickle.loads(pf), g)
pinfo = bufs.pop(0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/tests/conftest.py
new/ipykernel-6.22.0/ipykernel/tests/conftest.py
--- old/ipykernel-6.21.1/ipykernel/tests/conftest.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/tests/conftest.py 2020-02-02
01:00:00.000000000 +0100
@@ -99,7 +99,7 @@
_, msg = self.session.feed_identities(self._reply)
return self.session.deserialize(msg)
- def _send_interupt_children(self):
+ def _send_interrupt_children(self):
# override to prevent deadlock
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/tests/test_comm.py
new/ipykernel-6.22.0/ipykernel/tests/test_comm.py
--- old/ipykernel-6.21.1/ipykernel/tests/test_comm.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/tests/test_comm.py 2020-02-02
01:00:00.000000000 +0100
@@ -1,5 +1,7 @@
import unittest.mock
+import pytest
+
from ipykernel.comm import Comm, CommManager
from ipykernel.ipkernel import IPythonKernel
from ipykernel.kernelbase import Kernel
@@ -9,7 +11,8 @@
manager = CommManager(kernel=kernel)
kernel.comm_manager = manager # type:ignore
- c = Comm(kernel=kernel, target_name="bar")
+ with pytest.deprecated_call():
+ c = Comm(kernel=kernel, target_name="bar")
msgs = []
assert kernel is c.kernel # type:ignore
@@ -53,7 +56,8 @@
kernel.comm_manager = manager # type:ignore
with unittest.mock.patch.object(Comm, "publish_msg") as publish_msg:
- comm = Comm()
+ with pytest.deprecated_call():
+ comm = Comm()
comm.on_msg(on_msg)
comm.on_close(on_close)
manager.register_comm(comm)
@@ -96,5 +100,7 @@
def test_comm_in_manager(ipkernel: IPythonKernel) -> None:
- comm = Comm()
+ with pytest.deprecated_call():
+ comm = Comm()
+
assert comm.comm_id in ipkernel.comm_manager.comms
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ipykernel-6.21.1/ipykernel/tests/test_ipkernel_direct.py
new/ipykernel-6.22.0/ipykernel/tests/test_ipkernel_direct.py
--- old/ipykernel-6.21.1/ipykernel/tests/test_ipkernel_direct.py
2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/tests/test_ipkernel_direct.py
2020-02-02 01:00:00.000000000 +0100
@@ -90,8 +90,21 @@
async def test_direct_interrupt_request(ipkernel):
- reply = await ipkernel.test_shell_message("interrupt_request", {})
+ reply = await ipkernel.test_control_message("interrupt_request", {})
assert reply["header"]["msg_type"] == "interrupt_reply"
+ assert reply["content"] == {"status": "ok"}
+
+ # test failure on interrupt request
+ def raiseOSError():
+ raise OSError("evalue")
+
+ ipkernel._send_interrupt_children = raiseOSError
+ reply = await ipkernel.test_control_message("interrupt_request", {})
+ assert reply["header"]["msg_type"] == "interrupt_reply"
+ assert reply["content"]["status"] == "error"
+ assert reply["content"]["ename"] == "OSError"
+ assert reply["content"]["evalue"] == "evalue"
+ assert len(reply["content"]["traceback"]) > 0
# TODO: this causes deadlock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/tests/test_kernel.py
new/ipykernel-6.22.0/ipykernel/tests/test_kernel.py
--- old/ipykernel-6.21.1/ipykernel/tests/test_kernel.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/tests/test_kernel.py 2020-02-02
01:00:00.000000000 +0100
@@ -117,7 +117,6 @@
def test_subprocess_print():
"""printing from forked mp.Process"""
with new_kernel() as kc:
-
_check_master(kc, expected=True)
flush_channels(kc)
np = 5
@@ -146,7 +145,6 @@
def test_subprocess_noprint():
"""mp.Process without print doesn't trigger iostream mp_mode"""
with kernel() as kc:
-
np = 5
code = "\n".join(
[
@@ -174,7 +172,6 @@
def test_subprocess_error():
"""error in mp.Process doesn't crash"""
with new_kernel() as kc:
-
code = "\n".join(
[
"import multiprocessing as mp",
@@ -459,7 +456,6 @@
def test_control_thread_priority():
-
N = 5
with new_kernel() as kc:
msg_id = kc.execute("pass")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ipykernel-6.21.1/ipykernel/tests/test_kernel_direct.py
new/ipykernel-6.22.0/ipykernel/tests/test_kernel_direct.py
--- old/ipykernel-6.21.1/ipykernel/tests/test_kernel_direct.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/tests/test_kernel_direct.py 2020-02-02
01:00:00.000000000 +0100
@@ -69,8 +69,21 @@
async def test_direct_interrupt_request(kernel):
- reply = await kernel.test_shell_message("interrupt_request", {})
+ reply = await kernel.test_control_message("interrupt_request", {})
assert reply["header"]["msg_type"] == "interrupt_reply"
+ assert reply["content"] == {"status": "ok"}
+
+ # test failure on interrupt request
+ def raiseOSError():
+ raise OSError("evalue")
+
+ kernel._send_interrupt_children = raiseOSError
+ reply = await kernel.test_control_message("interrupt_request", {})
+ assert reply["header"]["msg_type"] == "interrupt_reply"
+ assert reply["content"]["status"] == "error"
+ assert reply["content"]["ename"] == "OSError"
+ assert reply["content"]["evalue"] == "evalue"
+ assert len(reply["content"]["traceback"]) > 0
async def test_direct_shutdown_request(kernel):
@@ -132,27 +145,6 @@
await kernel.dispatch_shell(msg)
-async def test_enter_eventloop(kernel):
- kernel.eventloop = None
- kernel.enter_eventloop()
- kernel.eventloop = asyncio.get_running_loop()
- kernel.enter_eventloop()
- called = 0
-
- def check_status():
- nonlocal called
- if called == 0:
- msg = kernel.session.msg("debug_request", {})
- kernel.msg_queue.put(msg)
- called += 1
- kernel.io_loop.call_later(0.001, check_status)
-
- kernel.io_loop.call_later(0.001, check_status)
- kernel.start()
- while called < 2:
- await asyncio.sleep(0.1)
-
-
async def test_do_one_iteration(kernel):
kernel.msg_queue = asyncio.Queue()
await kernel.do_one_iteration()
@@ -166,8 +158,8 @@
await kernel.connect_request(kernel.shell_stream, "foo", {})
-async def test_send_interupt_children(kernel):
- kernel._send_interupt_children()
+async def test_send_interrupt_children(kernel):
+ kernel._send_interrupt_children()
# TODO: this causes deadlock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/ipykernel/tests/test_kernelspec.py
new/ipykernel-6.22.0/ipykernel/tests/test_kernelspec.py
--- old/ipykernel-6.21.1/ipykernel/tests/test_kernelspec.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/ipykernel/tests/test_kernelspec.py 2020-02-02
01:00:00.000000000 +0100
@@ -76,7 +76,6 @@
def test_install_kernelspec():
-
path = tempfile.mkdtemp()
try:
InstallIPythonKernelSpecApp.launch_instance(argv=["--prefix", path])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.21.1/pyproject.toml
new/ipykernel-6.22.0/pyproject.toml
--- old/ipykernel-6.21.1/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.22.0/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
@@ -6,7 +6,7 @@
name = "ipykernel"
dynamic = ["version"]
authors = [{name = "IPython Development Team", email =
"[email protected]"}]
-license = {file = "COPYING.md"}
+license = {file = "LICENSE"}
readme = "README.md"
description = "IPython Kernel for Jupyter"
keywords = ["Interactive", "Interpreter", "Shell", "Web"]
@@ -36,7 +36,7 @@
"tornado>=6.1",
"matplotlib-inline>=0.1",
'appnope;platform_system=="Darwin"',
- "pyzmq>=17",
+ "pyzmq>=20",
"psutil",
"packaging",
]
@@ -116,7 +116,7 @@
test = "mypy --install-types --non-interactive {args:.}"
[tool.hatch.envs.lint]
-dependencies = ["black==22.12.0", "mdformat>0.7", "ruff==0.0.236"]
+dependencies = ["black==23.1.0", "mdformat>0.7", "ruff==0.0.254"]
detached = true
[tool.hatch.envs.lint.scripts]
style = [
@@ -227,7 +227,6 @@
"N",
"PLC",
"PLE",
- "PLR",
"PLW",
"Q",
"RUF",
@@ -274,6 +273,8 @@
"N801",
# SIM105 Use `contextlib.suppress(ValueError)` instead of try-except-pass
"SIM105",
+ # S110 `try`-`except`-`pass` detected
+ "S110",
]
unfixable = [
# Don't touch print statements
@@ -293,7 +294,9 @@
# F841 Local variable `t` is assigned to but never used
# EM101 Exception must not use a string literal, assign to variable first
# PLR2004 Magic value used in comparison
-"ipykernel/tests/*" = ["B011", "F841", "C408", "E402", "T201", "B007", "N802",
"F841", "EM101", "EM102", "EM103", "PLR2004"]
+# PLW0603 Using the global statement to update ...
+# PLW2901 `for` loop variable ...
+"ipykernel/tests/*" = ["B011", "F841", "C408", "E402", "T201", "B007", "N802",
"F841", "EM101", "EM102", "EM103", "PLR2004", "PLW0603", "PLW2901"]
[tool.interrogate]
ignore-init-module=true