Skip to main content

Appmode

A Jupyter extensions that turns notebooks into web applications.

screenshots

Try it live

Binder

Click the binder badge to try it live without installing anything. This will take you directly to the "app" version of the notebook.

Installation

If you use conda, you can install it as:

conda install --channel conda-forge appmode

If you use pip, you can install it as:

pip install appmode
jupyter nbextension     enable --py --sys-prefix appmode
jupyter serverextension enable --py --sys-prefix appmode

If you want to use mybinder add the following environment.yml file to your repository:

channels:
  - conda-forge
dependencies:
  - appmode

Description

Appmode consist of a server-side and a notebook extension for Jupyter. Together these two extensions provide the following features:

  • One can view any notebook in appmode by clicking on the Appmode button in the toolbar. Alternatively one can change the url from baseurl/notebooks/foo.ipynb to baseurl/apps/foo.ipynb. This also allows for direct links into appmode.

  • When a notebook is opened in appmode, all code cells are automatically executed. In order to present a clean UI, all code cells are hidden and the markdown cells are read-only.

  • A notebook can be opened multiple times in appmode without interference. This is achieved by creating temporary copies of the notebook for each active appmode view. Each appmode view has its dedicated ipython kernel. When an appmode page is closed the kernel is shutdown and the temporary copy gets removed.

  • To allow for passing information between notebooks via url parameters, the current url is injected into the variable jupyter_notebook_url.

Server Side Configuration

Appmode adds the following configuration options:

  • Appmode.trusted_path Run only notebooks below this path in Appmode. Default: No restrictions.
  • Appmode.show_edit_button Show Edit App button during Appmode. Default: True.
  • Appmode.show_other_buttons Show other buttons, e.g. Logout, during Appmode. Default: True.

Client Side Customization

The UI elements of Appmode can be customized via the custom.js file. Some examples are:

$('#appmode-leave').hide();                          // Hides the edit app button.
$('#appmode-busy').hide();                           // Hides the kernel busy indicator.
$('#appmode-loader').append('<h2>Loading...</h2>');  // Adds a loading message.

Beware that hiding the edit button does not prevent users from leaving Appmode by changing the URL manually.

Development

With the included Dockerfile a development environment can be quickly created:

  1. Install Docker.
  2. git clone this repository
  3. docker build --tag appmode_dev ./
  4. docker run --init -ti -p8888:8888 appmode_dev
  5. Browse to http://localhost:8888/apps/example_app.ipynb

Metadata

Release files for appmode-aiidalab 0.5.0.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 appmode-aiidalab 0.5.0.1
File Size Uploaded
appmode-aiidalab-0.5.0.1.tar.gz 13.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for appmode-aiidalab 0.5.0.1
File Interpreter ABI Platform
appmode_aiidalab-0.5.0.1-py2-none-any.whl Python 2 none any Details

Total release size: 35.7 kB

Release files / appmode-aiidalab-0.5.0.1.tar.gz

Download URL appmode-aiidalab-0.5.0.1.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
74a9fd486acfe9729a39d0c5172f8e8deb0082ff9199321db1d737a96ea6e9fc
BLAKE2b-256 checksum
How to use checksums
11ce93352bb90889a4fdc65e19886367ad1665f757c8ff6695e18a275038b76f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15rc1

Release files / appmode_aiidalab-0.5.0.1-py2-none-any.whl

Download URL appmode_aiidalab-0.5.0.1-py2-none-any.whl
Size 22.1 kB
Tags Python 2
SHA-256 checksum
How to use checksums
f8668e2f639560a4bc023a742a7fae78a7b297eac3c1e3dbe0cabe9299288ad7
BLAKE2b-256 checksum
How to use checksums
590634c7e9fc86f9917bdc392f0831b7fda85d25360afe3281deb4db89dd6f85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15rc1

Release history Release notifications | RSS feed

This release

0.5.0.1 This release

2 release files

0.4.0

3 release files

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