/keboola_streamlit

A Python library for working with Kbc SAPI Client.

Primary LanguagePythonMIT LicenseMIT

Alt text

KeboolaStreamlit

KeboolaStreamlit simplifies the use of Keboola Storage API within Streamlit apps, providing easy-to-use functions for authentication, data retrieval, event logging, and data loading.

Installation

To install:

pip install keboola-streamlit

If you are using streamlit<=1.36.0, please use version 0.0.5 of the keboola-streamlit package.

Usage

Import and Initialization

Create an instance of the KeboolaStreamlit class, and initialize it with the required parameters from Streamlit secrets:

import streamlit as st
from keboola_streamlit import KeboolaStreamlit

URL = st.secrets["KEBOOLA_URL"]
TOKEN = st.secrets["STORAGE_API_TOKEN"]

keboola = KeboolaStreamlit(root_url=URL, token=TOKEN)

Authentication and Authorization

If only selected roles can access the app, make sure the user is authorized by:

ROLE_ID = st.secrets["REQUIRED_ROLE_ID"]

keboola.auth_check(required_role_id=ROLE_ID)

Add a logout button to your app:

keboola.logout_button(sidebar=True, use_container_width=True)

Reading Data from Keboola Storage

Read data from a Keboola Storage table and return it as a Pandas DataFrame:

df = keboola.read_table(table_id='YOUR_TABLE_ID')

💡 Wrap the function and use the st.cache_data decorator to prevent your data from being read every time you interact with the app. Learn more about caching here.

Writing Data to Keboola Storage

Write data from a Pandas DataFrame to a Keboola Storage table:

keboola.write_table(table_id='YOUR_TABLE_ID', df=your_dataframe, is_incremental=False)

Creating Events

Create an event in Keboola Storage to log activities:

keboola.create_event(message='Streamlit App Create Event', event_type='keboola_data_app_create_event')

Table Selection

Add a table selection interface in your app:

df = keboola.add_table_selection(sidebar=True)

License

This project is licensed under the MIT License. See the LICENSE file for more details.