Skip to content

Instantly share code, notes, and snippets.

View asehmi's full-sized avatar

Arvindra Sehmi asehmi

View GitHub Profile
@asehmi
asehmi / stqdm-demo.py
Last active March 25, 2024 18:44
STqdm: A tqdm-like progress bar for Streamlit
# UPDATED: 5-MAY-2023
from multiprocessing import Pool, freeze_support
from time import sleep
import streamlit as st
# https://discuss.streamlit.io/t/stqdm-a-tqdm-like-progress-bar-for-streamlit/10097
# pip install stqdm
from stqdm import stqdm
@asehmi
asehmi / query-params.py
Created April 19, 2022 13:53
Setting and getting Streamlit query params
import streamlit as st
# callback to update query param on selectbox change
def update_params():
st.experimental_set_query_params(option=st.session_state.qp)
options = ["cat", "dog", "mouse", "bat", "duck"]
query_params = st.experimental_get_query_params()
@asehmi
asehmi / pomodoro.py
Created April 19, 2022 13:54
A simple Streamlit Pomodoro count down timer
import streamlit as st
import time
st.set_page_config(
page_title='Pomodoro',
layout='centered',
page_icon='🍅'
)
def count_down(ts):
@asehmi
asehmi / svg-render.py
Created April 19, 2022 13:56
Render SVG in Streamlit
import streamlit as st
import base64
import textwrap
# https://gist.github.com/treuille/8b9cbfec270f7cda44c5fc398361b3b1
def render_svg(svg):
"""Renders the given svg string."""
b64 = base64.b64encode(svg.encode('utf-8')).decode("utf-8")
html = r'<img src="data:image/svg+xml;base64,%s"/>' % b64
st.write(html, unsafe_allow_html=True)
@asehmi
asehmi / st-option-menu.py
Last active August 21, 2023 08:38
streamlit_option_menu component for Streamlit
# UPDATED: 2 May 2022
import streamlit as st
# https://discuss.streamlit.io/t/streamlit-option-menu-is-a-simple-streamlit-component-that-allows-users-to-select-a-single-item-from-a-list-of-options-in-a-menu
# https://icons.getbootstrap.com/
from streamlit_option_menu import option_menu
st.set_page_config(page_title='Muti-page app example', layout='wide')
def do_upload_tasks():
@asehmi
asehmi / progress-bar.py
Created April 19, 2022 14:27
Standard Streamlit progress bar demo
import streamlit as st
import time
import numpy as np
progress_bar = st.sidebar.progress(0)
status_text = st.sidebar.empty()
last_rows = np.random.randn(1, 1)
chart = st.line_chart(last_rows)
for i in range(1, 101):
@asehmi
asehmi / custom-footer-hide-styles-app.py
Last active April 26, 2022 00:58
Streamlit app with no header and custom footer
@asehmi
asehmi / aggrid-demo.py
Created April 19, 2022 15:19
Streamlit AgGrid Demo
# https://discuss.streamlit.io/t/selection-is-sometimes-not-returned-from-custom-widgets/21202
import streamlit as st
# https://github.com/PablocFonseca/streamlit-aggrid
from st_aggrid import AgGrid, GridOptionsBuilder
import pandas as pd
import numpy as np
np.random.seed(42)
@asehmi
asehmi / echarts-animation-demo.py
Created April 19, 2022 15:21
Streamlit echarts animation demo
import json
import random
import time
import streamlit as st
# pip install streamlit-echarts
from streamlit_echarts import st_echarts
st.title("I ❤️ ECharts")
@asehmi
asehmi / asyncio-queue-producer-consumer.py
Created April 19, 2022 16:17
Asyncio Queue Producer-Consumer Pattern in Streamlit
# See this thread: https://discuss.streamlit.io/t/best-fastest-practice-to-display-live-2d-data/19895
# Code below is lifted from @andfanilo's comment
# https://realpython.com/async-io-python/#using-a-queue
import asyncio
from datetime import datetime
# pip install opencv-python-headless
import cv2
import numpy as np