From 97f2d37ba7fe18a7c4480ce7d95c5ca2f629b355 Mon Sep 17 00:00:00 2001 From: Johann Scholtz Date: Wed, 28 May 2025 12:41:20 -0500 Subject: [PATCH 1/6] Add basic example --- examples/sample/sample.py | 19 +++++++++++++++++++ examples/sample/sample_panel.py | 22 ++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 examples/sample/sample.py create mode 100644 examples/sample/sample_panel.py diff --git a/examples/sample/sample.py b/examples/sample/sample.py new file mode 100644 index 0000000..a919d51 --- /dev/null +++ b/examples/sample/sample.py @@ -0,0 +1,19 @@ +import nipanel +import os + +script_path = os.path.dirname(os.path.abspath(__file__)) +panel_script_path = os.path.join(script_path, "sample_panel.py") + +panel = nipanel.StreamlitPanel( + panel_id="sample_panel", + streamlit_script_uri=panel_script_path, +) +panel.set_value("sample_string", "Hello, World!") +panel.set_value("sample_int", 42) +panel.set_value("sample_float", 3.14) +panel.set_value("sample_bool", True) +panel.open_panel() + +input("Press Enter to close the panel...") + +panel.close_panel(reset=True) \ No newline at end of file diff --git a/examples/sample/sample_panel.py b/examples/sample/sample_panel.py new file mode 100644 index 0000000..fe63860 --- /dev/null +++ b/examples/sample/sample_panel.py @@ -0,0 +1,22 @@ +import nipanel +import streamlit as st + +panel = nipanel.StreamlitPanelValueAccessor( + panel_id="sample_panel" +) + +st.title("Sample Panel") + +col1, col2 = st.columns([0.4, 0.6]) + +with col1: + st.write("String") + st.write("Integer") + st.write("Float") + st.write("Boolean") + +with col2: + st.write(panel.get_value("sample_string")) + st.write(panel.get_value("sample_int")) + st.write(panel.get_value("sample_float")) + st.write(panel.get_value("sample_bool")) \ No newline at end of file From c96fe8d9db9ec0dd1f212df3786428c16182d93e Mon Sep 17 00:00:00 2001 From: Johann Scholtz Date: Wed, 28 May 2025 14:22:45 -0500 Subject: [PATCH 2/6] Minor edit --- examples/sample/sample.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sample/sample.py b/examples/sample/sample.py index a919d51..5532631 100644 --- a/examples/sample/sample.py +++ b/examples/sample/sample.py @@ -8,11 +8,11 @@ panel_id="sample_panel", streamlit_script_uri=panel_script_path, ) +panel.open_panel() panel.set_value("sample_string", "Hello, World!") panel.set_value("sample_int", 42) panel.set_value("sample_float", 3.14) panel.set_value("sample_bool", True) -panel.open_panel() input("Press Enter to close the panel...") From 1bd8068559eddf191aac77bb458389b1b17d2076 Mon Sep 17 00:00:00 2001 From: Johann Scholtz Date: Wed, 28 May 2025 16:30:13 -0500 Subject: [PATCH 3/6] Add README --- examples/sample/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 examples/sample/README.md diff --git a/examples/sample/README.md b/examples/sample/README.md new file mode 100644 index 0000000..f5d36ad --- /dev/null +++ b/examples/sample/README.md @@ -0,0 +1,15 @@ +## Sample + +This is a nipanel example that displays an interactive Streamlit app and update values. + +### Feature + +- Supports various data types + +### Required Software + +- Python 3.9 or later + +### Usage + +Run `poetry run examples/sample/sample.py` \ No newline at end of file From 81bebe18c420a3fbe737bbc45fd8d68360835f7b Mon Sep 17 00:00:00 2001 From: Johann Scholtz Date: Wed, 28 May 2025 16:38:09 -0500 Subject: [PATCH 4/6] lint --- examples/sample/sample.py | 5 +++-- examples/sample/sample_panel.py | 9 ++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/sample/sample.py b/examples/sample/sample.py index 5532631..3083496 100644 --- a/examples/sample/sample.py +++ b/examples/sample/sample.py @@ -1,6 +1,7 @@ -import nipanel import os +import nipanel + script_path = os.path.dirname(os.path.abspath(__file__)) panel_script_path = os.path.join(script_path, "sample_panel.py") @@ -16,4 +17,4 @@ input("Press Enter to close the panel...") -panel.close_panel(reset=True) \ No newline at end of file +panel.close_panel(reset=True) diff --git a/examples/sample/sample_panel.py b/examples/sample/sample_panel.py index fe63860..f3671fe 100644 --- a/examples/sample/sample_panel.py +++ b/examples/sample/sample_panel.py @@ -1,9 +1,8 @@ -import nipanel import streamlit as st -panel = nipanel.StreamlitPanelValueAccessor( - panel_id="sample_panel" -) +import nipanel + +panel = nipanel.StreamlitPanelValueAccessor(panel_id="sample_panel") st.title("Sample Panel") @@ -19,4 +18,4 @@ st.write(panel.get_value("sample_string")) st.write(panel.get_value("sample_int")) st.write(panel.get_value("sample_float")) - st.write(panel.get_value("sample_bool")) \ No newline at end of file + st.write(panel.get_value("sample_bool")) From efa88c1a23717366647739944717e2381662fa46 Mon Sep 17 00:00:00 2001 From: Johann Scholtz Date: Wed, 28 May 2025 16:44:29 -0500 Subject: [PATCH 5/6] Add docstring. --- examples/sample/sample.py | 2 ++ examples/sample/sample_panel.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/examples/sample/sample.py b/examples/sample/sample.py index 3083496..26fe4e1 100644 --- a/examples/sample/sample.py +++ b/examples/sample/sample.py @@ -1,3 +1,5 @@ +"""This example demonstrates how to open/update a Streamlit application using nipanel package.""" + import os import nipanel diff --git a/examples/sample/sample_panel.py b/examples/sample/sample_panel.py index f3671fe..e1a6c93 100644 --- a/examples/sample/sample_panel.py +++ b/examples/sample/sample_panel.py @@ -1,3 +1,5 @@ +"""Streamlit application script for displaying values using nipanel package.""" + import streamlit as st import nipanel From 8f14ecc3815aa07b0bf1f61ed07cf47de654b0aa Mon Sep 17 00:00:00 2001 From: Johann Scholtz Date: Thu, 29 May 2025 09:46:00 -0500 Subject: [PATCH 6/6] Review comments. --- examples/sample/README.md | 2 +- examples/sample/sample.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/sample/README.md b/examples/sample/README.md index f5d36ad..38e3292 100644 --- a/examples/sample/README.md +++ b/examples/sample/README.md @@ -1,6 +1,6 @@ ## Sample -This is a nipanel example that displays an interactive Streamlit app and update values. +This is a nipanel example that displays an interactive Streamlit app and updates its values. ### Feature diff --git a/examples/sample/sample.py b/examples/sample/sample.py index 26fe4e1..a6d867f 100644 --- a/examples/sample/sample.py +++ b/examples/sample/sample.py @@ -1,11 +1,11 @@ """This example demonstrates how to open/update a Streamlit application using nipanel package.""" -import os +import pathlib import nipanel -script_path = os.path.dirname(os.path.abspath(__file__)) -panel_script_path = os.path.join(script_path, "sample_panel.py") +script_path = pathlib.Path(__file__) +panel_script_path = str(script_path.with_name("sample_panel.py")) panel = nipanel.StreamlitPanel( panel_id="sample_panel",