Skip to main content

CLI util to deal with Jupyter Notebooks

Project description

CircleCI

Asekuro

A commandline util for jupyter notebooks, possibly to be used in trainings and/or githooks.

Asekuro means insurance in esperanto.

The main goal is to have a commandline app that can be used in githooks. The main features we wanted in this app is that we had a nice way to:

  1. Clear notebook cells
  2. Be able to confirm that the notebook can run without errors.
  3. Be able to deal with solutions via %load magic.

Quick-Start

Installation can be done via pip.

> pip install asekuro

Note that we only support python>=3.6.

Usage

Once installed, the commandline app can be used.

> asekuro
Usage: asekuro [OPTIONS] COMMAND [ARGS]...

  Asekuro - it means insurance in esperanto.

  This command line app allows you to check for errors in jupyter notebooks
  and it also allows you to supply a python file with assert statements.

Options:
  --help  Show this message and exit.

Commands:
  check    Check (notebook) files in sequention for errors.
  clean    Clean notebook files.
  test     Check notebook files independantly.
  version  Echo the version of asekuro.

Testing a Notebook

We merely test if the notebook can be run from top to bottom without any errors. This may be dependant on the virtualenv that you're currently running.

> asekuro test tests/testnb.ipynb
2018-07-30 15:40:04,060 [commandline.py:test_notebook:113] DEBUG - about to test tests/testnb.ipynb
...
2018-07-30 15:40:04,074 [commandline.py:clean_notebook:82] DEBUG - /tmp/testnb-test.ipynb is now stripped
============== test session starts =======================================================================
platform darwin -- Python 3.6.5, pytest-3.6.4, py-1.5.4, pluggy-0.7.1 -- 
/Users/coder/path/asekuro/venv/bin/python
cachedir: ../../../../../tmp/.pytest_cache
rootdir: /tmp, inifile:
plugins: nbval-0.9.1
collected 6 items                                                                                                                                                                                                                                                   

tmp/testnb-test::ipynb::Cell 0 PASSED                                        [ 16%]
tmp/testnb-test::ipynb::Cell 1 PASSED                                        [ 33%]
tmp/testnb-test::ipynb::Cell 2 PASSED                                        [ 50%]
tmp/testnb-test::ipynb::Cell 3 PASSED                                        [ 66%]
tmp/testnb-test::ipynb::Cell 4 PASSED                                        [ 83%]
tmp/testnb-test::ipynb::Cell 5 PASSED                                        [100%]
============== 6 passed in 1.11 seconds  ==================================================================
2018-07-30 15:40:05,983 [commandline.py:test_notebook:118] DEBUG - removing temporary testing notebook /tmp/testnb-test.ipynb
2018-07-30 15:40:05,984 [commandline.py:test_notebook:120] DEBUG - testing done for tests/testnb.ipynb

Clean Notebook

Sometimes you may want to remove the output of the cells. This can be done automatically now too.

> asekuro clean tests/testnb.ipynb 
2018-07-30 15:44:23,508 [commandline.py:clean_notebook:76] DEBUG - about to strip tests/testnb.ipynb of output
2018-07-30 15:44:23,516 [commandline.py:clean_notebook:82] DEBUG - tests/testnb.ipynb is now stripped

Testing

You can run some unit tests via pytest. Note that we test using local notebooks as well as a docker container. We want the container that is there to break the build.

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

asekuro-0.1.2.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

asekuro-0.1.2-py2.py3-none-any.whl (7.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file asekuro-0.1.2.tar.gz.

File metadata

  • Download URL: asekuro-0.1.2.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6

File hashes

Hashes for asekuro-0.1.2.tar.gz
Algorithm Hash digest
SHA256 66f4cfdaa5004886679c8c4cffc45eefb5be8d255ece5c975386c3ea814271c4
MD5 36b8e864f4f80ff512804b32cd3e1e1e
BLAKE2b-256 c3ecf38ee0077bd4cc0a2c0bacfea423ca0072d6d3ec341e2d1add9df12c28e4

See more details on using hashes here.

File details

Details for the file asekuro-0.1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: asekuro-0.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6

File hashes

Hashes for asekuro-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 664b86646bca429cff47e02f7d2f069bb41c7beabd3b0d37cd1873c1d8238e21
MD5 9749e28d15b5dd24302bca2340a2970d
BLAKE2b-256 bbed8dfc3d2fb11f83b289cf08df817dbfd6dd1deeb8bb34e4b8311908a8cbfa

See more details on using hashes here.

Supported by

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