py-jupyter_client: updated to 7.1.2

7.1.2

Bugs fixed

- Await `kernel.ready` in `_async_shutdown_kernel`

7.1.1

Enhancements made

- Further improvements to pending kernels managment

Maintenance and upkeep improvements

- Test against all kernels in jupyter kernel test and clean up CI
- Replace master with main

Documentation improvements

- [DOC] improve kernel provisioner doc
- add changelog for message spec


7.1.0

Enhancements made

- Add support for pending kernels

Bugs fixed

- Improve restarter logic
- Set sticky bit only on the directory

Maintenance and upkeep improvements

- Enforce labels on PRs


7.0.6

Bugs fixed

- Fallback to the old ipykernel "json_clean" if we are not able to serialize a JSON message

Other merged PRs

- Add test for serializing bytes


7.0.5

Bugs fixed

- avoid use of deprecated zmq.utils.jsonapi

Maintenance and upkeep improvements

- Use logger.warning instead of deprecated warn method


7.0.4

Bugs fixed

- Fix json_default so that it's closer to what ipykernel had before
- Clean up the pending task
- fix kernel can only restart once issue
- Prevent failure if kernel is not found when shutting it down


7.0.3

Bugs fixed

- Address missing `local-provisioner` scenario
- use `load_connection_info(info)` when constructing a blocking client


7.0.2

Bugs fixed

- Don't set event loop policy on Windows at import time

Documentation improvements

- Improve migration guide


7.0.1

Merged PRs

- Use formal method names when called internally


7.0.0

Summary

