# traitlets in python

iPython traitlets is a multiuse library that can be used for enforcing specific trait attributes. They also can be used to facilitate quite a bit of communication between different ipywidgets, which is something I learned today.

Specifically, let’s say you have a plot that takes a dataframe in a matplotlib manner, such as bqplot:

import numpy as np
import bqplot.pyplot as plt
import pandas as pd

x = pd.Series(np.linspace(-10, 10, 100)
y = np.sin(x)

fig = plt.figure()
line = plt.plot(x=x, y=y)
fig


Now let’s say you want to have an UI that:

• displays the entire dataframe as a filterable datagrid
• gives you options on what to plot against
• automatically updates the plot based on the filters in the datagrid

You can do this in shockingly few lines of Python using the ipydatagrid, bqplot, traitlets, and Jupyterwidgets.

• Setup the jupyter dropdowns

• Setup the datagrid

• Setup the hook on the “transform” in the datagrid

• Set the hook to take in the datagrid

• Update the plot as needed

• https://github.com/ipython/traitlets