Skip to main content

Frequenz CS Reporting Library

Build Status PyPI Package Docs

Overview

Streamlit library that ships a ready-to-use client reporting UI. It fetches data from the Frequenz reporting API, applies the energy reporting utilities from frequenz-lib-notebooks, and renders dashboards, tables, and plots with reusable Streamlit components.

Features

  • Pre-built Streamlit app with navigation, landing page, and reporting view.
  • Connects to the Frequenz reporting API to fetch microgrid measurements.
  • Ready-made dashboards (metrics, plots, and tables) powered by frequenz-lib-notebooks.
  • Reusable components (sidebar filters, charts, tables) for your own pages.

Quick start

  1. Install the library (Python 3.12):
    pip install "frequenz-cs-reporting"
    
  2. Provide environment variables (see below). A .env file works with Streamlit:
    REPORTING_API_URL=https://your-reporting-endpoint
    API_KEY=your-api-key
    API_SECRET=your-api-secret
    MICROGRID_CONFIG_DIR=toml_directory/
    
  3. Add .toml files to the toml_directory.
  4. Run the bundled UI from the repo root:
    streamlit run app.py
    
    Use the sidebar to pick a microgrid, date range, timezone, and resolution.

Configuration

Environment

  • REPORTING_API_URL (required): Base URL for the Frequenz reporting API.
  • API_KEY and API_SECRET (required): Credentials used by the data client.
  • MICROGRID_CONFIG_DIR (optional): Directory containing TOML microgrid configs. Defaults to toml_directory/.

Microgrid configs

Microgrid definitions are loaded from TOML files in MICROGRID_CONFIG_DIR.

Running the Streamlit app

The app entry point is app.py. When you run streamlit run app.py, it:

  • Discovers pages from frequenz.cs_reporting.app_pages (the default build ships Home and Reporting pages).
  • Loads microgrid configs from MICROGRID_CONFIG_DIR and lists available IDs.
  • Fetches data via the reporting API.

Running in Deepnote

  • Running in Deepnote is supported; required environment variables can be injected via the Deepnote integration.
  • Add this library as a requirement in requirements.txt
  • Add the docker image from dockerhub (currently named: CS-Reporting in deepnote).
  • Copy the app.py to the folder structure in Deepnote.
  • Click on create_streamlit_application in Deepnote UI to create the app.

Library usage

Fetch microgrid data programmatically (sync wrapper shown):

from datetime import datetime, timedelta
from frequenz.cs_reporting.services.data_service import get_microgrid_data

df = get_microgrid_data(
    microgrid_id=241,
    start_date=datetime(2024, 1, 1),
    end_date=datetime(2024, 1, 2),
    resolution=timedelta(minutes=15),
)

Build your own Streamlit page and add it to the navigation by defining a PageSpec in frequenz.cs_reporting.app_pages:

# app_pages/custom.py
from frequenz.cs_reporting.rep_cs_core.page_spec import PageSpec
import streamlit as st

def render() -> None:
    st.title("Custom view")
    st.write("Add your own charts or tables here.")

PAGE = PageSpec(key="custom", title="Custom", icon="🛠️", order=10, render=render)

Development

  • Install dev tools: pip install -e ".[dev]".
  • Run tests: nox -l to see sessions, e.g. nox -s tests.
  • Build docs with MkDocs (README.md is the landing page). After installing the mkdocs extra you can use the docs nox session (if available) or run mkdocs serve.

Supported Platforms

The following platforms are officially supported (tested):

  • Python: 3.12
  • Operating System: Ubuntu Linux 20.04
  • Architectures: amd64, arm64

Contributing

If you want to know how to build this project and contribute to it, please check out the Contributing Guide.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

frequenz_cs_reporting-0.4.5.tar.gz (3.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

frequenz_cs_reporting-0.4.5-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

Details for the file frequenz_cs_reporting-0.4.5.tar.gz.

File metadata

  • Download URL: frequenz_cs_reporting-0.4.5.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for frequenz_cs_reporting-0.4.5.tar.gz
Algorithm Hash digest
SHA256 2d73e680cba616d3110b60df663907c60bcb5b33f9fa2047b98dff8823a2ef7b
MD5 54f6202567f3ffc899c3da426445963e
BLAKE2b-256 55ae30d490e2b35c761543a81b38b6805a32a99c299eeb9783b9d13a429f86a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for frequenz_cs_reporting-0.4.5.tar.gz:

Publisher: ci.yaml on frequenz-floss/frequenz-cs-reporting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file frequenz_cs_reporting-0.4.5-py3-none-any.whl.

File metadata

File hashes

Hashes for frequenz_cs_reporting-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8047a24d8f4728e23031a5d6165930eeb8a8aa394c806cf267126bc7ffecea5a
MD5 4ec67b2e68c60ac7e65fb99d4953fb93
BLAKE2b-256 3b47768baac085d6b0038085c28f9d5d5a266197de3118eab01709332d550478

See more details on using hashes here.

Provenance

The following attestation bundles were made for frequenz_cs_reporting-0.4.5-py3-none-any.whl:

Publisher: ci.yaml on frequenz-floss/frequenz-cs-reporting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page