The 7.0 release brings a major feature in [Kernel Provisioners](https://github.com/jupyter/jupyter_client/blob/master/docs/provisioning.rst), which enable the ability for third parties to manage the lifecycle of a kernel's runtime environment.

Being a major release, there are some backward incompatible changes. Please see the [migration guide](https://jupyter-client.readthedocs.io/en/latest/migration.html) for further details.

Enhancements made

- Kernel Provisioning - initial implementation

Bugs fixed

- Fix up some async method aliases in KernelManager
- Support `answer_yes` when removing kernel specs
- Include process ID in message ID
- Fix qtconsole issues

Maintenance and upkeep improvements

- Added debugger key in `kernel_info_reply`
- Prepare for use with Jupyter Releaser
- Force install `jupyter_client` master
- Fix project name
- Rename trait to `allowed_kernelspecs`
- Remove block parameter from `get_msg()`
- Only import `nest_asyncio` locally
- Use a default serializer that is not only for date types
- Updated `debug_info_response`
- Do not block on exit
- Update test kernel with native coroutine, remove `async_generator` dependency
- `setup.py` and CI improvements
- Test downstream projects
- Remove deprecations in kernel manager
- Add `block=True` back to `get_msg()`
- Pin `python>=3.6.1`
- Use `pre-commit`
- Attempt CI with `ipykernel` 6.0 prerelease
- Make `KernelManager` subclass tests DRY
- Add tests to ensure MultiKernelManager subclass methods are called
- Add type annotations, refactor sync/async

Documentation improvements

- Create migration guide
- Update changelog for 7.0.0rc0
- Added documentation for `richInspectVariables` request
- Change to `edit_magic` payload
- Added missing documentation for the inspectVariables request and resp…
- Add status field to other replies in documentation
This commit is contained in:
adam 2022-01-31 17:59:00 +00:00
parent 3dbc3f2b80
commit d714f9e139
4 changed files with 33 additions and 60 deletions

View file

@ -1,8 +1,7 @@
# $NetBSD: Makefile,v 1.24 2022/01/05 15:41:05 wiz Exp $
# $NetBSD: Makefile,v 1.25 2022/01/31 17:59:00 adam Exp $
DISTNAME= jupyter_client-6.1.12
DISTNAME= jupyter_client-7.1.2
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
PKGREVISION= 3
CATEGORIES= devel python
MASTER_SITES= ${MASTER_SITE_PYPI:=j/jupyter_client/}
@ -11,12 +10,13 @@ HOMEPAGE= https://jupyter-client.readthedocs.io/
COMMENT= Jupyter protocol implementation and client libraries
LICENSE= modified-bsd
DEPENDS+= ${PYPKGPREFIX}-entrypoints-[0-9]*:../../devel/py-entrypoints
DEPENDS+= ${PYPKGPREFIX}-dateutil>=2.1:../../time/py-dateutil
DEPENDS+= ${PYPKGPREFIX}-jupyter_core>=4.6.0:../../devel/py-jupyter_core
DEPENDS+= ${PYPKGPREFIX}-nest-asyncio>=1.5:../../devel/py-nest-asyncio
DEPENDS+= ${PYPKGPREFIX}-tornado>=4.1:../../www/py-tornado
DEPENDS+= ${PYPKGPREFIX}-traitlets>=4.1.0:../../devel/py-traitlets
DEPENDS+= ${PYPKGPREFIX}-zmq>=13.0.0:../../net/py-zmq
TEST_DEPENDS+= ${PYPKGPREFIX}-async_generator-[0-9]*:../../devel/py-async_generator
TEST_DEPENDS+= ${PYPKGPREFIX}-ipykernel-[0-9]*:../../devel/py-ipykernel
TEST_DEPENDS+= ${PYPKGPREFIX}-ipython-[0-9]*:../../devel/py-ipython
TEST_DEPENDS+= ${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.9 2021/06/10 18:46:05 adam Exp $
@comment $NetBSD: PLIST,v 1.10 2022/01/31 17:59:00 adam Exp $
bin/jupyter-kernel-${PYVERSSUFFIX}
bin/jupyter-kernelspec-${PYVERSSUFFIX}
bin/jupyter-run-${PYVERSSUFFIX}
@ -20,18 +20,12 @@ ${PYSITELIB}/jupyter_client/adapter.pyo
${PYSITELIB}/jupyter_client/asynchronous/__init__.py
${PYSITELIB}/jupyter_client/asynchronous/__init__.pyc
${PYSITELIB}/jupyter_client/asynchronous/__init__.pyo
${PYSITELIB}/jupyter_client/asynchronous/channels.py
${PYSITELIB}/jupyter_client/asynchronous/channels.pyc
${PYSITELIB}/jupyter_client/asynchronous/channels.pyo
${PYSITELIB}/jupyter_client/asynchronous/client.py
${PYSITELIB}/jupyter_client/asynchronous/client.pyc
${PYSITELIB}/jupyter_client/asynchronous/client.pyo
${PYSITELIB}/jupyter_client/blocking/__init__.py
${PYSITELIB}/jupyter_client/blocking/__init__.pyc
${PYSITELIB}/jupyter_client/blocking/__init__.pyo
${PYSITELIB}/jupyter_client/blocking/channels.py
${PYSITELIB}/jupyter_client/blocking/channels.pyc
${PYSITELIB}/jupyter_client/blocking/channels.pyo
${PYSITELIB}/jupyter_client/blocking/client.py
${PYSITELIB}/jupyter_client/blocking/client.pyc
${PYSITELIB}/jupyter_client/blocking/client.pyo
@ -89,6 +83,18 @@ ${PYSITELIB}/jupyter_client/managerabc.pyo
${PYSITELIB}/jupyter_client/multikernelmanager.py
${PYSITELIB}/jupyter_client/multikernelmanager.pyc
${PYSITELIB}/jupyter_client/multikernelmanager.pyo
${PYSITELIB}/jupyter_client/provisioning/__init__.py
${PYSITELIB}/jupyter_client/provisioning/__init__.pyc
${PYSITELIB}/jupyter_client/provisioning/__init__.pyo
${PYSITELIB}/jupyter_client/provisioning/factory.py
${PYSITELIB}/jupyter_client/provisioning/factory.pyc
${PYSITELIB}/jupyter_client/provisioning/factory.pyo
${PYSITELIB}/jupyter_client/provisioning/local_provisioner.py
${PYSITELIB}/jupyter_client/provisioning/local_provisioner.pyc
${PYSITELIB}/jupyter_client/provisioning/local_provisioner.pyo
${PYSITELIB}/jupyter_client/provisioning/provisioner_base.py
${PYSITELIB}/jupyter_client/provisioning/provisioner_base.pyc
${PYSITELIB}/jupyter_client/provisioning/provisioner_base.pyo
${PYSITELIB}/jupyter_client/restarter.py
${PYSITELIB}/jupyter_client/restarter.pyc
${PYSITELIB}/jupyter_client/restarter.pyo
@ -113,6 +119,9 @@ ${PYSITELIB}/jupyter_client/tests/__init__.pyo
${PYSITELIB}/jupyter_client/tests/conftest.py
${PYSITELIB}/jupyter_client/tests/conftest.pyc
${PYSITELIB}/jupyter_client/tests/conftest.pyo
${PYSITELIB}/jupyter_client/tests/problemkernel.py
${PYSITELIB}/jupyter_client/tests/problemkernel.pyc
${PYSITELIB}/jupyter_client/tests/problemkernel.pyo
${PYSITELIB}/jupyter_client/tests/signalkernel.py
${PYSITELIB}/jupyter_client/tests/signalkernel.pyc
${PYSITELIB}/jupyter_client/tests/signalkernel.pyo
@ -146,15 +155,24 @@ ${PYSITELIB}/jupyter_client/tests/test_manager.pyo
${PYSITELIB}/jupyter_client/tests/test_multikernelmanager.py
${PYSITELIB}/jupyter_client/tests/test_multikernelmanager.pyc
${PYSITELIB}/jupyter_client/tests/test_multikernelmanager.pyo
${PYSITELIB}/jupyter_client/tests/test_provisioning.py
${PYSITELIB}/jupyter_client/tests/test_provisioning.pyc
${PYSITELIB}/jupyter_client/tests/test_provisioning.pyo
${PYSITELIB}/jupyter_client/tests/test_public_api.py
${PYSITELIB}/jupyter_client/tests/test_public_api.pyc
${PYSITELIB}/jupyter_client/tests/test_public_api.pyo
${PYSITELIB}/jupyter_client/tests/test_restarter.py
${PYSITELIB}/jupyter_client/tests/test_restarter.pyc
${PYSITELIB}/jupyter_client/tests/test_restarter.pyo
${PYSITELIB}/jupyter_client/tests/test_session.py
${PYSITELIB}/jupyter_client/tests/test_session.pyc
${PYSITELIB}/jupyter_client/tests/test_session.pyo
${PYSITELIB}/jupyter_client/tests/test_ssh.py
${PYSITELIB}/jupyter_client/tests/test_ssh.pyc
${PYSITELIB}/jupyter_client/tests/test_ssh.pyo
${PYSITELIB}/jupyter_client/tests/test_utils.py
${PYSITELIB}/jupyter_client/tests/test_utils.pyc
${PYSITELIB}/jupyter_client/tests/test_utils.pyo
${PYSITELIB}/jupyter_client/tests/utils.py
${PYSITELIB}/jupyter_client/tests/utils.pyc
${PYSITELIB}/jupyter_client/tests/utils.pyo

View file

@ -1,6 +1,5 @@
$NetBSD: distinfo,v 1.18 2021/10/26 10:18:37 nia Exp $
$NetBSD: distinfo,v 1.19 2022/01/31 17:59:00 adam Exp $
BLAKE2s (jupyter_client-6.1.12.tar.gz) = 4aa32e40ed2133631a42c41e333de28f52a99ea2cf0734347cfc1915c401d4ba
SHA512 (jupyter_client-6.1.12.tar.gz) = f31ff1a24b264c32d35d07491785e1d77935cdb463243e90e4aadcb0a093a074cdce75f01662591766588f39b146077639ca697f71157309dc92f12ae04d5cdd
Size (jupyter_client-6.1.12.tar.gz) = 301499 bytes
SHA1 (patch-jupyter__client_connect.py) = 0fd1aeeff32eb89d270324aada38f91d5decefb6
BLAKE2s (jupyter_client-7.1.2.tar.gz) = 10de52f235e072a6fb6d3ffa1befccc4b33bf8964b83ae9d8274a7aa7ae9cf65
SHA512 (jupyter_client-7.1.2.tar.gz) = 7baadc7d508c25ea588d0d7a6da8eb5a28fe4dbce32c9dfa1f9b2b82c7c3d7ae8c034cc03414b3eafec620931bd760c0844421197c01a3d25597af18f6e60060
Size (jupyter_client-7.1.2.tar.gz) = 326163 bytes

View file

@ -1,44 +0,0 @@
$NetBSD: patch-jupyter__client_connect.py,v 1.1 2021/10/09 23:20:24 gutteridge Exp $
Set sticky bit only on the directory.
https://github.com/jupyter/jupyter_client/pull/711/
--- jupyter_client/connect.py.orig 2021-03-14 00:34:45.000000000 +0000
+++ jupyter_client/connect.py
@@ -137,31 +137,20 @@ def write_connection_file(fname=None, sh
f.write(json.dumps(cfg, indent=2))
if hasattr(stat, 'S_ISVTX'):
- # set the sticky bit on the file and its parent directory
- # to avoid periodic cleanup
- paths = [fname]
+ # set the sticky bit on the parent directory of the file
+ # to ensure only owner can remove it
runtime_dir = os.path.dirname(fname)
if runtime_dir:
- paths.append(runtime_dir)
- for path in paths:
- permissions = os.stat(path).st_mode
+ permissions = os.stat(runtime_dir).st_mode
new_permissions = permissions | stat.S_ISVTX
if new_permissions != permissions:
try:
- os.chmod(path, new_permissions)
+ os.chmod(runtime_dir, new_permissions)
except OSError as e:
- if e.errno == errno.EPERM and path == runtime_dir:
+ if e.errno == errno.EPERM:
# suppress permission errors setting sticky bit on runtime_dir,
# which we may not own.
pass
- else:
- # failed to set sticky bit, probably not a big deal
- warnings.warn(
- "Failed to set sticky bit on %r: %s"
- "\nProbably not a big deal, but runtime files may be cleaned up periodically." % (path, e),
- RuntimeWarning,
- )
-
return fname, cfg