From b616d1ad173bd90e5e3c214eab8e3a19fe263a63 Mon Sep 17 00:00:00 2001 From: LUIS NOVO Date: Fri, 1 Nov 2024 22:01:25 -0300 Subject: [PATCH] page location refactor --- pages/2_📒_Notebooks.py | 14 +++++------- pages/3_🔍_Search.py | 11 ++++------ pages/5_🎙️_Podcasts.py | 8 ++----- pages/7_⚙️_Settings.py | 7 ++---- pages/8_🛝_Playground.py | 7 ++---- {stream_app => pages/stream_app}/__init__.py | 0 {stream_app => pages/stream_app}/chat.py | 3 ++- {stream_app => pages/stream_app}/consts.py | 0 {stream_app => pages/stream_app}/note.py | 1 - {stream_app => pages/stream_app}/source.py | 0 {stream_app => pages/stream_app}/utils.py | 23 ++++++++++++++++++-- 11 files changed, 38 insertions(+), 36 deletions(-) rename {stream_app => pages/stream_app}/__init__.py (100%) rename {stream_app => pages/stream_app}/chat.py (98%) rename {stream_app => pages/stream_app}/consts.py (100%) rename {stream_app => pages/stream_app}/note.py (99%) rename {stream_app => pages/stream_app}/source.py (100%) rename {stream_app => pages/stream_app}/utils.py (85%) diff --git a/pages/2_📒_Notebooks.py b/pages/2_📒_Notebooks.py index 2193425..f9eb191 100644 --- a/pages/2_📒_Notebooks.py +++ b/pages/2_📒_Notebooks.py @@ -2,16 +2,12 @@ import streamlit as st from humanize import naturaltime from open_notebook.domain.notebook import Notebook -from stream_app.chat import chat_sidebar -from stream_app.note import add_note, note_card -from stream_app.source import add_source, source_card -from stream_app.utils import page_commons, setup_stream_state +from pages.stream_app.chat import chat_sidebar +from pages.stream_app.note import add_note, note_card +from pages.stream_app.source import add_source, source_card +from pages.stream_app.utils import setup_page, setup_stream_state -st.set_page_config( - layout="wide", page_title="📒 Open Notebook", initial_sidebar_state="expanded" -) - -page_commons() +setup_page("📒 Open Notebook") def notebook_header(current_notebook): diff --git a/pages/3_🔍_Search.py b/pages/3_🔍_Search.py index 1d7dd4d..c0a7b84 100644 --- a/pages/3_🔍_Search.py +++ b/pages/3_🔍_Search.py @@ -2,14 +2,11 @@ import streamlit as st from open_notebook.domain.notebook import text_search, vector_search from open_notebook.models import EmbeddingModel, model_manager -from stream_app.note import note_list_item -from stream_app.source import source_list_item -from stream_app.utils import page_commons +from pages.stream_app.note import note_list_item +from pages.stream_app.source import source_list_item +from pages.stream_app.utils import setup_page -st.set_page_config( - layout="wide", page_title="🔍 Search", initial_sidebar_state="expanded" -) -page_commons() +setup_page("🔍 Search") EMBEDDING_MODEL: EmbeddingModel = model_manager.get_default_model("embedding") diff --git a/pages/5_🎙️_Podcasts.py b/pages/5_🎙️_Podcasts.py index baec9c0..d15559e 100644 --- a/pages/5_🎙️_Podcasts.py +++ b/pages/5_🎙️_Podcasts.py @@ -12,13 +12,9 @@ from open_notebook.plugins.podcasts import ( engagement_techniques, participant_roles, ) -from stream_app.utils import page_commons +from pages.stream_app.utils import setup_page -st.set_page_config( - layout="wide", page_title="🎙️ Podcasts", initial_sidebar_state="expanded" -) - -page_commons() +setup_page("🎙️ Podcasts") text_to_speech_models = Model.get_models_by_type("text_to_speech") diff --git a/pages/7_⚙️_Settings.py b/pages/7_⚙️_Settings.py index 6bfc899..0d93594 100644 --- a/pages/7_⚙️_Settings.py +++ b/pages/7_⚙️_Settings.py @@ -4,12 +4,9 @@ import streamlit as st from open_notebook.domain.models import DefaultModels, Model from open_notebook.models import MODEL_CLASS_MAP -from stream_app.utils import page_commons +from pages.stream_app.utils import setup_page -st.set_page_config( - layout="wide", page_title="⚙️ Settings", initial_sidebar_state="expanded" -) -page_commons() +setup_page("⚙️ Settings") st.title("⚙️ Settings") diff --git a/pages/8_🛝_Playground.py b/pages/8_🛝_Playground.py index b7151a5..5bcac7a 100644 --- a/pages/8_🛝_Playground.py +++ b/pages/8_🛝_Playground.py @@ -3,12 +3,9 @@ import yaml from open_notebook.domain.models import Model from open_notebook.graphs.multipattern import graph as pattern_graph -from stream_app.utils import page_commons +from pages.stream_app.utils import setup_page -st.set_page_config( - layout="wide", page_title="🛝 Playground", initial_sidebar_state="expanded" -) -page_commons() +setup_page("🛝 Playground") st.title("🛝 Playground") with open("transformations.yaml", "r") as file: diff --git a/stream_app/__init__.py b/pages/stream_app/__init__.py similarity index 100% rename from stream_app/__init__.py rename to pages/stream_app/__init__.py diff --git a/stream_app/chat.py b/pages/stream_app/chat.py similarity index 98% rename from stream_app/chat.py rename to pages/stream_app/chat.py index 00d8bd5..c3c2426 100644 --- a/stream_app/chat.py +++ b/pages/stream_app/chat.py @@ -5,7 +5,8 @@ from open_notebook.domain.notebook import Note, Source from open_notebook.graphs.chat import graph as chat_graph from open_notebook.plugins.podcasts import PodcastConfig from open_notebook.utils import token_count -from stream_app.note import make_note_from_chat + +from .note import make_note_from_chat # todo: build a smarter, more robust context manager function diff --git a/stream_app/consts.py b/pages/stream_app/consts.py similarity index 100% rename from stream_app/consts.py rename to pages/stream_app/consts.py diff --git a/stream_app/note.py b/pages/stream_app/note.py similarity index 99% rename from stream_app/note.py rename to pages/stream_app/note.py index 2d1f5a4..f22e29c 100644 --- a/stream_app/note.py +++ b/pages/stream_app/note.py @@ -94,7 +94,6 @@ def note_card(session_id, note): def note_list_item(note_id, score=None): - logger.debug(note_id) note: Note = Note.get(note_id) if note.note_type == "human": icon = "🤵" diff --git a/stream_app/source.py b/pages/stream_app/source.py similarity index 100% rename from stream_app/source.py rename to pages/stream_app/source.py diff --git a/stream_app/utils.py b/pages/stream_app/utils.py similarity index 85% rename from stream_app/utils.py rename to pages/stream_app/utils.py index fc3800c..69bf78e 100644 --- a/stream_app/utils.py +++ b/pages/stream_app/utils.py @@ -1,4 +1,5 @@ import streamlit as st +from loguru import logger from open_notebook.database.migrate import MigrationManager from open_notebook.graphs.chat import ThreadState, graph @@ -90,7 +91,25 @@ def check_models(): st.stop() -def page_commons(): - version_sidebar() +def handle_error(func): + """Decorator for consistent error handling""" + + def wrapper(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception as e: + logger.error(f"Error in {func.__name__}: {str(e)}") + logger.exception(e) + st.error(f"An error occurred: {str(e)}") + + return wrapper + + +def setup_page(title: str, layout="wide", sidebar_state="expanded"): + """Common page setup for all pages""" + st.set_page_config( + page_title=title, layout=layout, initial_sidebar_state=sidebar_state + ) check_migration() check_models() + version_sidebar()