Skip to main content

Plain Language Notebooks

Project description

Plainbook: Natural Language Notebooks.

Authors:

Luca de Alfaro, dealfaro@acm.org

Overview

Plain Language Notebooks (Plainbook) allow you to create notebooks where the cells are written in natural language. The natural language is automatically converted to code via AI, and executed. The results of the execution are then displayed below the natural language cell.

In Plainbooks, natural language is the programming language. The goal of Plainbooks is to allow users to create and share notebooks in natural language, without having to write code, or understand the code that is shared with them. Actions to be performed are described in natural language, and the natural languate is retained, so users can edit it, improve it, and share it. We are building methods for verifying that the code implementation is faithful to the natural language description, so that users can trust the notebooks they receive from others.

Plain Language Notebooks have two type of cells:

  • Action cells, where the user describes in natural language the action to be performed (e.g., "Load the dataset from file data.csv and display the first 10 rows"). The system converts the description to code, executes it, and displays the results below the cell.

  • Comment cells, where the user can add comments, section headers, and so forth, using markdown syntax.

Differently from other notebook systems, Plainbooks are executed from start to end: random cell execution order, as in Jupyter notebooks, is not allowed. This ensures that the results are obtained in the same order in which a human reader would read the notebook.

This project is in an early stage of development.

Running Plainbook

plainbook path/to/notebook.nlb

(where .nlb is a Natural Language Notebook file; you can use other extensions if you wish). The file is created if it does not exist. For a list of command-lien options, do:

plainbook --help

If you want to be able to generate or check code from explanations, you need to add a Gemini API key in the settings (click on the gear icon in the top-right corner of the web interface).

Development

Run with:

python -m plainbook.main --debug

Running with the VSCode launch.json does not work, due to a VScode bug/quirk. See DEVELOP.md for development instructions, and see TODO.md for planned features.

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

plainbook-0.0.19.tar.gz (914.6 kB view details)

Uploaded Source

Built Distribution

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

plainbook-0.0.19-py3-none-any.whl (923.4 kB view details)

Uploaded Python 3

File details

Details for the file plainbook-0.0.19.tar.gz.

File metadata

  • Download URL: plainbook-0.0.19.tar.gz
  • Upload date:
  • Size: 914.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for plainbook-0.0.19.tar.gz
Algorithm Hash digest
SHA256 fd36fbc87b7c3013250d6e86def77f6427a3a85d6990692542e404c1fde0a920
MD5 0a2afee7874d3cb997388b8d4b35a3e9
BLAKE2b-256 565b998a2a936bc5ba3edabee19e90f3442f5eb056259a4edf5d7d26b3936ae7

See more details on using hashes here.

File details

Details for the file plainbook-0.0.19-py3-none-any.whl.

File metadata

  • Download URL: plainbook-0.0.19-py3-none-any.whl
  • Upload date:
  • Size: 923.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for plainbook-0.0.19-py3-none-any.whl
Algorithm Hash digest
SHA256 befbcccf92abbe62779c9a0d0c98388927105788d3de47215c287b9128977374
MD5 d5cece75b70e285be8be1f9e10a2811c
BLAKE2b-256 a6288c7b9efd0e7fa8ecd21d10b2a5a37e36375c663460fa71b8f7a5346d6c95

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