Bquant [4] - Building Apps


nbappinator

In addition to unfettered(ish) access to data, BQuant Enterprise allows us to build interactive applications and “Publish” them to other Bloomberg Terminal users.

How? I’m glossing over some technical details: Jupyter is a web application. It has a mechanism for establishing communication between code running in your web browser and the Python kernel running alongside Jupyter. When a Terminal user opens a Published application, it’s opened in Voila. Voila strips out the “Notebook” interface and leaves the user with a web page containing only the application, which can communicate to the Python kernel. This communication path is complicated and not something most developers should ever think about; instead, it’s best to work with frameworks that have figured this out already.

nbappinator is our (Iqmo’s) project to provide a rapid development environment for building Notebook-based applications, and it was built with BQuant in mind. It leverages some great work done by others to bring modern web technologies into Jupyter and streamlines the experience. Our goal is to insulate the developer/Quant/Analyst from the myriad of choices and provide an opinionated application framework

Note: Opinionated just means you can build any application as long as you make it our way.

(Optional) Aside

We took a lot of inspiration from tools like gradio and streamlit. They make it easy to quickly develop applications in Python environments with minimal UI expertise. However, they don’t quite fit into a BQuant environment. With the right tools, Jupyter is a very powerful framework.

BQuant Example

Prerequisite

To run this example, follow the steps in BQuant - Opening Blog Examples to create a Custom Environment that includes nbappinator and the notebook code below.

bqnt_first_app.ipynb

bqnt_first_app