Metadata-Version: 2.4
Name: jupyter-kernel-gateway
Version: 3.0.1
Summary: A web server for spawning and communicating with Jupyter kernels
Project-URL: Homepage, http://github.com/jupyter-incubator/kernel_gateway
Author-email: Jupyter Development Team <jupyter@googlegroups.com>
License: # 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) 2001-2015, IPython Development Team
        - Copyright (c) 2015-, Jupyter 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 Jupyter 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 Jupyter Development Team
        
        The Jupyter Development Team is the set of all contributors to the Jupyter project.
        This includes all of the Jupyter Subprojects, which are the different repositories
        under the [jupyter](https://github.com/jupyter/) GitHub organization.
        
        The core team that coordinates development on GitHub can be found here:
        https://github.com/jupyter/.
        
        ## Our copyright policy
        
        Jupyter uses a shared copyright model. Each contributor maintains copyright
        over their contributions to Jupyter. But, it is important to note that these
        contributions are typically only changes to the repositories. Thus, the Jupyter
        source code, in its entirety is not the copyright of any single person or
        institution.  Instead, it is the collective copyright of the entire Jupyter
        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 Jupyter 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) Jupyter Development Team.
        # Distributed under the terms of the Modified BSD License.
        ```
License-File: LICENSE.md
Keywords: Cloud,Interactive,Interpreter,Kernel,Web
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.8
Requires-Dist: jupyter-client>=8.6
Requires-Dist: jupyter-core>=5.7
Requires-Dist: jupyter-server>=2.12
Requires-Dist: requests>=2.31
Requires-Dist: tornado>=6.4
Requires-Dist: traitlets>=5.14.1
Provides-Extra: docs
Requires-Dist: myst-parser; extra == 'docs'
Requires-Dist: sphinx; extra == 'docs'
Requires-Dist: sphinx-rtd-theme; extra == 'docs'
Provides-Extra: test
Requires-Dist: coverage; extra == 'test'
Requires-Dist: ipykernel; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-jupyter; extra == 'test'
Requires-Dist: pytest-timeout; extra == 'test'
Description-Content-Type: text/markdown

# Jupyter Kernel Gateway

[![Google Group](https://img.shields.io/badge/-Google%20Group-lightgrey.svg)](https://groups.google.com/forum/#!forum/jupyter)
[![PyPI version](https://badge.fury.io/py/jupyter_kernel_gateway.svg)](https://badge.fury.io/py/jupyter_kernel_gateway)
[![Build Status](https://github.com/jupyter/kernel_gateway/workflows/Tests/badge.svg)](https://github.com/jupyter/kernel_gateway/actions?query=workflow%3ATests)
[![Documentation Status](http://readthedocs.org/projects/jupyter-kernel-gateway/badge/?version=latest)](https://jupyter-kernel-gateway.readthedocs.io/en/latest/?badge=latest)

## Overview

Jupyter Kernel Gateway is a web server that provides headless access to
Jupyter kernels. Your application communicates with the kernels remotely,
through REST calls and Websockets rather than ZeroMQ messages.
There are no provisions for editing notebooks through the Kernel Gateway.
The following operation modes, called personalities, are supported
out of the box:

- Send code snippets for execution using the
  [Jupyter kernel protocol](https://jupyter-client.readthedocs.io/en/latest/messaging.html)
  over Websockets. Start and stop kernels through REST calls.
  This HTTP API is compatible with the respective API sections
  of the Jupyter Notebook server.

- Serve HTTP requests from annotated notebook cells. The code snippets
  are cells of a static notebook configured in the Kernel Gateway.
  Annotations define which HTTP verbs and resources it supports.
  Incoming requests are served by executing one of the cells in a kernel.

Jupyter Kernel Gateway uses the same code as Jupyter Notebook
to launch kernels in its local process/filesystem space.
It can be containerized and scaled out using common technologies like [tmpnb](https://github.com/jupyter/tmpnb), [Cloud Foundry](https://github.com/cloudfoundry), and [Kubernetes](http://kubernetes.io/).

### Example Uses of Kernel Gateway

- Attach a local Jupyter Notebook server to a compute cluster in the cloud running near big data (e.g., interactive gateway to Spark)
- Enable a new breed of non-notebook web clients to provision and use kernels (e.g., web dashboards using [jupyter-js-services](https://github.com/jupyter/jupyter-js-services))
- Create microservices from notebooks using the Kernel Gateway [`notebook-http` mode](https://jupyter-kernel-gateway.readthedocs.io/en/latest/http-mode.html)

### Features

See the [Features page](https://jupyter-kernel-gateway.readthedocs.io/en/latest/features.html) in the
documentation for a list of the Jupyter Kernel Gateway features.

## Installation

Detailed installation instructions are located in the
[Getting Started page](https://jupyter-kernel-gateway.readthedocs.io/en/latest/getting-started.html)
of the project docs. Here's a quick start using `pip`:

```bash
# install from pypi
pip install jupyter_kernel_gateway

# show all config options
jupyter kernelgateway --help-all

# run it with default options
jupyter kernelgateway
```

## Contributing

The [Development page](https://jupyter-kernel-gateway.readthedocs.io/en/latest/devinstall.html) includes information about setting up a development environment and typical developer tasks.
