Skip to main content

Package used to create reports from streamlit dashboards

Project description

How to use

  1. Install the package into your environment:
pip install streamlit-report
  1. Call the report class in your program:
from streamlit_report import report
r = report.Report()
  1. For supported functions, replace st. with r. and the Report class will call the streamlit function and write to your report simultaneously.
  2. Call the download method to add a button to toggle report generation and download:
r.download()
  1. Run your dashboard, click the Generate Report? button, navigate to each page, activate the content you'd like to add to your report, and click the Download! button when done. NOTE: the report overwrites a page's content each time you visit it on the dashboard.

Purpose

This module creates a streamlit page using standard streamlit commands and, when prompted, generates an html report that mirrors the dashboard's interactive contents. The final report stores the results that are displayed on the page and lives on as a static file that can be viewed without connecting to the dashboard.

Styles can be modified by changing the styles.html file. Current styles were based off references found on https://www.w3schools.com/.

Note

The below features are simplified representations of what the dashboard presents. Streamlit has features that are not and may never be implemented by this library. The purpose is to streamline a simple and static reporting mechanism without having to write additional code.

Version History

Version 0.1.0

  • Added plotly support
r.plotly_chart(chart)
  • Added question-mark hover text
r.help_text("# Section header", "Explanation that reveals key insights")

Version 0.0.7

  • updated default style.html file to improve dataframe display on reports
  • removed height & width functionality from r.dataframe commands
    • This can now be specified globally in the dataframe-container & dataframe CSS
  • removed dependency version requirements on imported modules

Version 0.0.6

  • updated support to account for migrated get_pages function in streamlit Version 1.44
  • fixed bug in multiselect code
  • added support for navigation based multipage applications
  • added some minor QoL updates via type hints

Version 0.0.4-alpha

  • added st.date_input support
  • added st.multiselect support
  • added st.text, st.text_area, st.text_input support
  • added st.slider support for range value selections

Version 0.0.3

  • Restructured repository layout
  • Reformatted the README.md file
  • Removed demo and related programs from the main branch
    • They still exist on the demo branch and are primarily used for the streamlit cloud demo page

Version 0.0.2

  • added functions removed from st_pages to restore page name detection
  • moved demo program and data to the examples folder

Version 0.0.1

Added basic functionality including multipage support, altair graphs, and some input data fields.

  • streamlit.write support for markdown and basic text
  • streamlit.markdown support -- allow_unsafe_html = True will write custom html code to the report
  • streamlit.tabs support using with generator functions
  • streamlit.sidebar support using with generator functions
  • collapsable sidebar
  • streamlit.altair_chart support
  • streamlit_report.Report.ignore flag to temporarily suppress writing to the report file
  • streamlit.dataframe support, displaying a polars or pandas dataframe in a sized window
  • streamlit.selectbox support, displaying the name of the item selected during report generation
  • streamlit.slider support for single value slider selections
  • report generation and download button for single page reports
  • multi-page app support
  • creation of single report for multi-page applications
  • option to specify the default page order that a report generates in

Planned Features

Priority items

  • Create distribution file
  • st.date_input
  • st.multiselect
  • st.text_input
  • st.text_area

Lower priority items

  • st.columns
  • st.text
  • button to reveal the collapsed sidebar
  • streamlit.slider support for multipoint values selections
  • improved style defaults
  • option to write to temporary files instead of storing the html code in memory

Needs review

  • st.form
  • st.image
  • st.logo
  • st.page_link
  • st.navigation
  • resizable sidebar
  • streamlit.write support for list, dictionary types
  • option to only replace page content when a button is pressed

Unsupported Features

  • pdf report option

Project details


Download files

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

Source Distribution

streamlit_report-0.1.0.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

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

streamlit_report-0.1.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file streamlit_report-0.1.0.tar.gz.

File metadata

  • Download URL: streamlit_report-0.1.0.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for streamlit_report-0.1.0.tar.gz
Algorithm Hash digest
SHA256 380c364eaec7f6153973d936bf427ff5c4bbf0f143ddd845173243316b166cea
MD5 5f444ebe0ec2dbea423c006abd5111ba
BLAKE2b-256 f8f5c0b0d82820a345c91cb44363803b1d86b625af9c50d24d4222d33dcb15f8

See more details on using hashes here.

File details

Details for the file streamlit_report-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for streamlit_report-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 af025334dc9d33d3ea00bd836ddac299f75d96e9d527a4017475f35adc73d286
MD5 da32ec6e2d9aa1fecf2cae709ca12668
BLAKE2b-256 5b94594b681599b0fe7195c243bf6fe7b3a60cd265f8f093818a534463f02359

See more details on using hashes here.

Supported by

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