Skip to main content

Port of nbdev to write SCALA / chisel library entirely in notebooks

Project description

chisel-nbdev

The goal of this repo is to provide a seamless way to develop Chisel code in a Jupyter Notebook environment.

Requirements (mac)

  • setup some virtualenv (im using python3.8.2)
  • pip install virtualenv
  • find your python3 binary: which python3 which for me is /usr/local/bin/python3
  • create virtualenv: python3 -m virtualenv --python=/usr/local/bin/python3 chisel_nb_env
  • activate it: source chisel_nb_env/bin/activate
  • install jupyterlab (which includes jupyter notebook): pip install jupyterlab## Requirements (mac)
  • setup some virtualenv (im using python3.8.2)
  • pip install virtualenv
  • find your python3 binary: which python3 which for me is /usr/local/bin/python3
  • create virtualenv: python3 -m virtualenv --python=/usr/local/bin/python3 chisel_nb_env
  • activate it: source chisel_nb_env/bin/activate
  • install jupyterlab (which includes jupyter notebook): pip install jupyterlab

Setup the Jupyter Scala kernel Almond (https://almond.sh)

  • Borrowed from the Chisel-Bootcamp install guide: https://github.com/freechipsproject/chisel-bootcamp/blob/master/Install.md
  • If you experience errors or issues with this section, try running rm -rf ~/.local/share/jupyter/kernels/scala/ first.
  • Next, download coursier (our dependency manager) and use it to install almond (our kernel wrapped around Ammonite) (see here for the source for these instructions):
curl -L -o coursier https://git.io/coursier-cli && chmod +x coursier
SCALA_VERSION=2.12.10 ALMOND_VERSION=0.9.1
./coursier bootstrap -r jitpack \
    -i user -I user:sh.almond:scala-kernel-api_$SCALA_VERSION:$ALMOND_VERSION \
    sh.almond:scala-kernel_$SCALA_VERSION:$ALMOND_VERSION \
    --sources --default=true \
    -o almond
./almond --install
  • You can delete coursier and almond files if you so desire.

Start JupyterLab

  • Making sure you are in your virtualenv then run: jupyter lab

Project Structure

  • By default, notebook source files (.ipynb) will live in the nbs folder.
  • Upon running notebook2script() the notebooks in nbs will export code to .sc files in the nbdev folder. These are auto-generated files that can be imported back into notebooks via Ammonite: For example import $file.MyMod, MyMod._ imports the contents of the file MyMod.sc.

Testing Notebooks

  • Currently can run nbdev_test_nbs('MyMod.ipynb') to run all of the tests contained in the MyMod.ipynb notebook.
  • Tests are identified by either omitting any export flags (//export) or by including special flags defined in settings.ini (i.e //slowtest or chiseltest).

settings.ini

  • Configurations belong in this file.

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

chisel_nbdev-0.1.4.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

chisel_nbdev-0.1.4-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file chisel_nbdev-0.1.4.tar.gz.

File metadata

  • Download URL: chisel_nbdev-0.1.4.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.2

File hashes

Hashes for chisel_nbdev-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ace2754d76a4b14b3eadf3b440b90391018522a851bf5e4a96faeef2ecaba02d
MD5 91b4021051566e13faa2bd7401f1a2f9
BLAKE2b-256 55df2b1145dc591e1979b3a4fdf299dcffde2cc8843931f422c0bb7794907e33

See more details on using hashes here.

File details

Details for the file chisel_nbdev-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: chisel_nbdev-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.2

File hashes

Hashes for chisel_nbdev-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5986e11a1bbf26a1b8e8214a52873c0e70971613ef36470757ff291a5fe46aa6
MD5 11a8d9448022f0153363ea435366baa8
BLAKE2b-256 c079c02d103562a6b87c5ba80c3103e73cf8d14e57f2cd5abce2a6fa8acfc4ed

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