Version 1.23.0


  • :scissors: Announcing the general availability of st.data_editor, a widget that allows you to edit DataFrames and many other data structures in a table-like UI. Breaking change: the data editor’s representation used in st.session_state was altered. Find out more about the new format in Access edited data.
  • :gear: Introducing the Column configuration API with a suite of methods to configure the display and editing behavior of st.dataframe and st.data_editor columns (e.g. their title, visibility, type, or format). Keep an eye out for a detailed blog post and in-depth documentation upcoming in the next two weeks.
  • :electric_plug: Learn to use st.experimental_connection to create and manage data connections in your apps with the new Connecting to data docs and video tutorial.

Notable Changes

  • :bar_chart: Streamlit now supports Protobuf 4 and Altair 5 (#6215, #6618, #5626, #6622).
  • :phone: st.dataframe and st.data_editor can hide index columns with hide_index, specify the display order of columns with column_order, and disable editing for individual columns with the disabled parameter.
  • :stopwatch: The ttl parameter in st.cache_data and st.cache_resource accepts formatted strings, so you can simply say ttl="30d", ttl="1h30m" and any other combination of w, d, h, m, s supported by Pandas’s Timedelta constructor (#6560).
  • :open_file_folder: st.file_uploader now interprets the type parameter more accurately. For example, “jpg” or “.jpg” now accept both “jpg” and “jpeg” extensions. This functionality has also been extended to “mpeg/mpg”, “tiff/tif”, “html/htm”, and “mpeg4/mp4”.
  • :shushing_face: The new global.disableWidgetStateDuplicationWarning configuration option allows the silencing of warnings triggered by setting widget default values and keyed session state values concurrently (#3605, #6640). Thanks, @antonAce!

Other Changes

  • :running_woman:Improved startup time by lazy loading some dependencies (#6531).
  • :wave: Removed st.beta_* and st.experimental_show due to deprecation and low-use (#6558)
  • :rocket: Further improvements to st.dataframe and st.data_editor:
    • Improved editing on mobile devices for the data editor (#6548).
    • All editable columns have an icon in their column header and support tooltips (#6550, #6561).
    • Enable editing for columns containing datetime, date, or time values (#6025).
    • New input validation options for columns in the data editor, such as max_chars and validate for text columns, and min_value, max_value and step for number columns (#6563).
    • Improved type parsing capabilities in the data editor (#6551).
    • Unified missing values to None in returned data structures (#6544).
    • A warning is shown in cells when integers exceed the maximum safe value of (2^53) -1 (#6311, #6549).
    • Prevented editing the sessions state by showing a warning (#6634).
    • Fixed issues with list columns sometimes breaking the frontend (#6644).
    • Fixed a display issue with index columns using category dtype (#6680, #6598).
    • Fixed an issue that prevented a rerun when adding empty rows (#6598).
    • Unified the behavior between st.data_editor and st.dataframe related to auto-hiding the index column(s) based on the input data (#6659, #6598)
  • :shield: Streamlit’s Security Policy can be found in its GitHub repository (#6666).
  • :pinching_hand: Documented the integer size limit for st.number_input and st.slider (#6724).
  • :snake: The majority of Streamlit’s Python dependencies have set a maximum allowable version, with the standard upper limit set to the next major version, but not inclusive of it (#6691).
  • :nail_care: UI design improvements to in-app modals (#6688).
  • :lady_beetle: Bug fix: st.date_input’s date selector is equally visible in dark mode (#6072, #6630).
  • :ant: Bug fix: the sidebar navigation expansion indicator in multipage apps is restored (#6731).
  • :bug: Bug fix: The docstring and exception message for st.set_page_config have been updated to clarify that this command can be invoked once for each page within a multipage app, rather than once per entire app (#6594).
  • :honeybee: Bug fix: st.json no longer collapses multiple spaces in both keys and values with single space when rendered (#6657, #6663).

Awesome features, thank you so much! Just a question - are you planning a feature, where user can select a row in the dataframe, and dataframe returns the user selected row?

1 Like

Great release! Data editor is now so powerful that you have to use it whenever possible. Makes it a “destination feature”, the Sandals of streamlit.

Really appreciate the integer size warning, that will come in handy when I finish counting down the seconds until the sun dies. :wink:


Row selections are part of our roadmap. We had to pause development on that feature for some higher priority projects, but we will continue working on it later this year. In the meantime, you can already achieve something very similar by using st.data_editor with a checkbox / boolean column and all other columns disabled (via disabled).

1 Like

Amazing work, love it thank you
Is there a way to add buttons and Column Filters in the data_editor?
This will make me totally shift from aggrid !

1 Like

We have these aspects on our roadmap, but unfortunately, no estimate of when we might get to this. For filters, you can help us prioritize by upvoting this issue on GitHub. I don’t think there is an enhancement request yet for button columns, so feel free to add that on GitHub :slight_smile:

Great release as always!
Keep up the good work :muscle:

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.