Как создать панель мониторинга Streamlit с сохранением состояния в JSON? ⇐ Python
-
Anonymous
Как создать панель мониторинга Streamlit с сохранением состояния в JSON?
Я работаю над проектом информационной панели Streamlit, в котором мне нужно сохранить состояние приложения, включая различные параметры и поведение, в формате JSON. Цель состоит в том, чтобы гарантировать, что когда пользователи взаимодействуют с панелью мониторинга и вносят изменения в параметры, эти изменения автоматически сериализуются в JSON и сохраняются. При обновлении или повторном посещении информационной панели состояние должно автоматически загружаться из файла JSON
.
Вот пример Python I'
Сейчас я работаю над: питон Скопировать код импортировать ОС импортировать JSON от ввода списка импорта из pydantic import BaseModel, root_validator STATE_PATH = os.path.join(os.getcwd(), 'crop_state.json') класс SelectCameraState (BaseModel): selected_cameras: Список[str] класс CropState(BaseModel): Crop_type: str # Привязка/Фиксированная bbox: Список[int] якорный_класс: ул якорь_позиция: Список[int] класс ProcessState(BaseModel): Feature_extractor: ул embedding_processor: ул outlier_detector: ул класс ApplicationState(BaseModel): camera_select_state: SelectCameraState Crop_state: CropState Конфигурация класса: validate_assignment = Истина @root_validator Защиту update_property (cls, значения): с open(STATE_PATH, 'w') как f: f.write(json.dumps(значения)) а = Состояние приложения() a.camera_select_state = SelectCameraState() a.camera_select_state.selected_cameras = ["бла"] Однако при таком подходе я столкнулся с некоторыми проблемами:
При использовании моделей Pydantic изменения в изменяемых объектах, таких как списки, не распознаются автоматически корневым валидатором, что приводит к проблемам с сохранением состояния.
Этот подход не соответствует традиционным шаблонам управления состоянием в приложениях Streamlit.
Мне нужно руководство о том, как более эффективно и привычно реализовать сохранение состояния на информационной панели Streamlit. Я открыт для предложений по шаблонам проектирования, библиотекам и методам, которые помогут мне добиться сохранения состояния в Streamlit, приспосабливая изменения к изменяемым объектам и сохраняя чистый, организованный код.
Мы будем очень признательны за любые советы, примеры кода или рекомендации по управлению сохранением состояния в Streamlit.
Я работаю над проектом информационной панели Streamlit, в котором мне нужно сохранить состояние приложения, включая различные параметры и поведение, в формате JSON. Цель состоит в том, чтобы гарантировать, что когда пользователи взаимодействуют с панелью мониторинга и вносят изменения в параметры, эти изменения автоматически сериализуются в JSON и сохраняются. При обновлении или повторном посещении информационной панели состояние должно автоматически загружаться из файла JSON
.
Вот пример Python I'
Сейчас я работаю над: питон Скопировать код импортировать ОС импортировать JSON от ввода списка импорта из pydantic import BaseModel, root_validator STATE_PATH = os.path.join(os.getcwd(), 'crop_state.json') класс SelectCameraState (BaseModel): selected_cameras: Список[str] класс CropState(BaseModel): Crop_type: str # Привязка/Фиксированная bbox: Список[int] якорный_класс: ул якорь_позиция: Список[int] класс ProcessState(BaseModel): Feature_extractor: ул embedding_processor: ул outlier_detector: ул класс ApplicationState(BaseModel): camera_select_state: SelectCameraState Crop_state: CropState Конфигурация класса: validate_assignment = Истина @root_validator Защиту update_property (cls, значения): с open(STATE_PATH, 'w') как f: f.write(json.dumps(значения)) а = Состояние приложения() a.camera_select_state = SelectCameraState() a.camera_select_state.selected_cameras = ["бла"] Однако при таком подходе я столкнулся с некоторыми проблемами:
При использовании моделей Pydantic изменения в изменяемых объектах, таких как списки, не распознаются автоматически корневым валидатором, что приводит к проблемам с сохранением состояния.
Этот подход не соответствует традиционным шаблонам управления состоянием в приложениях Streamlit.
Мне нужно руководство о том, как более эффективно и привычно реализовать сохранение состояния на информационной панели Streamlit. Я открыт для предложений по шаблонам проектирования, библиотекам и методам, которые помогут мне добиться сохранения состояния в Streamlit, приспосабливая изменения к изменяемым объектам и сохраняя чистый, организованный код.
Мы будем очень признательны за любые советы, примеры кода или рекомендации по управлению сохранением состояния в Streamlit.
Мобильная версия