streamlit-nightly 1.41.2.dev20250107__py2.py3-none-any.whl → 1.41.2.dev20250109__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- streamlit/__init__.py +11 -2
- streamlit/__main__.py +1 -1
- streamlit/auth_util.py +209 -0
- streamlit/cli_util.py +1 -1
- streamlit/column_config.py +1 -1
- streamlit/commands/__init__.py +1 -1
- streamlit/commands/echo.py +1 -1
- streamlit/commands/execution_control.py +1 -1
- streamlit/commands/experimental_query_params.py +1 -1
- streamlit/commands/logo.py +1 -1
- streamlit/commands/navigation.py +1 -1
- streamlit/commands/page_config.py +1 -1
- streamlit/components/__init__.py +1 -1
- streamlit/components/lib/__init__.py +1 -1
- streamlit/components/lib/local_component_registry.py +1 -1
- streamlit/components/types/__init__.py +1 -1
- streamlit/components/types/base_component_registry.py +1 -1
- streamlit/components/types/base_custom_component.py +1 -1
- streamlit/components/v1/__init__.py +1 -1
- streamlit/components/v1/component_arrow.py +1 -1
- streamlit/components/v1/component_registry.py +1 -1
- streamlit/components/v1/components.py +1 -1
- streamlit/components/v1/custom_component.py +1 -1
- streamlit/config.py +1 -1
- streamlit/config_option.py +1 -1
- streamlit/config_util.py +1 -1
- streamlit/connections/__init__.py +1 -1
- streamlit/connections/base_connection.py +1 -1
- streamlit/connections/snowflake_connection.py +1 -1
- streamlit/connections/snowpark_connection.py +1 -1
- streamlit/connections/sql_connection.py +1 -1
- streamlit/connections/util.py +1 -1
- streamlit/cursor.py +1 -1
- streamlit/dataframe_util.py +1 -1
- streamlit/delta_generator.py +1 -1
- streamlit/delta_generator_singletons.py +1 -1
- streamlit/deprecation_util.py +1 -1
- streamlit/development.py +1 -1
- streamlit/elements/__init__.py +1 -1
- streamlit/elements/alert.py +1 -1
- streamlit/elements/arrow.py +1 -1
- streamlit/elements/balloons.py +1 -1
- streamlit/elements/bokeh_chart.py +1 -1
- streamlit/elements/code.py +1 -1
- streamlit/elements/deck_gl_json_chart.py +1 -1
- streamlit/elements/dialog_decorator.py +1 -1
- streamlit/elements/doc_string.py +1 -1
- streamlit/elements/empty.py +1 -1
- streamlit/elements/exception.py +1 -1
- streamlit/elements/form.py +1 -1
- streamlit/elements/graphviz_chart.py +1 -1
- streamlit/elements/heading.py +1 -1
- streamlit/elements/html.py +1 -1
- streamlit/elements/iframe.py +1 -1
- streamlit/elements/image.py +1 -1
- streamlit/elements/json.py +1 -1
- streamlit/elements/layouts.py +1 -1
- streamlit/elements/lib/__init__.py +1 -1
- streamlit/elements/lib/built_in_chart_utils.py +1 -1
- streamlit/elements/lib/color_util.py +1 -1
- streamlit/elements/lib/column_config_utils.py +1 -1
- streamlit/elements/lib/column_types.py +1 -1
- streamlit/elements/lib/dialog.py +1 -1
- streamlit/elements/lib/dicttools.py +1 -1
- streamlit/elements/lib/event_utils.py +1 -1
- streamlit/elements/lib/file_uploader_utils.py +1 -1
- streamlit/elements/lib/form_utils.py +1 -1
- streamlit/elements/lib/image_utils.py +1 -1
- streamlit/elements/lib/js_number.py +1 -1
- streamlit/elements/lib/mutable_status_container.py +1 -1
- streamlit/elements/lib/options_selector_utils.py +1 -1
- streamlit/elements/lib/pandas_styler_utils.py +1 -1
- streamlit/elements/lib/policies.py +1 -1
- streamlit/elements/lib/streamlit_plotly_theme.py +1 -1
- streamlit/elements/lib/subtitle_utils.py +1 -1
- streamlit/elements/lib/utils.py +1 -1
- streamlit/elements/map.py +1 -1
- streamlit/elements/markdown.py +1 -1
- streamlit/elements/media.py +1 -1
- streamlit/elements/metric.py +1 -1
- streamlit/elements/plotly_chart.py +1 -1
- streamlit/elements/progress.py +1 -1
- streamlit/elements/pyplot.py +1 -1
- streamlit/elements/snow.py +1 -1
- streamlit/elements/spinner.py +14 -7
- streamlit/elements/text.py +1 -1
- streamlit/elements/toast.py +1 -1
- streamlit/elements/vega_charts.py +1 -1
- streamlit/elements/widgets/__init__.py +1 -1
- streamlit/elements/widgets/audio_input.py +1 -1
- streamlit/elements/widgets/button.py +1 -1
- streamlit/elements/widgets/button_group.py +1 -1
- streamlit/elements/widgets/camera_input.py +1 -1
- streamlit/elements/widgets/chat.py +1 -1
- streamlit/elements/widgets/checkbox.py +1 -1
- streamlit/elements/widgets/color_picker.py +1 -1
- streamlit/elements/widgets/data_editor.py +1 -1
- streamlit/elements/widgets/file_uploader.py +1 -1
- streamlit/elements/widgets/multiselect.py +1 -1
- streamlit/elements/widgets/number_input.py +1 -1
- streamlit/elements/widgets/radio.py +1 -1
- streamlit/elements/widgets/select_slider.py +1 -1
- streamlit/elements/widgets/selectbox.py +1 -1
- streamlit/elements/widgets/slider.py +1 -1
- streamlit/elements/widgets/text_widgets.py +1 -1
- streamlit/elements/widgets/time_widgets.py +1 -1
- streamlit/elements/write.py +1 -1
- streamlit/emojis.py +1 -1
- streamlit/env_util.py +1 -1
- streamlit/error_util.py +1 -1
- streamlit/errors.py +5 -1
- streamlit/external/__init__.py +1 -1
- streamlit/external/langchain/__init__.py +1 -1
- streamlit/external/langchain/streamlit_callback_handler.py +1 -1
- streamlit/file_util.py +1 -1
- streamlit/git_util.py +1 -1
- streamlit/hello/__init__.py +1 -1
- streamlit/hello/animation_demo.py +1 -1
- streamlit/hello/dataframe_demo.py +1 -1
- streamlit/hello/hello.py +1 -1
- streamlit/hello/mapping_demo.py +1 -1
- streamlit/hello/plotting_demo.py +1 -1
- streamlit/hello/streamlit_app.py +1 -1
- streamlit/hello/utils.py +1 -1
- streamlit/logger.py +1 -1
- streamlit/material_icon_names.py +1 -1
- streamlit/navigation/__init__.py +1 -1
- streamlit/navigation/page.py +1 -1
- streamlit/net_util.py +1 -1
- streamlit/platform.py +1 -1
- streamlit/proto/Alert_pb2.pyi +1 -1
- streamlit/proto/AppPage_pb2.pyi +1 -1
- streamlit/proto/ArrowNamedDataSet_pb2.pyi +1 -1
- streamlit/proto/ArrowVegaLiteChart_pb2.pyi +1 -1
- streamlit/proto/Arrow_pb2.pyi +1 -1
- streamlit/proto/AudioInput_pb2.pyi +1 -1
- streamlit/proto/Audio_pb2.pyi +1 -1
- streamlit/proto/AuthRedirect_pb2.py +27 -0
- streamlit/proto/AuthRedirect_pb2.pyi +41 -0
- streamlit/proto/AutoRerun_pb2.pyi +1 -1
- streamlit/proto/BackMsg_pb2.pyi +1 -1
- streamlit/proto/Balloons_pb2.pyi +1 -1
- streamlit/proto/Block_pb2.pyi +1 -1
- streamlit/proto/BokehChart_pb2.pyi +1 -1
- streamlit/proto/ButtonGroup_pb2.pyi +1 -1
- streamlit/proto/Button_pb2.pyi +1 -1
- streamlit/proto/CameraInput_pb2.pyi +1 -1
- streamlit/proto/ChatInput_pb2.pyi +1 -1
- streamlit/proto/Checkbox_pb2.pyi +1 -1
- streamlit/proto/ClientState_pb2.pyi +1 -1
- streamlit/proto/Code_pb2.pyi +1 -1
- streamlit/proto/ColorPicker_pb2.pyi +1 -1
- streamlit/proto/Common_pb2.pyi +1 -1
- streamlit/proto/Components_pb2.pyi +1 -1
- streamlit/proto/DataFrame_pb2.pyi +1 -1
- streamlit/proto/DateInput_pb2.pyi +1 -1
- streamlit/proto/DeckGlJsonChart_pb2.pyi +1 -1
- streamlit/proto/Delta_pb2.pyi +1 -1
- streamlit/proto/DocString_pb2.pyi +1 -1
- streamlit/proto/DownloadButton_pb2.pyi +1 -1
- streamlit/proto/Element_pb2.pyi +1 -1
- streamlit/proto/Empty_pb2.pyi +1 -1
- streamlit/proto/Exception_pb2.pyi +1 -1
- streamlit/proto/Favicon_pb2.pyi +1 -1
- streamlit/proto/FileUploader_pb2.pyi +1 -1
- streamlit/proto/ForwardMsg_pb2.py +12 -9
- streamlit/proto/ForwardMsg_pb2.pyi +34 -4
- streamlit/proto/GitInfo_pb2.pyi +1 -1
- streamlit/proto/GraphVizChart_pb2.pyi +1 -1
- streamlit/proto/Heading_pb2.pyi +1 -1
- streamlit/proto/Html_pb2.pyi +1 -1
- streamlit/proto/IFrame_pb2.pyi +1 -1
- streamlit/proto/Image_pb2.pyi +1 -1
- streamlit/proto/Json_pb2.pyi +1 -1
- streamlit/proto/LabelVisibilityMessage_pb2.pyi +1 -1
- streamlit/proto/LinkButton_pb2.pyi +1 -1
- streamlit/proto/Logo_pb2.pyi +1 -1
- streamlit/proto/Markdown_pb2.pyi +1 -1
- streamlit/proto/Metric_pb2.pyi +1 -1
- streamlit/proto/MetricsEvent_pb2.pyi +1 -1
- streamlit/proto/MultiSelect_pb2.pyi +1 -1
- streamlit/proto/NamedDataSet_pb2.pyi +1 -1
- streamlit/proto/Navigation_pb2.pyi +1 -1
- streamlit/proto/NewSession_pb2.pyi +1 -1
- streamlit/proto/NumberInput_pb2.pyi +1 -1
- streamlit/proto/PageConfig_pb2.pyi +1 -1
- streamlit/proto/PageInfo_pb2.pyi +1 -1
- streamlit/proto/PageLink_pb2.pyi +1 -1
- streamlit/proto/PageNotFound_pb2.pyi +1 -1
- streamlit/proto/PageProfile_pb2.pyi +1 -1
- streamlit/proto/PagesChanged_pb2.pyi +1 -1
- streamlit/proto/ParentMessage_pb2.pyi +1 -1
- streamlit/proto/PlotlyChart_pb2.pyi +1 -1
- streamlit/proto/Progress_pb2.pyi +1 -1
- streamlit/proto/Radio_pb2.pyi +1 -1
- streamlit/proto/RootContainer_pb2.pyi +1 -1
- streamlit/proto/Selectbox_pb2.pyi +1 -1
- streamlit/proto/SessionEvent_pb2.pyi +1 -1
- streamlit/proto/SessionStatus_pb2.pyi +1 -1
- streamlit/proto/Skeleton_pb2.pyi +1 -1
- streamlit/proto/Slider_pb2.pyi +1 -1
- streamlit/proto/Snow_pb2.pyi +1 -1
- streamlit/proto/Spinner_pb2.py +2 -2
- streamlit/proto/Spinner_pb2.pyi +6 -2
- streamlit/proto/TextArea_pb2.pyi +1 -1
- streamlit/proto/TextInput_pb2.pyi +1 -1
- streamlit/proto/Text_pb2.pyi +1 -1
- streamlit/proto/TimeInput_pb2.pyi +1 -1
- streamlit/proto/Toast_pb2.pyi +1 -1
- streamlit/proto/VegaLiteChart_pb2.pyi +1 -1
- streamlit/proto/Video_pb2.pyi +1 -1
- streamlit/proto/WidgetStates_pb2.pyi +1 -1
- streamlit/proto/__init__.py +1 -1
- streamlit/runtime/__init__.py +1 -1
- streamlit/runtime/app_session.py +6 -4
- streamlit/runtime/caching/__init__.py +1 -1
- streamlit/runtime/caching/cache_data_api.py +1 -1
- streamlit/runtime/caching/cache_errors.py +1 -1
- streamlit/runtime/caching/cache_resource_api.py +1 -1
- streamlit/runtime/caching/cache_type.py +1 -1
- streamlit/runtime/caching/cache_utils.py +1 -1
- streamlit/runtime/caching/cached_message_replay.py +1 -1
- streamlit/runtime/caching/hashing.py +1 -1
- streamlit/runtime/caching/legacy_cache_api.py +1 -1
- streamlit/runtime/caching/storage/__init__.py +1 -1
- streamlit/runtime/caching/storage/cache_storage_protocol.py +1 -1
- streamlit/runtime/caching/storage/dummy_cache_storage.py +1 -1
- streamlit/runtime/caching/storage/in_memory_cache_storage_wrapper.py +1 -1
- streamlit/runtime/caching/storage/local_disk_cache_storage.py +1 -1
- streamlit/runtime/connection_factory.py +1 -1
- streamlit/runtime/context.py +1 -1
- streamlit/runtime/credentials.py +1 -1
- streamlit/runtime/forward_msg_cache.py +1 -1
- streamlit/runtime/forward_msg_queue.py +33 -5
- streamlit/runtime/fragment.py +2 -2
- streamlit/runtime/media_file_manager.py +1 -1
- streamlit/runtime/media_file_storage.py +1 -1
- streamlit/runtime/memory_media_file_storage.py +1 -1
- streamlit/runtime/memory_session_storage.py +1 -1
- streamlit/runtime/memory_uploaded_file_manager.py +1 -1
- streamlit/runtime/metrics_util.py +2 -1
- streamlit/runtime/pages_manager.py +1 -1
- streamlit/runtime/runtime.py +14 -3
- streamlit/runtime/runtime_util.py +1 -1
- streamlit/runtime/script_data.py +1 -1
- streamlit/runtime/scriptrunner/__init__.py +1 -1
- streamlit/runtime/scriptrunner/exec_code.py +34 -1
- streamlit/runtime/scriptrunner/magic.py +1 -1
- streamlit/runtime/scriptrunner/magic_funcs.py +1 -1
- streamlit/runtime/scriptrunner/script_cache.py +1 -1
- streamlit/runtime/scriptrunner/script_runner.py +22 -11
- streamlit/runtime/scriptrunner_utils/__init__.py +1 -1
- streamlit/runtime/scriptrunner_utils/exceptions.py +1 -1
- streamlit/runtime/scriptrunner_utils/script_requests.py +2 -1
- streamlit/runtime/scriptrunner_utils/script_run_context.py +2 -2
- streamlit/runtime/secrets.py +1 -1
- streamlit/runtime/session_manager.py +2 -2
- streamlit/runtime/state/__init__.py +1 -1
- streamlit/runtime/state/common.py +1 -1
- streamlit/runtime/state/query_params.py +1 -1
- streamlit/runtime/state/query_params_proxy.py +1 -1
- streamlit/runtime/state/safe_session_state.py +1 -1
- streamlit/runtime/state/session_state.py +1 -1
- streamlit/runtime/state/session_state_proxy.py +1 -1
- streamlit/runtime/state/widgets.py +1 -1
- streamlit/runtime/stats.py +1 -1
- streamlit/runtime/uploaded_file_manager.py +1 -1
- streamlit/runtime/websocket_session_manager.py +2 -2
- streamlit/source_util.py +1 -1
- streamlit/static/index.html +2 -2
- streamlit/static/static/js/{FileDownload.esm.Dod29kzi.js → FileDownload.esm.C6kraHI_.js} +1 -1
- streamlit/static/static/js/{FormClearHelper.0CIwSBFI.js → FormClearHelper.Tmz_sTQ8.js} +1 -1
- streamlit/static/static/js/{Hooks.D0iBCSJR.js → Hooks.ChcK58kV.js} +1 -1
- streamlit/static/static/js/{InputInstructions.BGz0VNnm.js → InputInstructions.CWlmC2Qh.js} +1 -1
- streamlit/static/static/js/{ProgressBar.BaPlfiH4.js → ProgressBar.C2LLZx-o.js} +1 -1
- streamlit/static/static/js/RenderInPortalIfExists.BFB9tinI.js +1 -0
- streamlit/static/static/js/Toolbar.DVKl5Ty9.js +1 -0
- streamlit/static/static/js/{base-input.Fk16kR45.js → base-input.C7heAUz7.js} +1 -1
- streamlit/static/static/js/{createSuper.B8NDjS0T.js → createSuper.BGkH3lYW.js} +1 -1
- streamlit/static/static/js/{data-grid-overlay-editor.C0oC7OWz.js → data-grid-overlay-editor.Cuw9mHAA.js} +1 -1
- streamlit/static/static/js/{downloader.BLJWoPl1.js → downloader.Dt0tCM6a.js} +1 -1
- streamlit/static/static/js/{es6.D9yZ4-e5.js → es6.DEWLLkEJ.js} +2 -2
- streamlit/static/static/js/{getPrototypeOf.DKKmv0PS.js → getPrototypeOf.BobjvJFE.js} +1 -1
- streamlit/static/static/js/{iframeResizer.contentWindow.Du2ek_IY.js → iframeResizer.contentWindow.Cb2nEQV3.js} +1 -1
- streamlit/static/static/js/index.2xRq6cMk.js +1 -0
- streamlit/static/static/js/{index.ncJlJcLt.js → index.3dqlv1Xq.js} +1 -1
- streamlit/static/static/js/index.4hESrvbj.js +1 -0
- streamlit/static/static/js/index.8LNY4OIb.js +4 -0
- streamlit/static/static/js/{index.Cfmr2hoW.js → index.B59J81FK.js} +1 -1
- streamlit/static/static/js/{index.CxrCMTqd.js → index.BAlqqBcw.js} +1 -1
- streamlit/static/static/js/index.BBm-I8-2.js +1 -0
- streamlit/static/static/js/{index.UMKksAwF.js → index.BEEgvyV0.js} +1 -1
- streamlit/static/static/js/{index.B8MC65SU.js → index.BSITpAz8.js} +29 -29
- streamlit/static/static/js/{index.K_IYAbRz.js → index.BU-BMiNz.js} +51 -51
- streamlit/static/static/js/{index.DcJiNltm.js → index.BbullfwT.js} +7 -7
- streamlit/static/static/js/index.BhvVhqgM.js +1 -0
- streamlit/static/static/js/index.Bo2RO7c-.js +1 -0
- streamlit/static/static/js/{index.C2_hseSo.js → index.BwUNY-jU.js} +1 -1
- streamlit/static/static/js/{index.C73yVjC9.js → index.C4ggakh6.js} +1 -1
- streamlit/static/static/js/index.C6zLaEWH.js +1 -0
- streamlit/static/static/js/{index.CaORMlLk.js → index.CJKd6KIo.js} +1 -1
- streamlit/static/static/js/{index.DCosyf4Y.js → index.CJrSPe9e.js} +1 -1
- streamlit/static/static/js/{index.clUXhmTv.js → index.CKpkbBQ4.js} +13 -13
- streamlit/static/static/js/{index.D-s5XFne.js → index.CKyzSK7k.js} +1 -1
- streamlit/static/static/js/{index.d_eIUHvJ.js → index.CWzMR4Qn.js} +2 -2
- streamlit/static/static/js/{index.DdG-jRFd.js → index.Caaf3Sch.js} +1 -1
- streamlit/static/static/js/{index.DU9T3IwS.js → index.CdNirCmM.js} +1 -1
- streamlit/static/static/js/{index.BAADbUet.js → index.CksJdg_n.js} +1 -1
- streamlit/static/static/js/{index.BZAVJreZ.js → index.Cq6-Dj2J.js} +1 -1
- streamlit/static/static/js/{index.CTvaDQgd.js → index.CsnZSzHc.js} +2 -2
- streamlit/static/static/js/index.D2_ysKuQ.js +1 -0
- streamlit/static/static/js/{index.BGyFJsxB.js → index.DA-jgmvJ.js} +1 -1
- streamlit/static/static/js/{index.CgHOvdK_.js → index.DSOFf22B.js} +1 -1
- streamlit/static/static/js/index.DTQeyNXN.js +1 -0
- streamlit/static/static/js/{index.CzDEy16B.js → index.De91xhMb.js} +1 -1
- streamlit/static/static/js/{index.CCLqv4q8.js → index.DeX4c3dx.js} +2 -2
- streamlit/static/static/js/{index.BEr9HRGP.js → index.IRVXqVyf.js} +1 -1
- streamlit/static/static/js/{index.DxFUMDyF.js → index.b1jbiVGt.js} +1 -1
- streamlit/static/static/js/{index.HXS4cXj6.js → index.bQJeNN28.js} +2 -2
- streamlit/static/static/js/{index.CGSuEM6K.js → index.kz_FxQ30.js} +1 -1
- streamlit/static/static/js/{index.BY0L_QLh.js → index.n7L72_oq.js} +2 -2
- streamlit/static/static/js/{input.BX19stYv.js → input.qSadM7Tx.js} +1 -1
- streamlit/static/static/js/{memory.DrUTC0E1.js → memory.CROZv0Mn.js} +1 -1
- streamlit/static/static/js/{mergeWith.DthgK8_y.js → mergeWith.CO-Rv2Zo.js} +1 -1
- streamlit/static/static/js/{number-overlay-editor.17BCi9Ve.js → number-overlay-editor.BRQhYKOF.js} +1 -1
- streamlit/static/static/js/{sandbox.5Hd92fh0.js → sandbox.CZKLDBgs.js} +1 -1
- streamlit/static/static/js/{slicedToArray.Bu7hUD78.js → slicedToArray.D36w_Bc8.js} +1 -1
- streamlit/static/static/js/{textarea.B2pXMKyh.js → textarea.DvzSPS_8.js} +1 -1
- streamlit/static/static/js/{timepicker.5G_63qYl.js → timepicker.FNAmrJ96.js} +1 -1
- streamlit/static/static/js/{uniqueId.B7repv29.js → uniqueId.BNjI9ROI.js} +1 -1
- streamlit/static/static/js/{useBasicWidgetState.ZoM17KXF.js → useBasicWidgetState.B8IH-5cn.js} +1 -1
- streamlit/static/static/js/{useOnInputChange.DK_jsnv_.js → useOnInputChange.B1QB2TNw.js} +1 -1
- streamlit/static/static/js/{withFullScreenWrapper.ByjGCoNh.js → withFullScreenWrapper.BT91IT4-.js} +1 -1
- streamlit/string_util.py +1 -1
- streamlit/temporary_directory.py +1 -1
- streamlit/testing/__init__.py +1 -1
- streamlit/testing/v1/__init__.py +1 -1
- streamlit/testing/v1/app_test.py +1 -1
- streamlit/testing/v1/element_tree.py +1 -1
- streamlit/testing/v1/local_script_runner.py +1 -1
- streamlit/testing/v1/util.py +1 -1
- streamlit/time_util.py +1 -1
- streamlit/type_util.py +1 -1
- streamlit/url_util.py +24 -1
- streamlit/user_info.py +94 -27
- streamlit/util.py +1 -1
- streamlit/version.py +1 -1
- streamlit/watcher/__init__.py +1 -1
- streamlit/watcher/event_based_path_watcher.py +1 -1
- streamlit/watcher/folder_black_list.py +1 -1
- streamlit/watcher/local_sources_watcher.py +1 -1
- streamlit/watcher/path_watcher.py +1 -1
- streamlit/watcher/polling_path_watcher.py +1 -1
- streamlit/watcher/util.py +1 -1
- streamlit/web/__init__.py +1 -1
- streamlit/web/bootstrap.py +1 -1
- streamlit/web/cache_storage_manager_config.py +1 -1
- streamlit/web/cli.py +1 -1
- streamlit/web/server/__init__.py +1 -1
- streamlit/web/server/app_static_file_handler.py +1 -1
- streamlit/web/server/authlib_tornado_integration.py +58 -0
- streamlit/web/server/browser_websocket_handler.py +72 -6
- streamlit/web/server/component_request_handler.py +1 -1
- streamlit/web/server/media_file_handler.py +1 -1
- streamlit/web/server/oauth_authlib_routes.py +176 -0
- streamlit/web/server/oidc_mixin.py +108 -0
- streamlit/web/server/routes.py +6 -4
- streamlit/web/server/server.py +41 -4
- streamlit/web/server/server_util.py +25 -1
- streamlit/web/server/stats_request_handler.py +1 -1
- streamlit/web/server/upload_file_request_handler.py +3 -2
- streamlit/web/server/websocket_headers.py +1 -1
- {streamlit_nightly-1.41.2.dev20250107.data → streamlit_nightly-1.41.2.dev20250109.data}/scripts/streamlit.cmd +1 -1
- {streamlit_nightly-1.41.2.dev20250107.dist-info → streamlit_nightly-1.41.2.dev20250109.dist-info}/METADATA +14 -2
- streamlit_nightly-1.41.2.dev20250109.dist-info/RECORD +560 -0
- {streamlit_nightly-1.41.2.dev20250107.dist-info → streamlit_nightly-1.41.2.dev20250109.dist-info}/WHEEL +1 -1
- streamlit/static/static/js/RenderInPortalIfExists.CDLwOGJN.js +0 -1
- streamlit/static/static/js/Toolbar.U2Q07lHA.js +0 -1
- streamlit/static/static/js/index.C9Sks6cD.js +0 -1
- streamlit/static/static/js/index.CIPlrA_8.js +0 -1
- streamlit/static/static/js/index.CKwgjL0N.js +0 -1
- streamlit/static/static/js/index.Chl3QVe6.js +0 -1
- streamlit/static/static/js/index.Cnd636WC.js +0 -4
- streamlit/static/static/js/index.DbcRQLkk.js +0 -1
- streamlit/static/static/js/index.DnCNih03.js +0 -1
- streamlit/static/static/js/index.NpAsSk7C.js +0 -1
- streamlit/static/static/js/index.n6SGF_yN.js +0 -1
- streamlit/vendor/ipython/__init__.py +0 -0
- streamlit/vendor/ipython/modified_sys_path.py +0 -67
- streamlit_nightly-1.41.2.dev20250107.dist-info/RECORD +0 -556
- {streamlit_nightly-1.41.2.dev20250107.dist-info → streamlit_nightly-1.41.2.dev20250109.dist-info}/entry_points.txt +0 -0
- {streamlit_nightly-1.41.2.dev20250107.dist-info → streamlit_nightly-1.41.2.dev20250109.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
|
-
from typing import TYPE_CHECKING, Any
|
17
|
+
from typing import TYPE_CHECKING, Any, Callable
|
18
18
|
|
19
19
|
from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
|
20
20
|
|
@@ -33,6 +33,16 @@ class ForwardMsgQueue:
|
|
33
33
|
a single thread.
|
34
34
|
"""
|
35
35
|
|
36
|
+
_before_enqueue_msg: Callable[[ForwardMsg], None] | None = None
|
37
|
+
|
38
|
+
@staticmethod
|
39
|
+
def on_before_enqueue_msg(
|
40
|
+
before_enqueue_msg: Callable[[ForwardMsg], None] | None,
|
41
|
+
) -> None:
|
42
|
+
"""Set a callback to be called before a message is enqueued.
|
43
|
+
Used in static streamlit app generation."""
|
44
|
+
ForwardMsgQueue._before_enqueue_msg = before_enqueue_msg
|
45
|
+
|
36
46
|
def __init__(self):
|
37
47
|
self._queue: list[ForwardMsg] = []
|
38
48
|
# A mapping of (delta_path -> _queue.indexof(msg)) for each
|
@@ -55,6 +65,10 @@ class ForwardMsgQueue:
|
|
55
65
|
|
56
66
|
def enqueue(self, msg: ForwardMsg) -> None:
|
57
67
|
"""Add message into queue, possibly composing it with another message."""
|
68
|
+
|
69
|
+
if ForwardMsgQueue._before_enqueue_msg:
|
70
|
+
ForwardMsgQueue._before_enqueue_msg(msg)
|
71
|
+
|
58
72
|
if not _is_composable_message(msg):
|
59
73
|
self._queue.append(msg)
|
60
74
|
return
|
@@ -103,7 +117,7 @@ class ForwardMsgQueue:
|
|
103
117
|
self._queue = []
|
104
118
|
else:
|
105
119
|
self._queue = [
|
106
|
-
_update_script_finished_message(msg)
|
120
|
+
_update_script_finished_message(msg, fragment_ids_this_run is not None)
|
107
121
|
for msg in self._queue
|
108
122
|
if msg.WhichOneof("type")
|
109
123
|
in {
|
@@ -195,7 +209,9 @@ def _maybe_compose_deltas(old_delta: Delta, new_delta: Delta) -> Delta | None:
|
|
195
209
|
return None
|
196
210
|
|
197
211
|
|
198
|
-
def _update_script_finished_message(
|
212
|
+
def _update_script_finished_message(
|
213
|
+
msg: ForwardMsg, is_fragment_run: bool
|
214
|
+
) -> ForwardMsg:
|
199
215
|
"""
|
200
216
|
When we are here, the message queue is cleared from non-lifecycle messages
|
201
217
|
before they were flushed to the browser.
|
@@ -207,6 +223,18 @@ def _update_script_finished_message(msg: ForwardMsg) -> ForwardMsg:
|
|
207
223
|
Otherwise, a `FINISHED_SUCCESSFULLY` message might trigger a reset of widget
|
208
224
|
states on the frontend.
|
209
225
|
"""
|
210
|
-
if msg.WhichOneof("type") == "script_finished"
|
226
|
+
if msg.WhichOneof("type") == "script_finished" and (
|
227
|
+
# If this is not a fragment run (= full app run), its okay to change the
|
228
|
+
# script_finished type to FINISHED_EARLY_FOR_RERUN because another full app run
|
229
|
+
# is about to start.
|
230
|
+
# If this is a fragment run, it is allowed to change the state of
|
231
|
+
# all script_finished states except for FINISHED_SUCCESSFULLY, which we use to
|
232
|
+
# indicate that a full app run has finished successfully (in other words, a
|
233
|
+
# fragment should not modify the finished status of a full app run, because
|
234
|
+
# the fragment finished state is different and the frontend might not trigger
|
235
|
+
# cleanups etc. correctly).
|
236
|
+
is_fragment_run is False
|
237
|
+
or msg.script_finished != ForwardMsg.ScriptFinishedStatus.FINISHED_SUCCESSFULLY
|
238
|
+
):
|
211
239
|
msg.script_finished = ForwardMsg.ScriptFinishedStatus.FINISHED_EARLY_FOR_RERUN
|
212
240
|
return msg
|
streamlit/runtime/fragment.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -97,7 +97,7 @@ class MemoryFragmentStorage(FragmentStorage):
|
|
97
97
|
the FragmentStorage protocol.
|
98
98
|
"""
|
99
99
|
|
100
|
-
def __init__(self):
|
100
|
+
def __init__(self) -> None:
|
101
101
|
self._fragments: dict[str, Fragment] = {}
|
102
102
|
|
103
103
|
# Weirdly, we have to define this above the `set` method, or mypy gets it confused
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -152,6 +152,7 @@ _ATTRIBUTIONS_TO_CHECK: Final = [
|
|
152
152
|
"streamlit_pydantic",
|
153
153
|
"pydantic",
|
154
154
|
"plost",
|
155
|
+
"authlib",
|
155
156
|
]
|
156
157
|
|
157
158
|
_ETC_MACHINE_ID_PATH = "/etc/machine-id"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
streamlit/runtime/runtime.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -273,6 +273,17 @@ class Runtime:
|
|
273
273
|
return None
|
274
274
|
return session_info.client
|
275
275
|
|
276
|
+
def clear_user_info_for_session(self, session_id: str) -> None:
|
277
|
+
"""Clear the user_info for the given session_id.
|
278
|
+
|
279
|
+
Notes
|
280
|
+
-----
|
281
|
+
Threading: SAFE. May be called on any thread.
|
282
|
+
"""
|
283
|
+
session_info = self._session_mgr.get_session_info(session_id)
|
284
|
+
if session_info is not None:
|
285
|
+
session_info.session.clear_user_info()
|
286
|
+
|
276
287
|
async def start(self) -> None:
|
277
288
|
"""Start the runtime. This must be called only once, before
|
278
289
|
any other functions are called.
|
@@ -335,7 +346,7 @@ class Runtime:
|
|
335
346
|
def connect_session(
|
336
347
|
self,
|
337
348
|
client: SessionClient,
|
338
|
-
user_info: dict[str, str | None],
|
349
|
+
user_info: dict[str, str | bool | None],
|
339
350
|
existing_session_id: str | None = None,
|
340
351
|
session_id_override: str | None = None,
|
341
352
|
) -> str:
|
@@ -396,7 +407,7 @@ class Runtime:
|
|
396
407
|
def create_session(
|
397
408
|
self,
|
398
409
|
client: SessionClient,
|
399
|
-
user_info: dict[str, str | None],
|
410
|
+
user_info: dict[str, str | bool | None],
|
400
411
|
existing_session_id: str | None = None,
|
401
412
|
session_id_override: str | None = None,
|
402
413
|
) -> str:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
streamlit/runtime/script_data.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -14,8 +14,10 @@
|
|
14
14
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
|
+
import sys
|
17
18
|
from typing import TYPE_CHECKING, Any, Callable
|
18
19
|
|
20
|
+
from streamlit import util
|
19
21
|
from streamlit.delta_generator_singletons import (
|
20
22
|
context_dg_stack,
|
21
23
|
get_default_dg_stack_value,
|
@@ -32,6 +34,37 @@ if TYPE_CHECKING:
|
|
32
34
|
from streamlit.runtime.scriptrunner_utils.script_run_context import ScriptRunContext
|
33
35
|
|
34
36
|
|
37
|
+
class modified_sys_path:
|
38
|
+
"""A context for prepending a directory to sys.path for a second.
|
39
|
+
|
40
|
+
Code inspired by IPython:
|
41
|
+
Source: https://github.com/ipython/ipython/blob/master/IPython/utils/syspathcontext.py#L42
|
42
|
+
"""
|
43
|
+
|
44
|
+
def __init__(self, main_script_path: str):
|
45
|
+
self._main_script_path = main_script_path
|
46
|
+
self._added_path = False
|
47
|
+
|
48
|
+
def __repr__(self) -> str:
|
49
|
+
return util.repr_(self)
|
50
|
+
|
51
|
+
def __enter__(self):
|
52
|
+
if self._main_script_path not in sys.path:
|
53
|
+
sys.path.insert(0, self._main_script_path)
|
54
|
+
self._added_path = True
|
55
|
+
|
56
|
+
def __exit__(self, type, value, traceback):
|
57
|
+
if self._added_path:
|
58
|
+
try:
|
59
|
+
sys.path.remove(self._main_script_path)
|
60
|
+
except ValueError:
|
61
|
+
# It's already removed.
|
62
|
+
pass
|
63
|
+
|
64
|
+
# Returning False causes any exceptions to be re-raised.
|
65
|
+
return False
|
66
|
+
|
67
|
+
|
35
68
|
def exec_func_with_error_handling(
|
36
69
|
func: Callable[[], Any], ctx: ScriptRunContext
|
37
70
|
) -> tuple[
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -34,7 +34,10 @@ from streamlit.runtime.metrics_util import (
|
|
34
34
|
create_page_profile_message,
|
35
35
|
to_microseconds,
|
36
36
|
)
|
37
|
-
from streamlit.runtime.scriptrunner.exec_code import
|
37
|
+
from streamlit.runtime.scriptrunner.exec_code import (
|
38
|
+
exec_func_with_error_handling,
|
39
|
+
modified_sys_path,
|
40
|
+
)
|
38
41
|
from streamlit.runtime.scriptrunner.script_cache import ScriptCache
|
39
42
|
from streamlit.runtime.scriptrunner_utils.exceptions import (
|
40
43
|
RerunException,
|
@@ -55,7 +58,6 @@ from streamlit.runtime.state import (
|
|
55
58
|
SafeSessionState,
|
56
59
|
SessionState,
|
57
60
|
)
|
58
|
-
from streamlit.vendor.ipython.modified_sys_path import modified_sys_path
|
59
61
|
|
60
62
|
if TYPE_CHECKING:
|
61
63
|
from streamlit.runtime.fragment import FragmentStorage
|
@@ -123,7 +125,7 @@ class ScriptRunner:
|
|
123
125
|
uploaded_file_mgr: UploadedFileManager,
|
124
126
|
script_cache: ScriptCache,
|
125
127
|
initial_rerun_data: RerunData,
|
126
|
-
user_info: dict[str, str | None],
|
128
|
+
user_info: dict[str, str | bool | None],
|
127
129
|
fragment_storage: FragmentStorage,
|
128
130
|
pages_manager: PagesManager,
|
129
131
|
):
|
@@ -553,15 +555,24 @@ class ScriptRunner:
|
|
553
555
|
wrapped_fragment()
|
554
556
|
|
555
557
|
except FragmentStorageKeyError:
|
556
|
-
#
|
557
|
-
#
|
558
|
-
#
|
559
|
-
#
|
560
|
-
#
|
558
|
+
# This can happen if the fragment_id is removed from the
|
559
|
+
# storage before the script runner gets to it. In this
|
560
|
+
# case, the fragment is simply skipped.
|
561
|
+
# Also, only log an error if the fragment is not an
|
562
|
+
# auto_rerun to avoid noise. If it is an auto_rerun, we
|
563
|
+
# might have a race condition where the fragment_id is
|
564
|
+
# removed but the webapp sends a rerun request before
|
565
|
+
# the removal information has reached the web app
|
561
566
|
# (see https://github.com/streamlit/streamlit/issues/9080).
|
562
567
|
if not rerun_data.is_auto_rerun:
|
563
|
-
|
564
|
-
f"
|
568
|
+
_LOGGER.warning(
|
569
|
+
f"Couldn't find fragment with id {fragment_id}."
|
570
|
+
" This can happen if the fragment does not"
|
571
|
+
" exist anymore when this request is processed,"
|
572
|
+
" for example because a full app rerun happened"
|
573
|
+
" that did not register the fragment."
|
574
|
+
" Usually this doesn't happen or no action is"
|
575
|
+
" required, so its mainly for debugging."
|
565
576
|
)
|
566
577
|
except (RerunException, StopException) as e:
|
567
578
|
# The wrapped_fragment function is executed
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -52,6 +52,7 @@ class RerunData:
|
|
52
52
|
# The queue of fragment_ids waiting to be run.
|
53
53
|
fragment_id_queue: list[str] = field(default_factory=list)
|
54
54
|
is_fragment_scoped_rerun: bool = False
|
55
|
+
# set to true when a script is rerun by the fragment auto-rerun mechanism
|
55
56
|
is_auto_rerun: bool = False
|
56
57
|
|
57
58
|
def __repr__(self) -> str:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -51,7 +51,7 @@ if TYPE_CHECKING:
|
|
51
51
|
from streamlit.runtime.uploaded_file_manager import UploadedFileManager
|
52
52
|
_LOGGER: Final = get_logger(__name__)
|
53
53
|
|
54
|
-
UserInfo: TypeAlias = Dict[str, Union[str, None]]
|
54
|
+
UserInfo: TypeAlias = Dict[str, Union[str, bool, None]]
|
55
55
|
|
56
56
|
|
57
57
|
# If true, it indicates that we are in a cached function that disallows the usage of
|
streamlit/runtime/secrets.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -236,7 +236,7 @@ class SessionManager(Protocol):
|
|
236
236
|
self,
|
237
237
|
client: SessionClient,
|
238
238
|
script_data: ScriptData,
|
239
|
-
user_info: dict[str, str | None],
|
239
|
+
user_info: dict[str, str | bool | None],
|
240
240
|
existing_session_id: str | None = None,
|
241
241
|
session_id_override: str | None = None,
|
242
242
|
) -> str:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
streamlit/runtime/stats.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -63,7 +63,7 @@ class WebsocketSessionManager(SessionManager):
|
|
63
63
|
self,
|
64
64
|
client: SessionClient,
|
65
65
|
script_data: ScriptData,
|
66
|
-
user_info: dict[str, str | None],
|
66
|
+
user_info: dict[str, str | bool | None],
|
67
67
|
existing_session_id: str | None = None,
|
68
68
|
session_id_override: str | None = None,
|
69
69
|
) -> str:
|
streamlit/source_util.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
streamlit/static/index.html
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<!--
|
2
|
-
Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-
|
2
|
+
Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
3
3
|
|
4
4
|
Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
you may not use this file except in compliance with the License.
|
@@ -51,7 +51,7 @@
|
|
51
51
|
<script>
|
52
52
|
window.prerenderReady = false
|
53
53
|
</script>
|
54
|
-
<script type="module" crossorigin src="./static/js/index.
|
54
|
+
<script type="module" crossorigin src="./static/js/index.BSITpAz8.js"></script>
|
55
55
|
<link rel="stylesheet" crossorigin href="./static/css/index.ZIJkhegp.css">
|
56
56
|
</head>
|
57
57
|
<body>
|
@@ -1 +1 @@
|
|
1
|
-
import{r as e,E as n,_ as a}from"./index.
|
1
|
+
import{r as e,E as n,_ as a}from"./index.BSITpAz8.js";var o=e.forwardRef(function(t,r){var l={fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"};return e.createElement(n,a({iconAttrs:l,iconVerticalAlign:"middle",iconViewBox:"0 0 24 24"},t,{ref:r}),e.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),e.createElement("path",{d:"M16 9v10H8V9h8m-1.5-6h-5l-1 1H5v2h14V4h-3.5l-1-1zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7z"}))});o.displayName="Delete";var i=e.forwardRef(function(t,r){var l={fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"};return e.createElement(n,a({iconAttrs:l,iconVerticalAlign:"middle",iconViewBox:"0 0 24 24"},t,{ref:r}),e.createElement("rect",{width:24,height:24,fill:"none"}),e.createElement("path",{d:"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3h-2zm-1-4l-1.41-1.41L13 12.17V4h-2v8.17L8.41 9.59 7 11l5 5 5-5z"}))});i.displayName="FileDownload";export{o as D,i as F};
|
@@ -1 +1 @@
|
|
1
|
-
import{D as a,bQ as i,r as o}from"./index.
|
1
|
+
import{D as a,bQ as i,r as o}from"./index.BSITpAz8.js";class l{manageFormClearListener(r,s,t){a(this.formClearListener)&&this.lastWidgetMgr===r&&this.lastFormId===s||(this.disconnect(),i(s)&&(this.formClearListener=r.addFormClearedListener(s,t),this.lastWidgetMgr=r,this.lastFormId=s))}disconnect(){var r;(r=this.formClearListener)==null||r.disconnect(),this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}}function d({element:e,widgetMgr:r,onFormCleared:s}){o.useEffect(()=>{if(!i(e.formId))return;const t=r.addFormClearedListener(e.formId,s);return()=>{t.disconnect()}},[e,r,s])}export{l as F,d as u};
|
@@ -1 +1 @@
|
|
1
|
-
import{r as t}from"./index.
|
1
|
+
import{r as t}from"./index.BSITpAz8.js";const o=r=>{const e=t.useRef();return t.useEffect(()=>{e.current=r},[r]),e.current};export{o as u};
|
@@ -1 +1 @@
|
|
1
|
-
import{n as
|
1
|
+
import{n as g,k as d,j as l,bV as p,bW as f}from"./index.BSITpAz8.js";const b=d("50%{color:rgba(0,0,0,0);}"),I=g("span",{target:"eva3uk20"})(({includeDot:n,shouldBlink:s,theme:t})=>({...n?{"&::before":{opacity:1,content:'"•"',animation:"none",color:t.colors.gray,margin:`0 ${t.spacing.twoXS}`}}:{},...s?{color:t.colors.red,animationName:`${b}`,animationDuration:"0.5s",animationIterationCount:5}:{}})),y=({dirty:n,value:s,inForm:t,maxLength:a,className:m,type:i="single",allowEnterToSubmit:u=!0})=>{const o=[],r=(e,c=!1)=>{o.push(l(I,{includeDot:o.length>0,shouldBlink:c,children:e},o.length))};if(u){const e=t?"submit form":"apply";if(i==="multiline"){const c=f()?"⌘":"Ctrl";r(`Press ${c}+Enter to ${e}`)}else i==="single"&&r(`Press Enter to ${e}`)}return a&&(i!=="chat"||n)&&r(`${s.length}/${a}`,n&&s.length>=a),l(p,{"data-testid":"InputInstructions",className:m,children:o})};export{y as I};
|