-
Notifications
You must be signed in to change notification settings - Fork 645
Docs: clarify picklable requirement for st.cache_resource #1398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Docs: clarify picklable requirement for st.cache_resource #1398
Conversation
…picklable requirement for st.cache_resource Clarifies that `st.cache_resource` requires pickle-able objects in addition to being hashable, aligning the documentation with current caching behavior and addressing confusion reported in streamlit/streamlit#13480.
| **hashable**. Objects that contain non-pickleable elements (such as functions) | ||
| may raise errors like `TypeError: cannot pickle 'function' object`. | ||
|
|
||
| </Note> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems OK to me, it might be good to go into a bit more detail on the reason for the implementation. For example,
Streamlit's rerun model requires content-based hashing which is provided by python's
__reduce__()method which means that objects must not only be hashable but also pickle-able. Objects that contain non-pickleable elements (such as functions) may raise errors likeTypeError: cannot pickle 'function' object.
I am wondering whether we should change the actual error. Do you have any suggestions @sfc-gh-dmatthews
|
@sfc-gh-lwilby Thanks for the suggestion! That makes sense. |
|
Docs: clarify picklable requirement for st.cache_resource Clarifies that st.cache_resource requires pickle-able objects in addition to 📚 Context This change clarifies a documented requirement mismatch discussed in #1399, 🧠 Description of ChangesAdded a documentation note explaining that st.cache_resource requires This helps prevent confusion around errors such as: TypeError: cannot pickle 'function' object 💥 Impact Size:Small 🌐 References #1399 — Error (TypeError: cannot pickle 'function' object) thrown in 📜 Contribution License Agreement By submitting this pull request, you agree that all contributions to this project |
Docs: clarify why st.cache_resource requires pickleable objects
Docs: clarify picklable requirement for st.cache_resource
Clarifies that st.cache_resource requires pickle-able objects in addition to
being hashable, aligning the documentation with current caching behavior and
addressing confusion reported in #1399.
📚 Context
This change clarifies a documented requirement mismatch discussed in #1399,
where st.cache_resource requires objects to be pickle-able in addition to
being hashable.
🧠 Description of Changes
Added a documentation note explaining that st.cache_resource requires
pickle-able objects in addition to being hashable.
This helps prevent confusion around errors such as: TypeError: cannot pickle 'function' object
💥 Impact
Size:Small
🌐 References
#1399 — Error (TypeError: cannot pickle 'function' object) thrown in
st.cache_resource is confusing because the documentation previously mentioned
only hashability, while pickle-ability is also required.
📜 Contribution License Agreement
By submitting this pull request, you agree that all contributions to this project
are made under the Apache 2.0 license