JupyterLab

equser ships with bundled Jupyter notebooks and interactive widgets for exploring EQ Wave power quality data. Install the [jupyter] extra to get the full environment:

pip install equser[jupyter]

This installs JupyterLab, DuckDB, ipywidgets, and all analysis dependencies.

Bundled notebooks

equser includes six reference notebooks organized into two categories.

Tutorials

Step-by-step introductions to each data access method:

NotebookDescription
01-parquet-filesLoad and plot PMon and CPOW data directly from Parquet files
02-backend-apiQuery historical data through the EQ Synapse REST API (DuckDB-backed)
03-live-streamingReal-time waveform and spectral streaming via WebSocket

Analysis templates

Ready-to-use analysis workflows:

NotebookDescription
harmonic-analysisFFT-based harmonic spectrum, THD calculation, and spectrograms
power-trendsLong-term voltage, frequency, and power factor trends across multiple files
delta-analysisEquipment-specific configuration (wye vs. delta), interactive file selection

Listing and copying notebooks

Notebooks are bundled inside the installed package. Use the Python API or CLI to copy them to a working directory where you can edit and run them.

CLI

# List all bundled notebooks
equser notebooks list

# Copy all notebooks to a working directory
equser notebooks copy --dest ./my-notebooks

# Copy only tutorials
equser notebooks copy --dest ./my-notebooks --category tutorials

Python API

from equser.notebooks import list_notebooks, copy_notebooks

# See what is available
for nb in list_notebooks():
    print(nb)

# Copy to a working directory
copied = copy_notebooks('./my-notebooks')
print(f"Copied {len(copied)} notebooks")

# Copy only analysis templates
copy_notebooks('./my-notebooks', category='analysis')

File selector widget

The equser.widgets module provides an interactive file selector for browsing Parquet files inside notebooks. It displays a searchable list with file metadata (size, timestamps parsed from filenames).

from equser.widgets import create_file_selector

# Create a selector for a directory of CPOW files
selector = create_file_selector('/path/to/cpow/')
display(selector)

# After selecting a file interactively:
selected = selector.get_selected()

The widget includes:

  • Text search box for filtering by filename
  • Scrollable file list
  • Detail pane showing file size, path, and start time (parsed from the YYYYMMDD_HHMM filename convention)

Launching JupyterLab

# Copy notebooks and start JupyterLab
equser notebooks copy --dest ./eq-notebooks
cd eq-notebooks
jupyter lab

From there, open any notebook and follow the instructions in its markdown cells. The tutorials are numbered in recommended order.



© 2026 EQ Systems Inc.GitHubMIT License
Last updated: February 8, 2026