I am so excited to announce some special features in this release! Thank you so much for your help supporting us as we settle into our new home within Snowflake !
Highlights
Introducing native support for multipage apps! Check out our blog post and try out our new streamlit hello
Notable Changes
st.dataframe has been redesigned
st.radio has a horizontal keyword-only parameter to display options horizontally
Streamlit Cloud will support richer exception formatting
Get user information on private apps using st.experimental_user
Other Changes
Upgraded Vega-Lite library to support even more interactive charting improvements. See their release notes to find out more. (#4751)
st.vega_lite_chart will respond to updates, particularly in response to input widgets (#4736)
st.markdown with long text will always wrap (#4696)
Very exiting. I tried to upgrade but it sadly instantly broke my existing apps . More specifcially I’m already using the old multipage library and happen to have a folder called “pages”. Can I change some set_page_config such that the new native multipage functions looks for a differently named folder with a custom name instead of having it hardcoded to “pages”? Had to roll back to 1.9.2 and cannot upgrade if this doesn’t get fixed.
Thank you for the new Streamlit version - the dataframe (df) enhancements are very nice. I have a few queries though:
On my test, I found that the df is not editable a la aggrid - it would be really nice to have this functionality
If the df / csv file has a boolean column, checkboxes appear in that column. It would be if I can change the checkbox value by clicking it. Additionally, how do I get images and bubbles?
Is there is still no way to tell on which row my cursor is on?
1+2: There’s no way to edit data and/or click the checkboxes yet. But this release and the new library we are using for dataframes brings us A LOT closer to that functionality. We still need to figure out the best API to handle edits and selections but our goal is to ship something in summer or fall.
Images are not possible yet (again, coming later this year!). You can get the bubbles if you put a list in your dataframe (I assume by bubbles you mean the thing on the right in the screenshot below, correct?).
3: Don’t really get what you mean, can you clarify?
Yes, you deduced points 1 & 2 correctly. Eagerly waiting the future functionality you mentioned.
Point #3: if I have a df displayed onscreen with st.dataframe, and I click on any row of that df, is it possible for me to internally, in my code, get back which row index has been clicked on? Can st.dataframe have that functionality?
Eg. #2, Suppose I click on row #3, can st.dataframe return #2 back to me…?
Use case: basis the click, and a combination of data in the cells of that clicked row, I can run other code or show stuff onscreen (that is only relevant for that combination of data)
Nice to see multipage apps are a reality!
Is it possible to somehow configure which page runs programatically (and hide the current menu) ?
I would love to use a custom header with navigation, but still have the multipage support with URLs.
In my opinion, though, it is not a best idea to use emojis in filenames. For example, I’ve got problems with “teradatasql” module. It seems, that driver sends filename via hidden parameters and teradata rejects the connection (“An illegally formed character string was encountered…”).
Is it possible to add some settings to pages: cuistom icon, page name and visibility (via set_page_config or smth similar)? We can set all pages settings inside every page, for example.
No kidding! I pointed this out during development. There are a million possible pitfalls in the shell and in consumer applications for the files. I think it would be much better to do this as a section in config.toml:
[pageicons]
page1 = "😀" # quoted since they are strings
page2 = "🌏"
page3 = "`:1st_place_medal:` " # also allow entry in colon delimited format
Ubuntu 22.04, Anaconda package (python 3.9.12)
streamlit version 1.9.x is running perfectly.
After successful install to version 1.10.0, run streamlit --version:
Traceback (most recent call last):
File “/home/charliechu/conda/bin/streamlit”, line 5, in
from streamlit.cli import main
File “/home/charliechu/conda/lib/python3.9/site-packages/streamlit/init.py”, line 48, in
from streamlit.proto.RootContainer_pb2 import RootContainer
File “/home/charliechu/conda/lib/python3.9/site-packages/streamlit/proto/RootContainer_pb2.py”, line 5, in
from google.protobuf.internal import enum_type_wrapper
ModuleNotFoundError: No module named ‘google.protobuf’
I don’t think I see anyone else commenting on this one, so let me say that #4696 – better wrapping of long text in markdown – is super appreciated by me, as a person who has a LOT of long text in markdown.
Hey @Ascetic168 Sorry for the delay. So that means the protobuf library wasn’t installed in Conda. You can fix this by running conda install protobuf=3.20.1 (the latest version 3) and hopefully that fixes the issue.
I believe 1.12.0 was not added to conda-forge. I just added it and perhaps that will fix things. The meta.yml very specifically requests for protobuf, so I am unsure why it might be removed .
@kmcgrady Are there any updates on hiding row indices with st.dataframe as of streamlit>=1.10.0. I haven’t upgraded yet due to to this missing feature.
No clear plan on removing indices yet. I will tag @lukasmasuch in this as he has been working a lot on dataframes. Hopefully we can think of a solution.
@lukasmasuch@kmcgrady@randyzwitch Any plans in the near future on hiding row indices with st.dataframe as of streamlit>=1.10.0. I haven’t upgraded yet due to to this missing feature.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.