Spaces:
Sleeping
Sleeping
rmm
commited on
Commit
·
06a0df9
1
Parent(s):
774a646
chore: cleanup variable names and add docstrings
Browse files- src/input/input_handling.py +1 -1
- src/main.py +4 -4
- src/utils/workflow_ui.py +32 -9
src/input/input_handling.py
CHANGED
|
@@ -393,7 +393,7 @@ def add_input_UI_elements() -> None:
|
|
| 393 |
st.session_state.container_metadata_inputs = container_metadata_inputs
|
| 394 |
|
| 395 |
|
| 396 |
-
def dbg_show_observation_hashes():
|
| 397 |
"""
|
| 398 |
Displays information about each observation including the hash
|
| 399 |
|
|
|
|
| 393 |
st.session_state.container_metadata_inputs = container_metadata_inputs
|
| 394 |
|
| 395 |
|
| 396 |
+
def dbg_show_observation_hashes() -> None:
|
| 397 |
"""
|
| 398 |
Displays information about each observation including the hash
|
| 399 |
|
src/main.py
CHANGED
|
@@ -24,7 +24,7 @@ from maps.alps_map import present_alps_map
|
|
| 24 |
from maps.obs_map import present_obs_map
|
| 25 |
from utils.st_logs import setup_logging, parse_log_buffer
|
| 26 |
from utils.workflow_state import WorkflowFSM, FSM_STATES
|
| 27 |
-
from utils.workflow_ui import
|
| 28 |
from hf_push_observations import push_all_observations
|
| 29 |
|
| 30 |
from classifier.classifier_image import cetacean_just_classify, cetacean_show_results_and_review, cetacean_show_results
|
|
@@ -117,7 +117,7 @@ def main() -> None:
|
|
| 117 |
st.session_state.tab_log = tab_log
|
| 118 |
|
| 119 |
# put this early so the progress indicator is at the top (also refreshed at end)
|
| 120 |
-
|
| 121 |
|
| 122 |
# create a sidebar, and parse all the input (returned as `observations` object)
|
| 123 |
with st.sidebar:
|
|
@@ -265,7 +265,7 @@ def main() -> None:
|
|
| 265 |
# trigger a refresh too (refreshhing the prog indicator means the script reruns and
|
| 266 |
# we can enter the next state - visualising the results / review)
|
| 267 |
# ok it doesn't if done programmatically. maybe interacting with teh button? check docs.
|
| 268 |
-
|
| 269 |
#TODO: validate this doesn't harm performance adversely.
|
| 270 |
st.rerun()
|
| 271 |
|
|
@@ -373,7 +373,7 @@ def main() -> None:
|
|
| 373 |
|
| 374 |
|
| 375 |
# after all other processing, we can show the stage/state
|
| 376 |
-
|
| 377 |
|
| 378 |
|
| 379 |
if __name__ == "__main__":
|
|
|
|
| 24 |
from maps.obs_map import present_obs_map
|
| 25 |
from utils.st_logs import setup_logging, parse_log_buffer
|
| 26 |
from utils.workflow_state import WorkflowFSM, FSM_STATES
|
| 27 |
+
from utils.workflow_ui import refresh_progress_display, init_workflow_viz
|
| 28 |
from hf_push_observations import push_all_observations
|
| 29 |
|
| 30 |
from classifier.classifier_image import cetacean_just_classify, cetacean_show_results_and_review, cetacean_show_results
|
|
|
|
| 117 |
st.session_state.tab_log = tab_log
|
| 118 |
|
| 119 |
# put this early so the progress indicator is at the top (also refreshed at end)
|
| 120 |
+
refresh_progress_display()
|
| 121 |
|
| 122 |
# create a sidebar, and parse all the input (returned as `observations` object)
|
| 123 |
with st.sidebar:
|
|
|
|
| 265 |
# trigger a refresh too (refreshhing the prog indicator means the script reruns and
|
| 266 |
# we can enter the next state - visualising the results / review)
|
| 267 |
# ok it doesn't if done programmatically. maybe interacting with teh button? check docs.
|
| 268 |
+
refresh_progress_display()
|
| 269 |
#TODO: validate this doesn't harm performance adversely.
|
| 270 |
st.rerun()
|
| 271 |
|
|
|
|
| 373 |
|
| 374 |
|
| 375 |
# after all other processing, we can show the stage/state
|
| 376 |
+
refresh_progress_display()
|
| 377 |
|
| 378 |
|
| 379 |
if __name__ == "__main__":
|
src/utils/workflow_ui.py
CHANGED
|
@@ -1,18 +1,41 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
|
| 3 |
-
def
|
|
|
|
|
|
|
|
|
|
| 4 |
with st.sidebar:
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
-
|
| 12 |
# add progress indicator to session_state
|
| 13 |
if "progress" not in st.session_state:
|
| 14 |
with st.sidebar:
|
| 15 |
st.session_state.disp_progress = [st.empty(), st.empty()]
|
| 16 |
-
|
| 17 |
-
|
|
|
|
| 18 |
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
|
| 3 |
+
def refresh_progress_display() -> None:
|
| 4 |
+
"""
|
| 5 |
+
Updates the workflow progress display in the Streamlit sidebar.
|
| 6 |
+
"""
|
| 7 |
with st.sidebar:
|
| 8 |
+
num_states = st.session_state.workflow_fsm.num_states - 1
|
| 9 |
+
current_state_index = st.session_state.workflow_fsm.current_state_index
|
| 10 |
+
current_state_name = st.session_state.workflow_fsm.current_state
|
| 11 |
+
colour = 'primary'
|
| 12 |
+
if current_state_index == num_states: # highlight that we finished
|
| 13 |
+
colour = 'green'
|
| 14 |
+
status = f":{colour}[*Progress: {current_state_index}/{num_states}. Current: {current_state_name}.*]"
|
| 15 |
+
|
| 16 |
+
st.session_state.disp_progress[0].markdown(status)
|
| 17 |
+
st.session_state.disp_progress[1].progress(current_state_index/num_states)
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
def init_workflow_viz(debug:bool=True) -> None:
|
| 21 |
+
"""
|
| 22 |
+
Set up the streamlit elements for visualising the workflow progress.
|
| 23 |
+
|
| 24 |
+
Adds placeholders for progress indicators, and adds a button to manually refresh
|
| 25 |
+
the displayed progress. Note: The button is mainly a development aid.
|
| 26 |
+
|
| 27 |
+
Args:
|
| 28 |
+
debug (bool): If True, include the manual refresh button. Default is True.
|
| 29 |
+
|
| 30 |
+
"""
|
| 31 |
+
|
| 32 |
|
| 33 |
+
#Initialise the layout containers used in the input handling
|
| 34 |
# add progress indicator to session_state
|
| 35 |
if "progress" not in st.session_state:
|
| 36 |
with st.sidebar:
|
| 37 |
st.session_state.disp_progress = [st.empty(), st.empty()]
|
| 38 |
+
if debug:
|
| 39 |
+
# add button to sidebar, with the callback to refesh_progress
|
| 40 |
+
st.sidebar.button("Refresh Progress", on_click=refresh_progress_display)
|
| 41 |
|