Skip to content

Commit a8002b1

Browse files
committed
fix for pydantic<2
1 parent 5a04d7c commit a8002b1

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

trubrics/integrations/streamlit/collect.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def st_feedback(
9696
else:
9797
if success_fail_message:
9898
st.success("Feedback saved to Trubrics.")
99-
return feedback.model_dump()
99+
return self._pydantic_to_dict(feedback)
100100
else:
101101
user_response = Response(**user_response)
102102
feedback = Feedback(
@@ -108,15 +108,15 @@ def st_feedback(
108108
tags=tags,
109109
metadata=metadata,
110110
)
111-
return feedback.model_dump()
111+
return self._pydantic_to_dict(feedback)
112112
elif feedback_type in ("thumbs", "faces"):
113113

114114
def _log_feedback_trubrics(user_response, **kwargs):
115115
feedback = self.log_feedback(user_response=user_response, **kwargs)
116116
if success_fail_message:
117117
if feedback:
118118
st.toast("Feedback saved to [Trubrics](https://trubrics.streamlit.app/).", icon="✅")
119-
return feedback.model_dump()
119+
return self._pydantic_to_dict(feedback)
120120
else:
121121
st.toast("Error in saving feedback to [Trubrics](https://trubrics.streamlit.app/).", icon="❌")
122122

@@ -147,12 +147,20 @@ def _log_feedback_trubrics(user_response, **kwargs):
147147
tags=tags,
148148
metadata=metadata,
149149
)
150-
return feedback.model_dump()
150+
return self._pydantic_to_dict(feedback)
151151
return user_response
152152
else:
153153
raise ValueError("feedback_type must be one of ['textbox', 'faces', 'thumbs'].")
154154
return None
155155

156+
@staticmethod
157+
def _pydantic_to_dict(feedback: Feedback) -> dict:
158+
"""Support for pydantic v1 and v2."""
159+
try:
160+
return feedback.model_dump()
161+
except AttributeError:
162+
return feedback.dict()
163+
156164
@staticmethod
157165
def st_textbox_ui(
158166
type: str = "text-input", key: Optional[str] = None, label: Optional[str] = None
@@ -188,6 +196,7 @@ def clear_session_state():
188196
)
189197
elif type == "text-area":
190198
title = st.text_area(label=label or "Provide some feedback", key=f"{key}_title")
199+
191200
if title:
192201
st.button("Save feedback", on_click=clear_session_state, key=f"{key}_save_button")
193202
if st.session_state[f"{key}_save_button"]:

0 commit comments

Comments
 (0)