Skip to main content

NeNo

NeNo (Network Notebooks) is a server and CLI utility that allows you to deploy your jupyter notebooks and trigger their execution by calling an API endpoint. You can then use the CLI to view the execution history and inspect the outputs. Great for scheduled tasks and prototyping APIs.

Installation

If you want just the CLI utility, you can install it with pip:

pip install neno

Then you can start the utility with python -m neno. For convenience, you can create an alias in your shell configuration:

alias neno="python -m neno"

If you want to run the neno server locally, you need to install some optional dependencies:

pip install "neno[server]"

Launching the server

To start the server, first create a config.yaml file:

host: "localhost"
port: 5000
backends:
  # For this simple example, we will use the filesystem to store the data and configuration
  dataBackend:
    filesystem:
      path: "backend/data"
  configBackend:
    filesystem:
      path: "backend/config"

Then you can start the server with:

neno serve --config-file config.yaml

Usage

If your server runs somewhere other than localhost:5000, point the NENO_SERVER_URL environment variable to the correct URL:

export NENO_SERVER_URL=http://localhost:5001

You can then use the CLI to interact with the server:

# Upload a notebook as a new endpoint. The endpoint will be available at $NENO_SERVER_URL/api/gen-report. We can also use the `--file` option as many times as we want to upload additional files that the notebook needs.
neno add endpoint gen-report --notebook create-report.ipynb --file credentials.json --keep-runs=always

# List all the endpoints
neno get endpoints

# List all endpoints and print a curl command for triggering each one of them
neno get endpoints --show-curl

# List recent executions of the `gen-report` endpoint. By default, it will show the last 10 executions.
neno get runs gen-report

# List last 50 executions of the `gen-report` endpoint
neno get runs gen-report --limit 50

# Download the output (output notebook, any additional files) of the execution of `gen-report` with ID 12345
neno fetch run gen-report 12345

# Download the output of run 12345 and open it in a local jupyterlab instance (jupyterlab must be installed: `pip install jupyterlab`)
neno fetch run gen-report 12345 --inspect

Metadata

Release files for neno 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neno 0.2.1
File Size Uploaded Provenance Actions
neno-0.2.1.tar.gz 19.3 kB Without provenance Details for neno-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for neno 0.2.1
File Interpreter ABI Platform Actions
neno-0.2.1-py3-none-any.whl Python 3 none any Details for neno-0.2.1-py3-none-any.whl

Total release size: 40.2 kB

Release files / neno-0.2.1.tar.gz

Download URL neno-0.2.1.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d482edbfb53fdaa352ead82708d4a35b0c8736f6575dbafd04cde6b436fce5b8
BLAKE2b-256 checksum
How to use checksums
44d5a68c2deef76fea8b8291fa441695687d1a23e7a3f778a536155ca58005d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.9.20

Release files / neno-0.2.1-py3-none-any.whl

Download URL neno-0.2.1-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba56637ba0205a302ebb529b6d95c7050825b9d472c6131233ea9a652135308b
BLAKE2b-256 checksum
How to use checksums
09ed7f4affb29bfab47eb222994bd5376aacfd7ce915651d1d9f0641f491d55e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.9.20

Security for neno 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page