QuantStack が Jupyter Notebook のコンテンツを Standalone Application や Dashboard に変換する voila というツールをリリースしました。

Features

前記の Jupyter Blog の記事にあるように、voila には以下のような特徴があります。

  1. Jupyter interactive widgets をサポートしており、それらの widgets が Jupyter Kernel とやり取りできる
  2. ダッシュボードの利用者による任意のコード実行を許可していない
  3. Jupyter の標準プロトコルやファイルフォーマットに準拠しており、言語に依存しない
  4. リッチなレイアウトを作成できる柔軟なテンプレートシステム

ただ、実際に使ってみると以下の点が良いと感じました。

Getting Start

voila は pipconda でインストールすることができます。詳細は前記の Jupyter Blog の記事を参照してください。今回は以下のような .ipynb を用意して試してみました。

notebook

起動は以下のように .ipynb を指定します。

viola test1.ipynb

するとブラウザで以下のような画面を表示します。

voila-light

デフォルトではコードを表示しませんが、--strip-sources=False を付けて実行すると表示するようになっています。また --theme でテーマを指定することもできます。テーマは今のところ light / dark のみとなっています。

voila-dark

Template

自分でテンプレートを作ることができるようになっています。すでに voila-gridstack というテンプレートがあるので、それを使って出力してみました。

voila test1.ipynb --template=gridstack

notebook のそれぞれの出力結果を格子状に表示します。

voila-grid

Conclusion

社内にあるデータを notebook 上でを集計してサクっと公開し、そこで最新の状況を確認できるものが欲しかったところなので、暫く使ってみる予定です。但し Web のリクエスト毎に評価されるということは、データの取得や負荷のかかる集計処理を考慮する必要があります。データの更新頻度に合わせた cache が作れたりすると良いですね。

他にも Dashboard 上で Jupyter interactive widgets を使ったり、テンプレートに Vue.js を使うこともできるようですが、それらが必要になったら試してみたいと思います。