Мне нужно добавить строки сериализованного подкласса BaseModel и отобразить их в потоковом режиме. Проблема в том, что некоторые поля являются необязательными и иногда отсутствуют. Я попробовал несколько способов предварительного указания типов столбцов:
установив их в pandas.DataFrame, который используется для инициализацииstreamlit.dataframe
установив Column_config
Похоже, ничего из этого не работает (см. код ниже). Любые советы приветствуются
Код установки
import pandas as pd
import numpy as np
from pydantic import BaseModel
import streamlit as st
from functools import partial
from typing import Optional
class MyModel(BaseModel):
first: str
second: Optional[str]
date: datetime.datetime = datetime.datetime.today()
st.session_state['df_reports'] = st_from_base_model(ReportFrontPageTyped)
examples = [MyModel(**{"first":x, "second":chr(ord(x)+5) if ord(x)%3==0 else None}) for x in "hello world!"]
for ex in examples:
df_ = format_metadata([ex])
st.session_state['df_reports'].add_rows(df_)
time.sleep(2)
Unsupported operation. The data passed into add_rows() must have the same data signature as the original data.
In this case, add_rows() received ["unicode","unicode","unicode","unicode","unicode","unicode","unicode","unicode","unicode","unicode","datetime","unicode"] but was expecting ["empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","datetime","empty"].
elementType 'alert' is not a valid arrowAddRows target!
в зависимости от входных данных.
Я пытаюсь понять, как данные представлены в потоке данных и где я могу увидеть текущие типы данных ( код кажется довольно неясным).
Мне нужно добавить строки сериализованного подкласса BaseModel и отобразить их в потоковом режиме. Проблема в том, что некоторые поля являются необязательными и иногда отсутствуют. Я попробовал несколько способов предварительного указания типов столбцов: [list] [*]установив их в pandas.DataFrame, который используется для инициализацииstreamlit.dataframe установив Column_config [/list] Похоже, ничего из этого не работает (см. код ниже). Любые советы приветствуются Код установки [code]import pandas as pd import numpy as np from pydantic import BaseModel import streamlit as st from functools import partial
def st_from_base_model(bm: BaseModel): col_types = {kk: TYPE_TO_STREAMLIT[remove_optional(ff.annotation)](kk.replace('_', ' ')) for kk,ff in bm.model_fields.items()} df_ = df_from_base_model(bm) return st.dataframe(df_, column_config=col_types)
def format_metadata(report_metadatas: List[MyModel]) -> pd.DataFrame: bm = MyModel col_types = {kk: remove_optional(ff.annotation) for kk, ff in bm.model_fields.items()} df_ = [md.model_dump() for md in report_metadatas] df_ = pd.DataFrame(df_) df_ = df_.astype(col_types) return df_
[/code] Фактический код [code]import pandas as pd import numpy as np from pydantic import BaseModel import streamlit as st from functools import partial from typing import Optional
class MyModel(BaseModel): first: str second: Optional[str] date: datetime.datetime = datetime.datetime.today()
examples = [MyModel(**{"first":x, "second":chr(ord(x)+5) if ord(x)%3==0 else None}) for x in "hello world!"]
for ex in examples: df_ = format_metadata([ex]) st.session_state['df_reports'].add_rows(df_) time.sleep(2)
[/code] Я все еще получаю: [code]Unsupported operation. The data passed into add_rows() must have the same data signature as the original data.
In this case, add_rows() received ["unicode","unicode","unicode","unicode","unicode","unicode","unicode","unicode","unicode","unicode","datetime","unicode"] but was expecting ["empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","datetime","empty"]. [/code] или [code]elementType 'alert' is not a valid arrowAddRows target! [/code] в зависимости от входных данных. Я пытаюсь понять, как данные представлены в потоке данных и где я могу увидеть текущие типы данных ( код кажется довольно неясным).
Мне нужно добавить строки сериализованного подкласса BaseModel и отобразить их в потоковом режиме. Проблема в том, что некоторые поля являются необязательными и иногда отсутствуют. При их отсутствии тип столбца инициализированной таблицы будет...
Я пытаюсь создать панель мониторинга с несколькими вкладками. Все вкладки имеют общий код, а также специальный код для создания вкладки. Я пробовал использовать настоящие вкладки, но при этом всегда выполняется весь код всех вкладок. Так, например,...
Я хотел бы провести оценку модели с помощью LangSmith. Я создал небольшое приложение на основе руководства ( Все работает нормально, пока не используются переменные с потоковым освещением. Вот шаги, которые я выполнил: