Installation

When you have the MetaCall’s Jupyter Kernel repository cloned and set up, you are ready to install the software and tools you will use to modify the kernel and push your changes.

What you require?

  • A bash shell environment (Linux and OS X include a bash shell environment out of the box, but if you are on Windows you can use Cygwin)

  • Python 3.x

  • Git

  • NodeJS

  • A web browser (Firefox, Chrome, or Safari)

  • Docker

Install the required software dependencies on a Linux system

It is recommended to use a Virtual Environment to manage your dependenices and the application build. We will first start with setting up the Local Project Environment:

virtualenv env
source env/bin/activate

Next we can download all the dependenices and setup the Kernel:

curl -sL https://raw.githubusercontent.com/metacall/install/master/install.sh | sh
python3 -m pip install --upgrade pip
pip3 install -r requirements.txt
python3 setup.py install
python3 -m metacall_jupyter.install
metacall npm install

Start your Jupyter Notebook by pushing the following command:

python3 -m metacall_jupyter.launcher

You can pick metacall_jupyter from the drop-down options and start working with the Jupyter Notebook interface.

Building the Kernel

With the initial setup complete, you are ready to make changes to the kernel. From the metacall_kernel directory, once you have made your changes, run through your changes:

python3 -m metacall_jupyter.install
python3 -m metacall_jupyter.launcher

Docker setup

Build the image:

docker build -t metacall/jupyter .

Run the image:

docker run --rm --network=host -it metacall/jupyter

Run the Tests

To run the tests, push the following command:

pytest test-kernel.py

The script will run all the tests. To generate a coverage report, we are using the pytest-cov plugin, which can be invoked by pushing the following command:

pytest --cov=metacall_jupyter test-kernel.py

Set up the documentation

To setup the Sphinx documentation on your local machine, enter into the docs directory and install all the local dependenices:

cd docs
pip3 install -r requirements.txt

You can now build your documentation’s static html assets with sphinx using make:

make html

After making the changes, you will be able to rebuild your documentation’s html:

make clean && make html

Code Formatting

We use PyLint and Flake8 for code linting and Black for code formatting. Flake8 is used in our Continuous Integration pipeline on GitHub, and hence we would like to see zero Flake8 issues before code merge. To verify the issues raised by Flake8, just run:

flake8

To run Black against the source directory or a particular file you have edited, run:

black <SOURCE_DIRECTORY_OR_FILE>