Hello community,
here is the log from the commit of package python-jupyter-protocol for
openSUSE:Factory checked in at 2020-01-16 18:20:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter-protocol (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter-protocol.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter-protocol"
Thu Jan 16 18:20:57 2020 rev:3 rq:764777 version:0.2.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-jupyter-protocol/python-jupyter-protocol.changes
2019-11-29 16:02:43.224810265 +0100
+++
/work/SRC/openSUSE:Factory/.python-jupyter-protocol.new.26092/python-jupyter-protocol.changes
2020-01-16 18:20:57.872965435 +0100
@@ -1,0 +2,6 @@
+Wed Jan 15 15:32:26 UTC 2020 - Todd R <[email protected]>
+
+- Update to 0.2.0
+ * Rework everything to use "protocol" instead of "client"
+
+-------------------------------------------------------------------
Old:
----
jupyter_protocol-0.1.1.tar.gz
New:
----
jupyter_protocol-0.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter-protocol.spec ++++++
--- /var/tmp/diff_new_pack.dsAXyZ/_old 2020-01-16 18:20:58.476965777 +0100
+++ /var/tmp/diff_new_pack.dsAXyZ/_new 2020-01-16 18:20:58.476965777 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-jupyter_protocol
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-jupyter-protocol
-Version: 0.1.1
+Version: 0.2.0
Release: 0
License: BSD-3-Clause
Summary: Jupyter protocol implementation
++++++ jupyter_protocol-0.1.1.tar.gz -> jupyter_protocol-0.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/PKG-INFO
new/jupyter_protocol-0.2.0/PKG-INFO
--- old/jupyter_protocol-0.1.1/PKG-INFO 2018-06-10 11:33:52.000000000 +0200
+++ new/jupyter_protocol-0.2.0/PKG-INFO 2019-12-01 23:00:35.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: jupyter_protocol
-Version: 0.1.1
+Version: 0.2.0
Summary: Jupyter protocol implementation
Home-page: https://jupyter.org
Author: Jupyter Development Team
@@ -14,5 +14,5 @@
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Requires-Python: >=3.4
+Requires-Python: >=3.5
Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/Makefile
new/jupyter_protocol-0.2.0/docs/Makefile
--- old/jupyter_protocol-0.1.1/docs/Makefile 2018-03-31 15:36:26.000000000
+0200
+++ new/jupyter_protocol-0.2.0/docs/Makefile 2019-11-05 17:35:45.000000000
+0100
@@ -87,9 +87,9 @@
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the"
\
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/jupyter_client.qhcp"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/jupyter_protocol.qhcp"
@echo "To view the help file:"
- @echo "# assistant -collectionFile
$(BUILDDIR)/qthelp/jupyter_client.qhc"
+ @echo "# assistant -collectionFile
$(BUILDDIR)/qthelp/jupyter_protocol.qhc"
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@@ -104,8 +104,8 @@
@echo
@echo "Build finished."
@echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/jupyter_client"
- @echo "# ln -s $(BUILDDIR)/devhelp
$$HOME/.local/share/devhelp/jupyter_client"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/jupyter_protocol"
+ @echo "# ln -s $(BUILDDIR)/devhelp
$$HOME/.local/share/devhelp/jupyter_protocol"
@echo "# devhelp"
epub:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/api/client.rst
new/jupyter_protocol-0.2.0/docs/api/client.rst
--- old/jupyter_protocol-0.1.1/docs/api/client.rst 2018-03-31
15:36:26.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/api/client.rst 1970-01-01
01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-client - communicating with kernels
-===================================
-
-.. currentmodule:: jupyter_client
-
-.. seealso::
-
- :doc:`/messaging`
- The Jupyter messaging specification
-
-.. autoclass:: KernelClient
-
- .. automethod:: load_connection_file
-
- .. automethod:: load_connection_info
-
- .. automethod:: start_channels
-
- .. automethod:: execute
-
- .. automethod:: complete
-
- .. automethod:: inspect
-
- .. automethod:: history
-
- .. automethod:: comm_info
-
- .. automethod:: is_complete
-
- .. automethod:: input
-
- .. automethod:: shutdown
-
- .. automethod:: get_shell_msg
-
- .. automethod:: get_iopub_msg
-
- .. automethod:: get_stdin_msg
-
-.. autoclass:: BlockingKernelClient
-
- .. automethod:: execute_interactive
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/api/index.rst
new/jupyter_protocol-0.2.0/docs/api/index.rst
--- old/jupyter_protocol-0.1.1/docs/api/index.rst 2018-03-31
15:36:26.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/api/index.rst 1970-01-01
01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-jupyter_client API
-==================
-
-.. module:: jupyter_client
-
-.. toctree::
- :maxdepth: 2
- :caption: Jupyter API
-
- kernelspec
- manager
- client
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/api/kernelspec.rst
new/jupyter_protocol-0.2.0/docs/api/kernelspec.rst
--- old/jupyter_protocol-0.1.1/docs/api/kernelspec.rst 2018-03-31
15:36:26.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/api/kernelspec.rst 1970-01-01
01:00:00.000000000 +0100
@@ -1,66 +0,0 @@
-kernelspec - discovering kernels
-================================
-
-.. seealso:: :ref:`kernelspecs`
-
-.. module:: jupyter_client.kernelspec
-
-.. class:: KernelSpec
-
- .. attribute:: argv
-
- The list of arguments to start this kernel.
-
- .. attribute:: env
-
- A dictionary of extra environment variables to declare, in addition to
- the current environment variables, when launching this kernel.
-
- .. attribute:: display_name
-
- The name to display for this kernel in UI.
-
- .. attribute:: language
-
- The name of the language the kernel implements, to help with picking
- appropriate kernels when loading notebooks.
-
- .. attribute:: metadata
-
- Additional kernel-specific metadata; clients can use this as needed,
- for instance to aid in kernel selection and filtering.
-
- Metadata added here should be namespaced for the tool reading and
- writing that metadata. Concretely, if you're adding a new field called
- :code:`supported_versions` which your tool recognizes, then you should
- add it as :code:`"mytool": {"supported_versions": [1, 2]}`, **not** as a
- top-level field called :code:`supported_versions`.
-
- .. attribute:: resource_dir
-
- The path to the directory with this kernel's resources, such as icons.
-
- .. automethod:: to_json
-
-.. class:: KernelSpecManager
-
- .. automethod:: find_kernel_specs
-
- .. automethod:: get_all_specs
-
- .. automethod:: get_kernel_spec
-
- .. automethod:: install_kernel_spec
-
-.. exception:: NoSuchKernel
-
- .. attribute:: name
-
- The name of the kernel which was requested.
-
-.. function:: find_kernel_specs
- get_kernel_spec(kernel_name)
- install_kernel_spec(source_dir, kernel_name=None, user=False,
replace=False)
-
- These methods from :class:`KernelSpecManager` are exposed as functions on
the
- module as well; they will use all the default settings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/api/manager.rst
new/jupyter_protocol-0.2.0/docs/api/manager.rst
--- old/jupyter_protocol-0.1.1/docs/api/manager.rst 2018-03-31
15:36:26.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/api/manager.rst 1970-01-01
01:00:00.000000000 +0100
@@ -1,58 +0,0 @@
-manager - starting, stopping, signalling
-========================================
-
-.. currentmodule:: jupyter_client
-
-.. autoclass:: KernelManager
-
- .. attribute:: kernel_name
-
- The name of the kernel to launch (see :ref:`kernelspecs`).
-
- .. automethod:: start_kernel
-
- .. attribute:: kernel
-
- Once the kernel has been started, this is the :class:`subprocess.Popen`
- class for the kernel process.
-
- .. automethod:: is_alive
-
- .. automethod:: interrupt_kernel
-
- .. automethod:: signal_kernel
-
- .. automethod:: client
-
- For the client API, see :mod:`jupyter_client.client`.
-
- .. automethod:: blocking_client
-
- .. automethod:: shutdown_kernel
-
- .. automethod:: restart_kernel
-
-multikernelmanager - controlling multiple kernels
--------------------------------------------------
-
-.. autoclass:: MultiKernelManager
-
- This exposes the same methods as
:class:`~jupyter_client.manager.KernelManager`,
- but their first parameter is a kernel ID, a string identifying the kernel
- instance. Typically these are UUIDs picked by :meth:`start_kernel`
-
- .. automethod:: start_kernel
-
- .. automethod:: list_kernel_ids
-
- .. automethod:: get_kernel
-
- .. automethod:: remove_kernel
-
- .. automethod:: shutdown_all
-
-Utility functions
------------------
-
-.. autofunction:: run_kernel
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/changelog.rst
new/jupyter_protocol-0.2.0/docs/changelog.rst
--- old/jupyter_protocol-0.1.1/docs/changelog.rst 2018-04-01
22:11:47.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/changelog.rst 2019-11-05
17:35:45.000000000 +0100
@@ -1,155 +1,14 @@
.. _changelog:
-=========================
-Changes in Jupyter Client
-=========================
+===========================
+Changes in Jupyter Protocol
+===========================
-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
-===
-
-5.0.1
------
-
-`5.0.1 on GitHub
<https://github.com/jupyter/jupyter_client/milestones/5.0.1>`__
-
-- Update internal protocol version number to 5.1,
- which should have been done in 5.0.0.
-
-5.0.0
------
-
-`5.0.0 on GitHub <https://github.com/jupyter/jupyter_client/milestones/5.0>`__
-
-New features:
-
-- Implement Jupyter protocol version 5.1.
-- Introduce :command:`jupyter run` command for running scripts with a kernel,
for instance::
-
- jupyter run --kernel python3 myscript.py
-
-- New method :meth:`.BlockingKernelClient.execute_interactive`
- for running code and capturing or redisplaying its output.
-- New ``KernelManager.shutdown_wait_time`` configurable for adjusting the time
- for a kernel manager to wait after politely requesting shutdown
- before it resorts to forceful termination.
-
-Fixes:
-
-- Set sticky bit on connection-file directory to avoid getting cleaned up.
-- :func:`jupyter_client.launcher.launch_kernel` passes through additional
options to the underlying Popen,
- matching :meth:`KernelManager.start_kernel`.
-- Check types of ``buffers`` argument in :meth:`.Session.send`,
- so that TypeErrors are raised immediately,
- rather than in the eventloop.
-
-Changes:
-
-- In kernelspecs, if the executable is the string ``python`` (as opposed to an
absolute path),
- ``sys.executable`` will be used rather than resolving ``python`` on PATH.
- This should enable Python-based kernels to install kernelspecs as part of
wheels.
-- kernelspec names are now validated.
- They should only include ascii letters and numbers, plus period, hyphen, and
underscore.
-
-Backward-incompatible changes:
-
-- :py:class:`.datetime` objects returned in parsed messages are now always
timezone-aware.
- Timestamps in messages without timezone info are interpreted as the local
timezone,
- as this was the behavior in earlier versions.
-
-
-4.4
-===
-
-4.4.0
------
-
-`4.4 on GitHub <https://github.com/jupyter/jupyter_client/milestones/4.4>`__
-
-- Add :meth:`.KernelClient.load_connection_info` on KernelClient, etc. for
loading connection info
- directly from a dict, not just from files.
-- Include parent headers when adapting messages from older protocol
implementations
- (treats parent headers the same as headers).
-- Compatibility fixes in tests for recent changes in ipykernel.
-
-4.3
-===
-
-4.3.0
------
-
-`4.3 on GitHub <https://github.com/jupyter/jupyter_client/milestones/4.3>`__
-
-- Adds ``--sys-prefix`` argument to :command:`jupyter kernelspec install`,
- for better symmetry with :command:`jupyter nbextension install`, etc.
-
-4.2
-===
-
-4.2.2
------
-
-`4.2.2 on GitHub
<https://github.com/jupyter/jupyter_client/milestones/4.2.2>`__
-
-- Another fix for the :func:`start_new_kernel` issue in 4.2.1 affecting
slow-starting kernels.
-
-
-4.2.1
+0.1.0
-----
-`4.2.1 on GitHub
<https://github.com/jupyter/jupyter_client/milestones/4.2.1>`__
-
-- Fix regression in 4.2 causing :func:`start_new_kernel`
- to fail while waiting for kernels to become available.
-
-
-4.2.0
------
-
-`4.2.0 on GitHub <https://github.com/jupyter/jupyter_client/milestones/4.2>`__
-
-- added :command:`jupyter kernelspec remove` for removing kernelspecs
-- allow specifying the environment for kernel processes via the ``env``
argument
-- added ``name`` field to connection files identifying the kernelspec name,
- so that consumers of connection files (alternate frontends) can identify the
kernelspec in use
-- added :meth:`KernelSpecManager.get_all_specs` for getting all kernelspecs
more efficiently
-- various improvements to error messages and documentation
-
-4.1
-===
-
-4.1.0
------
-
-`4.1.0 on GitHub <https://github.com/jupyter/jupyter_client/milestones/4.1>`__
-
-Highlights:
-
-- Setuptools fixes for ``jupyter kernelspec``
-- ``jupyter kernelspec list`` includes paths
-- add :meth:`KernelManager.blocking_client`
-- provisional implementation of ``comm_info`` requests from upcoming 5.1
release of the protocol
+- Initial experimental implementation.
-4.0
-===
-The first release of Jupyter Client as its own package.
+Note: Because the code in this repository originated from jupyter_client you
may
+also want to look at its `changelog history
<https://jupyter-client.readthedocs.io/en/latest/changelog.html>`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/conf.py
new/jupyter_protocol-0.2.0/docs/conf.py
--- old/jupyter_protocol-0.1.1/docs/conf.py 2018-04-01 22:11:47.000000000
+0200
+++ new/jupyter_protocol-0.2.0/docs/conf.py 2019-11-05 17:35:45.000000000
+0100
@@ -1,8 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
-# jupyter_client documentation build configuration file, created by
-# sphinx-quickstart on Tue May 26 15:41:51 2015.
#
# This file is execfile()d with the current directory set to its
# containing dir.
@@ -51,7 +49,7 @@
master_doc = 'index'
# General information about the project.
-project = 'jupyter_client'
+project = 'jupyter_protocol'
copyright = '2015, Jupyter Development Team'
author = 'Jupyter Development Team'
@@ -61,7 +59,7 @@
#
version_ns = {}
here = os.path.dirname(__file__)
-version_py = os.path.join(here, os.pardir, 'jupyter_client', '_version.py')
+version_py = os.path.join(here, os.pardir, 'jupyter_protocol', '_version.py')
with open(version_py) as f:
exec(compile(f.read(), version_py, 'exec'), version_ns)
@@ -211,7 +209,7 @@
#html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
-htmlhelp_basename = 'jupyter_clientdoc'
+htmlhelp_basename = 'jupyter_protocoldoc'
# -- Options for LaTeX output ---------------------------------------------
@@ -233,7 +231,7 @@
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- (master_doc, 'jupyter_client.tex', 'jupyter\\_client Documentation',
+ (master_doc, 'jupyter_protocol.tex', 'jupyter\\_protocol Documentation',
'Jupyter Development Team', 'manual'),
]
@@ -263,7 +261,7 @@
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- (master_doc, 'jupyter_client', 'jupyter_client Documentation',
+ (master_doc, 'jupyter_protocol', 'jupyter_protocol Documentation',
[author], 1)
]
@@ -277,8 +275,8 @@
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- (master_doc, 'jupyter_client', 'jupyter_client Documentation',
- author, 'jupyter_client', 'One line description of project.',
+ (master_doc, 'jupyter_protocol', 'jupyter_protocol Documentation',
+ author, 'jupyter_protocol', 'One line description of project.',
'Miscellaneous'),
]
@@ -296,7 +294,8 @@
# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {'ipython': ('http://ipython.readthedocs.io/en/stable/',
None)}
+intersphinx_mapping = {'ipython': ('http://ipython.readthedocs.io/en/stable/',
None),
+ 'jupyter_kernel_mgmt':
('http://jupyter-kernel-mgmt.readthedocs.io/en/latest/', None)}
# Read The Docs
# on_rtd is whether we are on readthedocs.org, this line of code grabbed from
docs.readthedocs.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/environment.yml
new/jupyter_protocol-0.2.0/docs/environment.yml
--- old/jupyter_protocol-0.1.1/docs/environment.yml 2018-04-01
22:11:47.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/environment.yml 2019-11-05
17:35:45.000000000 +0100
@@ -1,4 +1,4 @@
-name: jup_client
+name: jup_protocol
channels:
- conda-forge
dependencies:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/index.rst
new/jupyter_protocol-0.2.0/docs/index.rst
--- old/jupyter_protocol-0.1.1/docs/index.rst 2018-03-31 15:36:26.000000000
+0200
+++ new/jupyter_protocol-0.2.0/docs/index.rst 2019-11-05 17:35:45.000000000
+0100
@@ -1,15 +1,23 @@
-Jupyter Client |version|
-========================
+Jupyter Protocol |version|
+==========================
-This package provides the Python API for starting, managing and communicating
-with Jupyter kernels.
+This package provides the Python API for message composition relevant to
Jupyter
+kernels. For information related to the launch, communication and lifecycle
+management of Jupyter kernels, please refer to the `Jupyter Kernel Management
+documentation
<https://jupyter-kernel-mgmt.readthedocs.io/en/latest/index.html>`_.
-.. important::
+.. .. important::
This document contains the authoritative description of the
Jupyter messaging protocol. All developers are strongly encouraged to
keep it updated as the implementation evolves, so that we have a single
common reference for all protocol details.
+.. note::
+ The information contained in this documentation also resides in the
+ `Jupyter Client documentation
<https://jupyter-client.readthedocs.io/en/latest/index.html>`_.
+ The documentation will be consolidated at a future date. Please consider
+ the Jupyter Client documentation as the authoritative description relative
+ to the messaging protocol until further notice.
.. toctree::
:maxdepth: 2
@@ -23,13 +31,6 @@
kernels
wrapperkernels
- kernel_providers
-
-.. toctree::
- :maxdepth: 2
- :caption: API
-
- api/index
.. toctree::
:maxdepth: 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/kernel_providers.rst
new/jupyter_protocol-0.2.0/docs/kernel_providers.rst
--- old/jupyter_protocol-0.1.1/docs/kernel_providers.rst 2018-03-31
15:36:26.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/kernel_providers.rst 1970-01-01
01:00:00.000000000 +0100
@@ -1,156 +0,0 @@
-================
-Kernel providers
-================
-
-.. note::
- This is a new interface under development, and may still change.
- Not all Jupyter applications use this yet.
- See :ref:`kernelspecs` for the established way of discovering kernel types.
-
-Creating a kernel provider
-==========================
-
-By writing a kernel provider, you can extend how Jupyter applications discover
-and start kernels. For example, you could find kernels in an environment system
-like conda, or kernels on remote systems which you can access.
-
-To write a kernel provider, subclass
-:class:`jupyter_client.discovery.KernelProviderBase`, giving your provider an
ID
-and overriding two methods.
-
-.. class:: MyKernelProvider
-
- .. attribute:: id
-
- A short string identifying this provider. Cannot contain forward slash
- (``/``).
-
- .. method:: find_kernels()
-
- Get the available kernel types this provider knows about.
- Return an iterable of 2-tuples: (name, attributes).
- *name* is a short string identifying the kernel type.
- *attributes* is a dictionary with information to allow selecting a
kernel.
-
- .. method:: make_manager(name)
-
- Prepare and return a :class:`~jupyter_client.KernelManager` instance
- ready to start a new kernel instance of the type identified by *name*.
- The input will be one of the names given by :meth:`find_kernels`.
-
-For example, imagine we want to tell Jupyter about kernels for a new language
-called *oblong*::
-
- # oblong_provider.py
- from jupyter_client.discovery import KernelProviderBase
- from jupyter_client import KernelManager
- from shutil import which
-
- class OblongKernelProvider(KernelProviderBase):
- id = 'oblong'
-
- def find_kernels(self):
- if not which('oblong-kernel'):
- return # Check it's available
-
- # Two variants - for a real kernel, these could be something like
- # different conda environments.
- yield 'standard', {
- 'display_name': 'Oblong (standard)',
- 'language': {'name': 'oblong'},
- 'argv': ['oblong-kernel'],
- }
- yield 'rounded', {
- 'display_name': 'Oblong (rounded)',
- 'language': {'name': 'oblong'},
- 'argv': ['oblong-kernel'],
- }
-
- def make_manager(self, name):
- if name == 'standard':
- return KernelManager(kernel_cmd=['oblong-kernel'],
- extra_env={'ROUNDED': '0'})
- elif name == 'rounded':
- return KernelManager(kernel_cmd=['oblong-kernel'],
- extra_env={'ROUNDED': '1'})
- else:
- raise ValueError("Unknown kernel %s" % name)
-
-You would then register this with an *entry point*. In your ``setup.py``, put
-something like this::
-
- setup(...
- entry_points = {
- 'jupyter_client.kernel_providers' : [
- # The name before the '=' should match the id attribute
- 'oblong = oblong_provider:OblongKernelProvider',
- ]
- })
-
-Finding kernel types
-====================
-
-To find and start kernels in client code, use
-:class:`jupyter_client.discovery.KernelFinder`. This uses multiple kernel
-providers to find available kernels. Like a kernel provider, it has methods
-``find_kernels`` and ``make_manager``. The kernel names it works
-with have the provider ID as a prefix, e.g. ``oblong/rounded`` (from the
example
-above).
-
-::
-
- from jupyter_client.discovery import KernelFinder
- kf = KernelFinder.from_entrypoints()
-
- ## Find available kernel types
- for name, attributes in kf.find_kernels():
- print(name, ':', attributes['display_name'])
- # oblong/standard : Oblong (standard)
- # oblong/rounded : Oblong(rounded)
- # ...
-
- ## Start a kernel by name
- manager = kf.make_manager('oblong/standard')
- manager.start_kernel()
-
-.. module:: jupyter_client.discovery
-
-.. autoclass:: KernelFinder
-
- .. automethod:: from_entrypoints
-
- .. automethod:: find_kernels
-
- .. automethod:: make_manager
-
-Kernel providers included in ``jupyter_client``
-===============================================
-
-``jupyter_client`` includes two kernel providers:
-
-.. autoclass:: KernelSpecProvider
-
- .. seealso:: :ref:`kernelspecs`
-
-.. autoclass:: IPykernelProvider
-
-Glossary
-========
-
-Kernel instance
- A running kernel, a process which can accept ZMQ connections from frontends.
- Its state includes a namespace and an execution counter.
-
-Kernel type
- The software to run a kernel instance, along with the context in which a
- kernel starts. One kernel type allows starting multiple, initially similar
- kernel instances. For instance, one kernel type may be associated with one
- conda environment containing ``ipykernel``. The same kernel software in
- another environment would be a different kernel type. Another software
package
- for a kernel, such as ``IRkernel``, would also be a different kernel type.
-
-Kernel provider
- A Python class to discover kernel types and allow a client to start instances
- of those kernel types. For instance, one kernel provider might find conda
- environments containing ``ipykernel`` and allow starting kernel instances in
- these environments.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/kernels.rst
new/jupyter_protocol-0.2.0/docs/kernels.rst
--- old/jupyter_protocol-0.1.1/docs/kernels.rst 2018-03-31 15:36:26.000000000
+0200
+++ new/jupyter_protocol-0.2.0/docs/kernels.rst 2019-11-05 17:35:45.000000000
+0100
@@ -20,6 +20,8 @@
work initially, but the people using your kernel might be more likely to
contribute to it if it's in the language they know.
+.. _connection_files:
+
Connection files
================
@@ -81,88 +83,13 @@
`simple_kernel <https://github.com/dsblank/simple_kernel>`_
A simple example implementation of the kernel machinery in Python
-
.. _kernelspecs:
Kernel specs
============
-A kernel identifies itself to IPython by creating a directory, the name of
which
-is used as an identifier for the kernel. These may be created in a number of
-locations:
-
-+--------+--------------------------------------------+-----------------------------------+
-| | Unix | Windows
|
-+========+============================================+===================================+
-| System | ``/usr/share/jupyter/kernels`` |
``%PROGRAMDATA%\jupyter\kernels`` |
-| | |
|
-| | ``/usr/local/share/jupyter/kernels`` |
|
-+--------+--------------------------------------------+-----------------------------------+
-| Env | ``{sys.prefix}/share/jupyter/kernels``
|
-+--------+--------------------------------------------+-----------------------------------+
-| User | ``~/.local/share/jupyter/kernels`` (Linux) |
``%APPDATA%\jupyter\kernels`` |
-| | |
|
-| | ``~/Library/Jupyter/kernels`` (Mac) |
|
-+--------+--------------------------------------------+-----------------------------------+
-
-The user location takes priority over the system locations, and the case of the
-names is ignored, so selecting kernels works the same way whether or not the
-filesystem is case sensitive.
-Since kernelspecs show up in URLs and other places,
-a kernelspec is required to have a simple name, only containing ASCII letters,
ASCII numbers, and the simple separators: ``-`` hyphen, ``.`` period, ``_``
underscore.
-
-Other locations may also be searched if the :envvar:`JUPYTER_PATH` environment
-variable is set.
-
-Inside the kernel directory, three types of files are presently used:
-``kernel.json``, ``kernel.js``, and logo image files. Currently, no other
-files are used, but this may change in the future.
-
-Inside the directory, the most important file is *kernel.json*. This should be
a
-JSON serialised dictionary containing the following keys and values:
-
-- **argv**: A list of command line arguments used to start the kernel. The text
- ``{connection_file}`` in any argument will be replaced with the path to the
- connection file.
-- **display_name**: The kernel's name as it should be displayed in the UI.
- Unlike the kernel name used in the API, this can contain arbitrary unicode
- characters.
-- **language**: The name of the language of the kernel.
- When loading notebooks, if no matching kernelspec key (may differ across
machines)
- is found, a kernel with a matching `language` will be used.
- This allows a notebook written on any Python or Julia kernel to be properly
associated
- with the user's Python or Julia kernel, even if they aren't listed under the
same name as the author's.
-- **interrupt_mode** (optional): May be either ``signal`` or ``message`` and
- specifies how a client is supposed to interrupt cell execution on this
kernel,
- either by sending an interrupt ``signal`` via the operating system's
- signalling facilities (e.g. `SIGINT` on POSIX systems), or by sending an
- ``interrupt_request`` message on the control channel (see
- :ref:`msging_interrupt`). If this is not specified
- the client will default to ``signal`` mode.
-- **env** (optional): A dictionary of environment variables to set for the
kernel.
- These will be added to the current environment variables before the kernel is
- started.
-- **metadata** (optional): A dictionary of additional attributes about this
- kernel; used by clients to aid clients in kernel selection. Metadata added
- here should be namespaced for the tool reading and writing that metadata.
-
-For example, the kernel.json file for IPython looks like this::
-
- {
- "argv": ["python3", "-m", "IPython.kernel",
- "-f", "{connection_file}"],
- "display_name": "Python 3",
- "language": "python"
- }
-
-To see the available kernel specs, run::
-
- jupyter kernelspec list
-
-To start the terminal console or the Qt console with a specific kernel::
-
- jupyter console --kernel bash
- jupyter qtconsole --kernel bash
-
-The notebook offers you the available kernels in a dropdown menu from the 'New'
-button.
+A kernel typically identifies itself to an IPython-compatible application by
creating a directory,
+the name of which is used as an identifier for the kernel. The contents of
this directory
+is what is referred to as the *kernel specfication*. For more information on
kernel specs
+and other ways kernels are identified, please refer to the `Jupyter Kernel
Management documentation
+<https://jupyter-kernel-mgmt.readthedocs.io/en/latest/index.html>`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/make.bat
new/jupyter_protocol-0.2.0/docs/make.bat
--- old/jupyter_protocol-0.1.1/docs/make.bat 2018-03-31 15:36:26.000000000
+0200
+++ new/jupyter_protocol-0.2.0/docs/make.bat 2019-11-05 17:35:45.000000000
+0100
@@ -127,9 +127,9 @@
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
- echo.^> qcollectiongenerator %BUILDDIR%\qthelp\jupyter_client.qhcp
+ echo.^> qcollectiongenerator %BUILDDIR%\qthelp\jupyter_protocol.qhcp
echo.To view the help file:
- echo.^> assistant -collectionFile %BUILDDIR%\qthelp\jupyter_client.ghc
+ echo.^> assistant -collectionFile %BUILDDIR%\qthelp\jupyter_protocol.ghc
goto end
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/messaging.rst
new/jupyter_protocol-0.2.0/docs/messaging.rst
--- old/jupyter_protocol-0.1.1/docs/messaging.rst 2018-03-31
15:36:26.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/messaging.rst 2019-11-05
17:35:45.000000000 +0100
@@ -25,7 +25,7 @@
.. note::
*New in* and *Changed in* messages in this document refer to versions of the
- **Jupyter message specification**, not versions of :mod:`jupyter_client`.
+ **Jupyter message specification**, not versions of :mod:`jupyter_protocol`.
Introduction
============
@@ -163,13 +163,13 @@
This message format exists at a high level,
but does not describe the actual *implementation* at the wire level in zeromq.
-The canonical implementation of the message spec is our
:class:`~jupyter_client.session.Session` class.
+The canonical implementation of the message spec is our
:class:`~jupyter_protocol.session.Session` class.
.. note::
This section should only be relevant to non-Python consumers of the
protocol.
Python consumers should simply import and the use implementation of the
wire
- protocol in :class:`jupyter_client.session.Session`.
+ protocol in :class:`jupyter_protocol.session.Session`.
Every message is serialized to a sequence of at least six blobs of bytes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/docs/wrapperkernels.rst
new/jupyter_protocol-0.2.0/docs/wrapperkernels.rst
--- old/jupyter_protocol-0.1.1/docs/wrapperkernels.rst 2018-03-31
15:36:26.000000000 +0200
+++ new/jupyter_protocol-0.2.0/docs/wrapperkernels.rst 2019-11-05
17:35:45.000000000 +0100
@@ -69,7 +69,7 @@
from ipykernel.kernelapp import IPKernelApp
IPKernelApp.launch_instance(kernel_class=MyKernel)
-Now create a `JSON kernel spec file
<https://jupyter-client.readthedocs.io/en/latest/kernels.html#kernel-specs>`_
and install it using ``jupyter kernelspec install </path/to/kernel>``. Place
your kernel module anywhere Python can import it (try current directory for
testing). Finally, you can run your kernel using ``jupyter console --kernel
<mykernelname>``. Note that ``<mykernelname>`` in the below example is ``echo``.
+Now create a `JSON kernel spec file
<https://jupyter-kernel-mgmt.readthedocs.io/en/latest/kernels.html#kernel-specs>`_
and install it using ``jupyter kernelspec install </path/to/kernel>``. Place
your kernel module anywhere Python can import it (try current directory for
testing). Finally, you can run your kernel using ``jupyter console --kernel
<mykernelname>``. Note that ``<mykernelname>`` in the below example is ``echo``.
Example
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/jupyter_protocol/_version.py
new/jupyter_protocol-0.2.0/jupyter_protocol/_version.py
--- old/jupyter_protocol-0.1.1/jupyter_protocol/_version.py 2018-06-10
11:33:02.000000000 +0200
+++ new/jupyter_protocol-0.2.0/jupyter_protocol/_version.py 2019-12-01
22:55:35.000000000 +0100
@@ -1,4 +1,4 @@
-version_info = (0, 1, 1)
+version_info = (0, 2, 0)
__version__ = '.'.join(map(str, version_info))
protocol_version_info = (5, 3)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/jupyter_protocol/adapter.py
new/jupyter_protocol-0.2.0/jupyter_protocol/adapter.py
--- old/jupyter_protocol-0.1.1/jupyter_protocol/adapter.py 2018-04-18
20:54:17.000000000 +0200
+++ new/jupyter_protocol-0.2.0/jupyter_protocol/adapter.py 2019-11-05
17:35:45.000000000 +0100
@@ -6,7 +6,7 @@
import re
import json
-from jupyter_client import protocol_version_info
+from jupyter_protocol import protocol_version_info
def code_to_line(code, cursor_pos):
"""Turn a multiline code block and cursor position into a single line
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/jupyter_protocol/session.py
new/jupyter_protocol-0.2.0/jupyter_protocol/session.py
--- old/jupyter_protocol-0.1.1/jupyter_protocol/session.py 2018-05-08
09:55:11.000000000 +0200
+++ new/jupyter_protocol-0.2.0/jupyter_protocol/session.py 2019-11-05
17:35:45.000000000 +0100
@@ -14,10 +14,10 @@
from zmq.utils import jsonapi
-from jupyter_client.jsonutil import extract_dates, date_default
+from jupyter_protocol.jsonutil import extract_dates, date_default
from ipython_genutils.py3compat import (str_to_bytes, unicode_type,)
-from jupyter_client.adapter import adapt
+from jupyter_protocol.adapter import adapt
from traitlets.log import get_logger
from .messages import Message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_protocol-0.1.1/jupyter_protocol/tests/test_public_api.py
new/jupyter_protocol-0.2.0/jupyter_protocol/tests/test_public_api.py
--- old/jupyter_protocol-0.1.1/jupyter_protocol/tests/test_public_api.py
2018-04-18 20:52:09.000000000 +0200
+++ new/jupyter_protocol-0.2.0/jupyter_protocol/tests/test_public_api.py
2019-11-05 17:35:45.000000000 +0100
@@ -1,4 +1,4 @@
-"""Test the jupyter_client public API
+"""Test the jupyter_protocol public API
"""
# Copyright (c) Jupyter Development Team.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_protocol-0.1.1/jupyter_protocol/tests/utils.py
new/jupyter_protocol-0.2.0/jupyter_protocol/tests/utils.py
--- old/jupyter_protocol-0.1.1/jupyter_protocol/tests/utils.py 2018-04-01
22:11:47.000000000 +0200
+++ new/jupyter_protocol-0.2.0/jupyter_protocol/tests/utils.py 2019-11-05
17:35:45.000000000 +0100
@@ -1,4 +1,4 @@
-"""Testing utils for jupyter_client tests
+"""Testing utils for jupyter_protocol tests
"""
import os
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_protocol-0.1.1/jupyter_protocol.egg-info/SOURCES.txt
new/jupyter_protocol-0.2.0/jupyter_protocol.egg-info/SOURCES.txt
--- old/jupyter_protocol-0.1.1/jupyter_protocol.egg-info/SOURCES.txt
2018-06-10 11:33:52.000000000 +0200
+++ new/jupyter_protocol-0.2.0/jupyter_protocol.egg-info/SOURCES.txt
2019-12-01 23:00:35.000000000 +0100
@@ -9,15 +9,10 @@
docs/conf.py
docs/environment.yml
docs/index.rst
-docs/kernel_providers.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_protocol/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_protocol-0.1.1/setup.py
new/jupyter_protocol-0.2.0/setup.py
--- old/jupyter_protocol-0.1.1/setup.py 2018-05-08 09:46:47.000000000 +0200
+++ new/jupyter_protocol-0.2.0/setup.py 2019-12-01 22:59:07.000000000 +0100
@@ -15,8 +15,8 @@
from setuptools.command.bdist_egg import bdist_egg
v = sys.version_info
-if v[:2] < (3, 4):
- error = "ERROR: %s requires Python version 3.4 or above." % name
+if v[:2] < (3, 5):
+ error = "ERROR: %s requires Python version 3.5 or above." % name
print(error, file=sys.stderr)
sys.exit(1)
@@ -69,7 +69,7 @@
extras_require = {
'test': ['ipykernel', 'ipython', 'mock', 'pytest'],
},
- python_requires = ">=3.4",
+ python_requires = ">=3.5",
cmdclass = {
'bdist_egg': bdist_egg if 'bdist_egg' in sys.argv else
bdist_egg_disabled,
},