Skip to main content

Dataflow Notebook for Jupyter

Project description

Dataflow Notebook for Jupyter/Python

License PyPI version

Dataflow notebooks are Jupyter notebooks written in Python that elevate outputs to link cells. Outputs of cells are labeled by their identifiers. Referencing an output of one cell in another cell creates a dependency between between the two cells, allowing the system to ensure upstream cells are up-to-date before executing a cell. Dataflow notebooks allow identifiers to be reassigned in different cells by tracking references by the identifier and persistent cell id, ensuring each reference is not ambiguous. Identifiers are disambiguated by suffixes indicating the cell by an assigned name or unique hexadecimal identifier.

Quickstart

  1. Install dfnotebook: pip install dfnotebook
  2. Start JupyterLab: jupyter lab
  3. Create a new notebook using the DFPython 3 kernel.

Example Notebook

Dataflow Notebook Example

Install

To install the extension and bundled kernel, execute:

pip install dfnotebook

Requirements

  • JupyterLab >= 4.0.0
  • IPython >= 8.0
  • ipykernel >= 6.0

Uninstall

To remove the extension, execute:

pip uninstall dfnotebook

Contributing

Development install

Note: You will need NodeJS to build the extension package.

The jlpm command is JupyterLab's pinned version of yarn that is installed with JupyterLab. You may use yarn or npm in lieu of jlpm below.

# Clone the repo to your local environment
# Change directory to the dfnotebook directory
# Install package in development mode
pip install -e "."
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm build

You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm watch
# Run JupyterLab in another terminal
jupyter lab

With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).

By default, the jlpm build command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:

jupyter lab build --minimize=False

Development uninstall

pip uninstall dfnotebook

In development mode, you will also need to remove the symlink created by jupyter labextension develop command. To find its location, you can run jupyter labextension list to figure out where the labextensions folder is located. Then you can remove the symlink named @dfnotebook/dfnotebook-extension within that folder.

Testing the extension

Frontend tests

This extension is using Jest for JavaScript code testing.

To execute them, execute:

jlpm
jlpm test

Integration tests

This extension uses Playwright for the integration tests (aka user level tests). More precisely, the JupyterLab helper Galata is used to handle testing the extension in JupyterLab.

More information are provided within the ui-tests README.

Packaging the extension

See RELEASE

Previous Versions

The dataflow notebook was originally released as dfkernel and worked with older versions of Jupyter Notebook. It was updated to support JupyterLab as a paired set of packages (dfkernel and dfnotebook(-extension)). More recently, these were unified into a single package (dfnotebook).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dfnotebook-4.2.0b0.tar.gz (19.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dfnotebook-4.2.0b0-py3-none-any.whl (39.7 MB view details)

Uploaded Python 3

File details

Details for the file dfnotebook-4.2.0b0.tar.gz.

File metadata

  • Download URL: dfnotebook-4.2.0b0.tar.gz
  • Upload date:
  • Size: 19.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for dfnotebook-4.2.0b0.tar.gz
Algorithm Hash digest
SHA256 cd00b31a2ac42fade4e4d6efed63a9225e5054f5532c9751fccafad40f781d13
MD5 eae9ced89bfe8ca49a84dd5f180b338c
BLAKE2b-256 06ebee4ae92031d681e55145738cbf79033b8b291fd150789a3f162c285d4896

See more details on using hashes here.

File details

Details for the file dfnotebook-4.2.0b0-py3-none-any.whl.

File metadata

  • Download URL: dfnotebook-4.2.0b0-py3-none-any.whl
  • Upload date:
  • Size: 39.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for dfnotebook-4.2.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 282d8883fc84a69b0f845bf1b749ba010f153ec6ee0f74a83f1cc132357693c1
MD5 fed67a3648cfc3104ef6b105d977a86c
BLAKE2b-256 b4023893360b51a14ef56f921c1b01244a885d6ef3578a630f58a477118d2b20

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page