streamlit-nightly 1.43.2.dev20250307__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 +306 -0
- streamlit/__main__.py +20 -0
- streamlit/auth_util.py +218 -0
- streamlit/cli_util.py +105 -0
- streamlit/column_config.py +56 -0
- streamlit/commands/__init__.py +13 -0
- streamlit/commands/echo.py +126 -0
- streamlit/commands/execution_control.py +238 -0
- streamlit/commands/experimental_query_params.py +169 -0
- streamlit/commands/logo.py +189 -0
- streamlit/commands/navigation.py +385 -0
- streamlit/commands/page_config.py +311 -0
- streamlit/components/__init__.py +13 -0
- streamlit/components/lib/__init__.py +13 -0
- streamlit/components/lib/local_component_registry.py +84 -0
- streamlit/components/types/__init__.py +13 -0
- streamlit/components/types/base_component_registry.py +99 -0
- streamlit/components/types/base_custom_component.py +150 -0
- streamlit/components/v1/__init__.py +31 -0
- streamlit/components/v1/component_arrow.py +141 -0
- streamlit/components/v1/component_registry.py +130 -0
- streamlit/components/v1/components.py +38 -0
- streamlit/components/v1/custom_component.py +243 -0
- streamlit/config.py +1513 -0
- streamlit/config_option.py +311 -0
- streamlit/config_util.py +177 -0
- streamlit/connections/__init__.py +28 -0
- streamlit/connections/base_connection.py +174 -0
- streamlit/connections/snowflake_connection.py +562 -0
- streamlit/connections/snowpark_connection.py +213 -0
- streamlit/connections/sql_connection.py +425 -0
- streamlit/connections/util.py +97 -0
- streamlit/cursor.py +210 -0
- streamlit/dataframe_util.py +1416 -0
- streamlit/delta_generator.py +602 -0
- streamlit/delta_generator_singletons.py +204 -0
- streamlit/deprecation_util.py +209 -0
- streamlit/development.py +21 -0
- streamlit/elements/__init__.py +13 -0
- streamlit/elements/alert.py +234 -0
- streamlit/elements/arrow.py +962 -0
- streamlit/elements/balloons.py +47 -0
- streamlit/elements/bokeh_chart.py +133 -0
- streamlit/elements/code.py +114 -0
- streamlit/elements/deck_gl_json_chart.py +546 -0
- streamlit/elements/dialog_decorator.py +267 -0
- streamlit/elements/doc_string.py +558 -0
- streamlit/elements/empty.py +130 -0
- streamlit/elements/exception.py +331 -0
- streamlit/elements/form.py +354 -0
- streamlit/elements/graphviz_chart.py +150 -0
- streamlit/elements/heading.py +302 -0
- streamlit/elements/html.py +105 -0
- streamlit/elements/iframe.py +191 -0
- streamlit/elements/image.py +196 -0
- streamlit/elements/json.py +139 -0
- streamlit/elements/layouts.py +879 -0
- streamlit/elements/lib/__init__.py +13 -0
- streamlit/elements/lib/built_in_chart_utils.py +1157 -0
- streamlit/elements/lib/color_util.py +263 -0
- streamlit/elements/lib/column_config_utils.py +542 -0
- streamlit/elements/lib/column_types.py +2188 -0
- streamlit/elements/lib/dialog.py +147 -0
- streamlit/elements/lib/dicttools.py +154 -0
- streamlit/elements/lib/event_utils.py +37 -0
- streamlit/elements/lib/file_uploader_utils.py +66 -0
- streamlit/elements/lib/form_utils.py +77 -0
- streamlit/elements/lib/image_utils.py +441 -0
- streamlit/elements/lib/js_number.py +105 -0
- streamlit/elements/lib/mutable_status_container.py +183 -0
- streamlit/elements/lib/options_selector_utils.py +250 -0
- streamlit/elements/lib/pandas_styler_utils.py +274 -0
- streamlit/elements/lib/policies.py +194 -0
- streamlit/elements/lib/streamlit_plotly_theme.py +207 -0
- streamlit/elements/lib/subtitle_utils.py +176 -0
- streamlit/elements/lib/utils.py +250 -0
- streamlit/elements/map.py +508 -0
- streamlit/elements/markdown.py +277 -0
- streamlit/elements/media.py +793 -0
- streamlit/elements/metric.py +301 -0
- streamlit/elements/plotly_chart.py +546 -0
- streamlit/elements/progress.py +156 -0
- streamlit/elements/pyplot.py +194 -0
- streamlit/elements/snow.py +47 -0
- streamlit/elements/spinner.py +113 -0
- streamlit/elements/text.py +76 -0
- streamlit/elements/toast.py +98 -0
- streamlit/elements/vega_charts.py +1984 -0
- streamlit/elements/widgets/__init__.py +13 -0
- streamlit/elements/widgets/audio_input.py +310 -0
- streamlit/elements/widgets/button.py +1123 -0
- streamlit/elements/widgets/button_group.py +1008 -0
- streamlit/elements/widgets/camera_input.py +263 -0
- streamlit/elements/widgets/chat.py +647 -0
- streamlit/elements/widgets/checkbox.py +352 -0
- streamlit/elements/widgets/color_picker.py +265 -0
- streamlit/elements/widgets/data_editor.py +983 -0
- streamlit/elements/widgets/file_uploader.py +486 -0
- streamlit/elements/widgets/multiselect.py +338 -0
- streamlit/elements/widgets/number_input.py +545 -0
- streamlit/elements/widgets/radio.py +407 -0
- streamlit/elements/widgets/select_slider.py +437 -0
- streamlit/elements/widgets/selectbox.py +366 -0
- streamlit/elements/widgets/slider.py +880 -0
- streamlit/elements/widgets/text_widgets.py +628 -0
- streamlit/elements/widgets/time_widgets.py +970 -0
- streamlit/elements/write.py +574 -0
- streamlit/emojis.py +34 -0
- streamlit/env_util.py +61 -0
- streamlit/error_util.py +105 -0
- streamlit/errors.py +452 -0
- streamlit/external/__init__.py +13 -0
- streamlit/external/langchain/__init__.py +23 -0
- streamlit/external/langchain/streamlit_callback_handler.py +406 -0
- streamlit/file_util.py +247 -0
- streamlit/git_util.py +173 -0
- streamlit/hello/__init__.py +13 -0
- streamlit/hello/animation_demo.py +82 -0
- streamlit/hello/dataframe_demo.py +71 -0
- streamlit/hello/hello.py +37 -0
- streamlit/hello/mapping_demo.py +114 -0
- streamlit/hello/plotting_demo.py +55 -0
- streamlit/hello/streamlit_app.py +55 -0
- streamlit/hello/utils.py +28 -0
- streamlit/logger.py +130 -0
- streamlit/material_icon_names.py +25 -0
- streamlit/navigation/__init__.py +13 -0
- streamlit/navigation/page.py +302 -0
- streamlit/net_util.py +125 -0
- streamlit/platform.py +33 -0
- streamlit/proto/Alert_pb2.py +29 -0
- streamlit/proto/Alert_pb2.pyi +90 -0
- streamlit/proto/AppPage_pb2.py +27 -0
- streamlit/proto/AppPage_pb2.pyi +64 -0
- streamlit/proto/ArrowNamedDataSet_pb2.py +28 -0
- streamlit/proto/ArrowNamedDataSet_pb2.pyi +57 -0
- streamlit/proto/ArrowVegaLiteChart_pb2.py +29 -0
- streamlit/proto/ArrowVegaLiteChart_pb2.pyi +84 -0
- streamlit/proto/Arrow_pb2.py +33 -0
- streamlit/proto/Arrow_pb2.pyi +188 -0
- streamlit/proto/AudioInput_pb2.py +28 -0
- streamlit/proto/AudioInput_pb2.pyi +58 -0
- streamlit/proto/Audio_pb2.py +27 -0
- streamlit/proto/Audio_pb2.pyi +58 -0
- streamlit/proto/AuthRedirect_pb2.py +27 -0
- streamlit/proto/AuthRedirect_pb2.pyi +41 -0
- streamlit/proto/AutoRerun_pb2.py +27 -0
- streamlit/proto/AutoRerun_pb2.pyi +45 -0
- streamlit/proto/BackMsg_pb2.py +29 -0
- streamlit/proto/BackMsg_pb2.pyi +105 -0
- streamlit/proto/Balloons_pb2.py +27 -0
- streamlit/proto/Balloons_pb2.pyi +43 -0
- streamlit/proto/Block_pb2.py +53 -0
- streamlit/proto/Block_pb2.pyi +322 -0
- streamlit/proto/BokehChart_pb2.py +27 -0
- streamlit/proto/BokehChart_pb2.pyi +49 -0
- streamlit/proto/ButtonGroup_pb2.py +36 -0
- streamlit/proto/ButtonGroup_pb2.pyi +169 -0
- streamlit/proto/Button_pb2.py +27 -0
- streamlit/proto/Button_pb2.pyi +71 -0
- streamlit/proto/CameraInput_pb2.py +28 -0
- streamlit/proto/CameraInput_pb2.pyi +58 -0
- streamlit/proto/ChatInput_pb2.py +31 -0
- streamlit/proto/ChatInput_pb2.pyi +111 -0
- streamlit/proto/Checkbox_pb2.py +30 -0
- streamlit/proto/Checkbox_pb2.pyi +90 -0
- streamlit/proto/ClientState_pb2.py +30 -0
- streamlit/proto/ClientState_pb2.pyi +90 -0
- streamlit/proto/Code_pb2.py +27 -0
- streamlit/proto/Code_pb2.pyi +55 -0
- streamlit/proto/ColorPicker_pb2.py +28 -0
- streamlit/proto/ColorPicker_pb2.pyi +67 -0
- streamlit/proto/Common_pb2.py +51 -0
- streamlit/proto/Common_pb2.pyi +293 -0
- streamlit/proto/Components_pb2.py +35 -0
- streamlit/proto/Components_pb2.pyi +172 -0
- streamlit/proto/DataFrame_pb2.py +56 -0
- streamlit/proto/DataFrame_pb2.pyi +397 -0
- streamlit/proto/DateInput_pb2.py +28 -0
- streamlit/proto/DateInput_pb2.pyi +83 -0
- streamlit/proto/DeckGlJsonChart_pb2.py +29 -0
- streamlit/proto/DeckGlJsonChart_pb2.pyi +102 -0
- streamlit/proto/Delta_pb2.py +31 -0
- streamlit/proto/Delta_pb2.pyi +74 -0
- streamlit/proto/DocString_pb2.py +29 -0
- streamlit/proto/DocString_pb2.pyi +93 -0
- streamlit/proto/DownloadButton_pb2.py +27 -0
- streamlit/proto/DownloadButton_pb2.pyi +70 -0
- streamlit/proto/Element_pb2.py +78 -0
- streamlit/proto/Element_pb2.pyi +312 -0
- streamlit/proto/Empty_pb2.py +27 -0
- streamlit/proto/Empty_pb2.pyi +36 -0
- streamlit/proto/Exception_pb2.py +27 -0
- streamlit/proto/Exception_pb2.pyi +72 -0
- streamlit/proto/Favicon_pb2.py +27 -0
- streamlit/proto/Favicon_pb2.pyi +40 -0
- streamlit/proto/FileUploader_pb2.py +28 -0
- streamlit/proto/FileUploader_pb2.pyi +78 -0
- streamlit/proto/ForwardMsg_pb2.py +53 -0
- streamlit/proto/ForwardMsg_pb2.pyi +293 -0
- streamlit/proto/GitInfo_pb2.py +29 -0
- streamlit/proto/GitInfo_pb2.pyi +83 -0
- streamlit/proto/GraphVizChart_pb2.py +27 -0
- streamlit/proto/GraphVizChart_pb2.pyi +53 -0
- streamlit/proto/Heading_pb2.py +27 -0
- streamlit/proto/Heading_pb2.pyi +56 -0
- streamlit/proto/Html_pb2.py +27 -0
- streamlit/proto/Html_pb2.pyi +42 -0
- streamlit/proto/IFrame_pb2.py +27 -0
- streamlit/proto/IFrame_pb2.pyi +59 -0
- streamlit/proto/Image_pb2.py +29 -0
- streamlit/proto/Image_pb2.pyi +84 -0
- streamlit/proto/Json_pb2.py +27 -0
- streamlit/proto/Json_pb2.pyi +53 -0
- streamlit/proto/LabelVisibilityMessage_pb2.py +29 -0
- streamlit/proto/LabelVisibilityMessage_pb2.pyi +68 -0
- streamlit/proto/LinkButton_pb2.py +27 -0
- streamlit/proto/LinkButton_pb2.pyi +58 -0
- streamlit/proto/Logo_pb2.py +27 -0
- streamlit/proto/Logo_pb2.pyi +51 -0
- streamlit/proto/Markdown_pb2.py +29 -0
- streamlit/proto/Markdown_pb2.pyi +86 -0
- streamlit/proto/Metric_pb2.py +32 -0
- streamlit/proto/Metric_pb2.pyi +101 -0
- streamlit/proto/MetricsEvent_pb2.py +30 -0
- streamlit/proto/MetricsEvent_pb2.pyi +200 -0
- streamlit/proto/MultiSelect_pb2.py +28 -0
- streamlit/proto/MultiSelect_pb2.pyi +81 -0
- streamlit/proto/NamedDataSet_pb2.py +28 -0
- streamlit/proto/NamedDataSet_pb2.pyi +59 -0
- streamlit/proto/Navigation_pb2.py +30 -0
- streamlit/proto/Navigation_pb2.pyi +84 -0
- streamlit/proto/NewSession_pb2.py +51 -0
- streamlit/proto/NewSession_pb2.pyi +481 -0
- streamlit/proto/NumberInput_pb2.py +30 -0
- streamlit/proto/NumberInput_pb2.pyi +121 -0
- streamlit/proto/PageConfig_pb2.py +33 -0
- streamlit/proto/PageConfig_pb2.pyi +126 -0
- streamlit/proto/PageInfo_pb2.py +27 -0
- streamlit/proto/PageInfo_pb2.pyi +43 -0
- streamlit/proto/PageLink_pb2.py +27 -0
- streamlit/proto/PageLink_pb2.pyi +63 -0
- streamlit/proto/PageNotFound_pb2.py +27 -0
- streamlit/proto/PageNotFound_pb2.pyi +42 -0
- streamlit/proto/PageProfile_pb2.py +31 -0
- streamlit/proto/PageProfile_pb2.pyi +127 -0
- streamlit/proto/PagesChanged_pb2.py +28 -0
- streamlit/proto/PagesChanged_pb2.pyi +48 -0
- streamlit/proto/ParentMessage_pb2.py +27 -0
- streamlit/proto/ParentMessage_pb2.pyi +46 -0
- streamlit/proto/PlotlyChart_pb2.py +31 -0
- streamlit/proto/PlotlyChart_pb2.pyi +131 -0
- streamlit/proto/Progress_pb2.py +27 -0
- streamlit/proto/Progress_pb2.pyi +43 -0
- streamlit/proto/Radio_pb2.py +28 -0
- streamlit/proto/Radio_pb2.pyi +84 -0
- streamlit/proto/RootContainer_pb2.py +27 -0
- streamlit/proto/RootContainer_pb2.pyi +56 -0
- streamlit/proto/Selectbox_pb2.py +28 -0
- streamlit/proto/Selectbox_pb2.pyi +80 -0
- streamlit/proto/SessionEvent_pb2.py +28 -0
- streamlit/proto/SessionEvent_pb2.pyi +62 -0
- streamlit/proto/SessionStatus_pb2.py +27 -0
- streamlit/proto/SessionStatus_pb2.pyi +57 -0
- streamlit/proto/Skeleton_pb2.py +29 -0
- streamlit/proto/Skeleton_pb2.pyi +71 -0
- streamlit/proto/Slider_pb2.py +32 -0
- streamlit/proto/Slider_pb2.pyi +142 -0
- streamlit/proto/Snow_pb2.py +27 -0
- streamlit/proto/Snow_pb2.pyi +43 -0
- streamlit/proto/Spinner_pb2.py +27 -0
- streamlit/proto/Spinner_pb2.pyi +49 -0
- streamlit/proto/TextArea_pb2.py +28 -0
- streamlit/proto/TextArea_pb2.pyi +80 -0
- streamlit/proto/TextInput_pb2.py +30 -0
- streamlit/proto/TextInput_pb2.pyi +107 -0
- streamlit/proto/Text_pb2.py +27 -0
- streamlit/proto/Text_pb2.pyi +46 -0
- streamlit/proto/TimeInput_pb2.py +28 -0
- streamlit/proto/TimeInput_pb2.pyi +74 -0
- streamlit/proto/Toast_pb2.py +27 -0
- streamlit/proto/Toast_pb2.pyi +45 -0
- streamlit/proto/VegaLiteChart_pb2.py +29 -0
- streamlit/proto/VegaLiteChart_pb2.pyi +71 -0
- streamlit/proto/Video_pb2.py +31 -0
- streamlit/proto/Video_pb2.pyi +117 -0
- streamlit/proto/WidgetStates_pb2.py +31 -0
- streamlit/proto/WidgetStates_pb2.pyi +126 -0
- streamlit/proto/__init__.py +15 -0
- streamlit/proto/openmetrics_data_model_pb2.py +60 -0
- streamlit/proto/openmetrics_data_model_pb2.pyi +522 -0
- streamlit/py.typed +0 -0
- streamlit/runtime/__init__.py +50 -0
- streamlit/runtime/app_session.py +982 -0
- streamlit/runtime/caching/__init__.py +98 -0
- streamlit/runtime/caching/cache_data_api.py +665 -0
- streamlit/runtime/caching/cache_errors.py +142 -0
- streamlit/runtime/caching/cache_resource_api.py +527 -0
- streamlit/runtime/caching/cache_type.py +33 -0
- streamlit/runtime/caching/cache_utils.py +523 -0
- streamlit/runtime/caching/cached_message_replay.py +290 -0
- streamlit/runtime/caching/hashing.py +637 -0
- streamlit/runtime/caching/legacy_cache_api.py +169 -0
- streamlit/runtime/caching/storage/__init__.py +29 -0
- streamlit/runtime/caching/storage/cache_storage_protocol.py +239 -0
- streamlit/runtime/caching/storage/dummy_cache_storage.py +60 -0
- streamlit/runtime/caching/storage/in_memory_cache_storage_wrapper.py +145 -0
- streamlit/runtime/caching/storage/local_disk_cache_storage.py +223 -0
- streamlit/runtime/connection_factory.py +436 -0
- streamlit/runtime/context.py +280 -0
- streamlit/runtime/credentials.py +364 -0
- streamlit/runtime/forward_msg_cache.py +296 -0
- streamlit/runtime/forward_msg_queue.py +240 -0
- streamlit/runtime/fragment.py +477 -0
- streamlit/runtime/media_file_manager.py +234 -0
- streamlit/runtime/media_file_storage.py +143 -0
- streamlit/runtime/memory_media_file_storage.py +181 -0
- streamlit/runtime/memory_session_storage.py +77 -0
- streamlit/runtime/memory_uploaded_file_manager.py +138 -0
- streamlit/runtime/metrics_util.py +486 -0
- streamlit/runtime/pages_manager.py +165 -0
- streamlit/runtime/runtime.py +792 -0
- streamlit/runtime/runtime_util.py +106 -0
- streamlit/runtime/script_data.py +46 -0
- streamlit/runtime/scriptrunner/__init__.py +38 -0
- streamlit/runtime/scriptrunner/exec_code.py +159 -0
- streamlit/runtime/scriptrunner/magic.py +273 -0
- streamlit/runtime/scriptrunner/magic_funcs.py +32 -0
- streamlit/runtime/scriptrunner/script_cache.py +89 -0
- streamlit/runtime/scriptrunner/script_runner.py +756 -0
- streamlit/runtime/scriptrunner_utils/__init__.py +19 -0
- streamlit/runtime/scriptrunner_utils/exceptions.py +48 -0
- streamlit/runtime/scriptrunner_utils/script_requests.py +307 -0
- streamlit/runtime/scriptrunner_utils/script_run_context.py +287 -0
- streamlit/runtime/secrets.py +534 -0
- streamlit/runtime/session_manager.py +394 -0
- streamlit/runtime/state/__init__.py +41 -0
- streamlit/runtime/state/common.py +191 -0
- streamlit/runtime/state/query_params.py +205 -0
- streamlit/runtime/state/query_params_proxy.py +218 -0
- streamlit/runtime/state/safe_session_state.py +138 -0
- streamlit/runtime/state/session_state.py +772 -0
- streamlit/runtime/state/session_state_proxy.py +153 -0
- streamlit/runtime/state/widgets.py +135 -0
- streamlit/runtime/stats.py +109 -0
- streamlit/runtime/uploaded_file_manager.py +148 -0
- streamlit/runtime/websocket_session_manager.py +167 -0
- streamlit/source_util.py +98 -0
- streamlit/static/favicon.png +0 -0
- streamlit/static/index.html +61 -0
- streamlit/static/static/css/index.Bmkmz40k.css +1 -0
- streamlit/static/static/css/index.DpJG_94W.css +1 -0
- streamlit/static/static/css/index.DzuxGC_t.css +1 -0
- streamlit/static/static/js/FileDownload.esm.Bp9m5jrx.js +1 -0
- streamlit/static/static/js/FileHelper.D_3pbilj.js +5 -0
- streamlit/static/static/js/FormClearHelper.Ct2rwLXo.js +1 -0
- streamlit/static/static/js/Hooks.BKdzj5MJ.js +1 -0
- streamlit/static/static/js/InputInstructions.DB3QGNJP.js +1 -0
- streamlit/static/static/js/ProgressBar.D40A5xc2.js +2 -0
- streamlit/static/static/js/RenderInPortalIfExists.DLUCooTN.js +1 -0
- streamlit/static/static/js/Toolbar.BiGGIQun.js +1 -0
- streamlit/static/static/js/UploadFileInfo.C-jY39rj.js +1 -0
- streamlit/static/static/js/base-input.CQBQT24M.js +4 -0
- streamlit/static/static/js/checkbox.Buj8gd_M.js +9 -0
- streamlit/static/static/js/createDownloadLinkElement.DZMwyjvU.js +1 -0
- streamlit/static/static/js/createSuper.CesK3I23.js +1 -0
- streamlit/static/static/js/data-grid-overlay-editor.B69OOFM4.js +1 -0
- streamlit/static/static/js/downloader.BZQhlBNT.js +1 -0
- streamlit/static/static/js/es6.D9Zhqujy.js +2 -0
- streamlit/static/static/js/iframeResizer.contentWindow.CAzcBpCC.js +1 -0
- streamlit/static/static/js/index.08vcOOvb.js +1 -0
- streamlit/static/static/js/index.0uqKfJUS.js +1 -0
- streamlit/static/static/js/index.B02M5u69.js +203 -0
- streamlit/static/static/js/index.B7mcZKMx.js +1 -0
- streamlit/static/static/js/index.BAQDHFA_.js +1 -0
- streamlit/static/static/js/index.BI60cMVr.js +2 -0
- streamlit/static/static/js/index.BLug2inK.js +1 -0
- streamlit/static/static/js/index.BM6TMY8g.js +2 -0
- streamlit/static/static/js/index.BZ9p1t7G.js +1 -0
- streamlit/static/static/js/index.BZqa87a1.js +2 -0
- streamlit/static/static/js/index.BcsRUzZZ.js +1 -0
- streamlit/static/static/js/index.BgVMiY_P.js +197 -0
- streamlit/static/static/js/index.BtuGy7By.js +6 -0
- streamlit/static/static/js/index.BuDuBmrs.js +1 -0
- streamlit/static/static/js/index.BvXU2oKV.js +1 -0
- streamlit/static/static/js/index.BxcwPacT.js +73 -0
- streamlit/static/static/js/index.CWX8KB81.js +1 -0
- streamlit/static/static/js/index.CXzZTo_q.js +1 -0
- streamlit/static/static/js/index.CcRWp_KL.js +1 -0
- streamlit/static/static/js/index.Cd-_xe55.js +3 -0
- streamlit/static/static/js/index.CdG2PXln.js +4537 -0
- streamlit/static/static/js/index.CjXvXmcP.js +1 -0
- streamlit/static/static/js/index.D1HZENZx.js +776 -0
- streamlit/static/static/js/index.D21Efo64.js +1617 -0
- streamlit/static/static/js/index.D9WgGVBx.js +7 -0
- streamlit/static/static/js/index.DEcsHtvb.js +12 -0
- streamlit/static/static/js/index.DFeMfr_K.js +1 -0
- streamlit/static/static/js/index.DHFBoItz.js +1 -0
- streamlit/static/static/js/index.D_PrBKnJ.js +3 -0
- streamlit/static/static/js/index.DmuRkekN.js +3855 -0
- streamlit/static/static/js/index.Do6eY8sf.js +1 -0
- streamlit/static/static/js/index.Dz3lP2P-.js +1 -0
- streamlit/static/static/js/index.Dz_UqF-s.js +1 -0
- streamlit/static/static/js/index.GkSUsPhJ.js +1 -0
- streamlit/static/static/js/index.H1U1IC_d.js +3 -0
- streamlit/static/static/js/index.g6p_4DPr.js +1 -0
- streamlit/static/static/js/index.g9x_GKss.js +1 -0
- streamlit/static/static/js/index.zo9jm08y.js +1 -0
- streamlit/static/static/js/input.DnaFglHq.js +2 -0
- streamlit/static/static/js/inputUtils.CQWz5UKz.js +1 -0
- streamlit/static/static/js/memory.Crb9x4-F.js +1 -0
- streamlit/static/static/js/mergeWith.ouAz0sK3.js +1 -0
- streamlit/static/static/js/number-overlay-editor._UaN-O48.js +9 -0
- streamlit/static/static/js/possibleConstructorReturn.CtGjGFHz.js +1 -0
- streamlit/static/static/js/sandbox.CBybYOhV.js +1 -0
- streamlit/static/static/js/sprintf.D7DtBTRn.js +1 -0
- streamlit/static/static/js/textarea.Cb_uJt5U.js +2 -0
- streamlit/static/static/js/threshold.DjX0wlsa.js +1 -0
- streamlit/static/static/js/timepicker.DKT7pfoF.js +4 -0
- streamlit/static/static/js/timer.CAwTRJ_g.js +1 -0
- streamlit/static/static/js/toConsumableArray.05Ikp13-.js +3 -0
- streamlit/static/static/js/uniqueId.D2FMWUEI.js +1 -0
- streamlit/static/static/js/useBasicWidgetState.urnZLANY.js +1 -0
- streamlit/static/static/js/useOnInputChange.BOKIIdJ1.js +1 -0
- streamlit/static/static/js/value.CgPGBV_l.js +1 -0
- streamlit/static/static/js/withFullScreenWrapper.C_N8J0Xx.js +1 -0
- streamlit/static/static/media/KaTeX_AMS-Regular.BQhdFMY1.woff2 +0 -0
- streamlit/static/static/media/KaTeX_AMS-Regular.DMm9YOAa.woff +0 -0
- streamlit/static/static/media/KaTeX_AMS-Regular.DRggAlZN.ttf +0 -0
- streamlit/static/static/media/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf +0 -0
- streamlit/static/static/media/KaTeX_Caligraphic-Bold.BEiXGLvX.woff +0 -0
- streamlit/static/static/media/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Caligraphic-Regular.CTRA-rTL.woff +0 -0
- streamlit/static/static/media/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Caligraphic-Regular.wX97UBjC.ttf +0 -0
- streamlit/static/static/media/KaTeX_Fraktur-Bold.BdnERNNW.ttf +0 -0
- streamlit/static/static/media/KaTeX_Fraktur-Bold.BsDP51OF.woff +0 -0
- streamlit/static/static/media/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Fraktur-Regular.CB_wures.ttf +0 -0
- streamlit/static/static/media/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Fraktur-Regular.Dxdc4cR9.woff +0 -0
- streamlit/static/static/media/KaTeX_Main-Bold.Cx986IdX.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Main-Bold.Jm3AIy58.woff +0 -0
- streamlit/static/static/media/KaTeX_Main-Bold.waoOVXN0.ttf +0 -0
- streamlit/static/static/media/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Main-BoldItalic.DzxPMmG6.ttf +0 -0
- streamlit/static/static/media/KaTeX_Main-BoldItalic.SpSLRI95.woff +0 -0
- streamlit/static/static/media/KaTeX_Main-Italic.3WenGoN9.ttf +0 -0
- streamlit/static/static/media/KaTeX_Main-Italic.BMLOBm91.woff +0 -0
- streamlit/static/static/media/KaTeX_Main-Italic.NWA7e6Wa.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Main-Regular.B22Nviop.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Main-Regular.Dr94JaBh.woff +0 -0
- streamlit/static/static/media/KaTeX_Main-Regular.ypZvNtVU.ttf +0 -0
- streamlit/static/static/media/KaTeX_Math-BoldItalic.B3XSjfu4.ttf +0 -0
- streamlit/static/static/media/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Math-BoldItalic.iY-2wyZ7.woff +0 -0
- streamlit/static/static/media/KaTeX_Math-Italic.DA0__PXp.woff +0 -0
- streamlit/static/static/media/KaTeX_Math-Italic.flOr_0UB.ttf +0 -0
- streamlit/static/static/media/KaTeX_Math-Italic.t53AETM-.woff2 +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Bold.CFMepnvq.ttf +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Bold.DbIhKOiC.woff +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Italic.DN2j7dab.woff +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Regular.BNo7hRIc.ttf +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Regular.CS6fqUqJ.woff +0 -0
- streamlit/static/static/media/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Script-Regular.C5JkGWo-.ttf +0 -0
- streamlit/static/static/media/KaTeX_Script-Regular.D3wIWfF6.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Script-Regular.D5yQViql.woff +0 -0
- streamlit/static/static/media/KaTeX_Size1-Regular.C195tn64.woff +0 -0
- streamlit/static/static/media/KaTeX_Size1-Regular.Dbsnue_I.ttf +0 -0
- streamlit/static/static/media/KaTeX_Size1-Regular.mCD8mA8B.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Size2-Regular.B7gKUWhC.ttf +0 -0
- streamlit/static/static/media/KaTeX_Size2-Regular.Dy4dx90m.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Size2-Regular.oD1tc_U0.woff +0 -0
- streamlit/static/static/media/KaTeX_Size3-Regular.CTq5MqoE.woff +0 -0
- streamlit/static/static/media/KaTeX_Size3-Regular.DgpXs0kz.ttf +0 -0
- streamlit/static/static/media/KaTeX_Size4-Regular.BF-4gkZK.woff +0 -0
- streamlit/static/static/media/KaTeX_Size4-Regular.DWFBv043.ttf +0 -0
- streamlit/static/static/media/KaTeX_Size4-Regular.Dl5lxZxV.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Typewriter-Regular.C0xS9mPB.woff +0 -0
- streamlit/static/static/media/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 +0 -0
- streamlit/static/static/media/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf +0 -0
- streamlit/static/static/media/MaterialSymbols-Rounded.DcZbplWk.woff2 +0 -0
- streamlit/static/static/media/SourceCodePro-Bold.CFEfr7-q.woff2 +0 -0
- streamlit/static/static/media/SourceCodePro-BoldItalic.C-LkFXxa.woff2 +0 -0
- streamlit/static/static/media/SourceCodePro-Italic.CxFOx7N-.woff2 +0 -0
- streamlit/static/static/media/SourceCodePro-Regular.CBOlD63d.woff2 +0 -0
- streamlit/static/static/media/SourceCodePro-SemiBold.CFHwW3Wd.woff2 +0 -0
- streamlit/static/static/media/SourceCodePro-SemiBoldItalic.Cg2yRu82.woff2 +0 -0
- streamlit/static/static/media/SourceSansPro-Bold.-6c9oR8J.woff2 +0 -0
- streamlit/static/static/media/SourceSansPro-BoldItalic.DmM_grLY.woff2 +0 -0
- streamlit/static/static/media/SourceSansPro-Italic.I1ipWe7Q.woff2 +0 -0
- streamlit/static/static/media/SourceSansPro-Regular.DZLUzqI4.woff2 +0 -0
- streamlit/static/static/media/SourceSansPro-SemiBold.sKQIyTMz.woff2 +0 -0
- streamlit/static/static/media/SourceSansPro-SemiBoldItalic.C0wP0icr.woff2 +0 -0
- streamlit/static/static/media/SourceSerifPro-Bold.8TUnKj4x.woff2 +0 -0
- streamlit/static/static/media/SourceSerifPro-BoldItalic.CBVO7Ve7.woff2 +0 -0
- streamlit/static/static/media/SourceSerifPro-Italic.DkFgL2HZ.woff2 +0 -0
- streamlit/static/static/media/SourceSerifPro-Regular.CNJNET2S.woff2 +0 -0
- streamlit/static/static/media/SourceSerifPro-SemiBold.CHyh9GC5.woff2 +0 -0
- streamlit/static/static/media/SourceSerifPro-SemiBoldItalic.CBtz8sWN.woff2 +0 -0
- streamlit/static/static/media/balloon-0.Czj7AKwE.png +0 -0
- streamlit/static/static/media/balloon-1.CNvFFrND.png +0 -0
- streamlit/static/static/media/balloon-2.DTvC6B1t.png +0 -0
- streamlit/static/static/media/balloon-3.CgSk4tbL.png +0 -0
- streamlit/static/static/media/balloon-4.mbtFrzxf.png +0 -0
- streamlit/static/static/media/balloon-5.CSwkUfRA.png +0 -0
- streamlit/static/static/media/fireworks.B4d-_KUe.gif +0 -0
- streamlit/static/static/media/flake-0.DgWaVvm5.png +0 -0
- streamlit/static/static/media/flake-1.B2r5AHMK.png +0 -0
- streamlit/static/static/media/flake-2.BnWSExPC.png +0 -0
- streamlit/static/static/media/snowflake.JU2jBHL8.svg +11 -0
- streamlit/string_util.py +203 -0
- streamlit/temporary_directory.py +56 -0
- streamlit/testing/__init__.py +13 -0
- streamlit/testing/v1/__init__.py +17 -0
- streamlit/testing/v1/app_test.py +1050 -0
- streamlit/testing/v1/element_tree.py +2083 -0
- streamlit/testing/v1/local_script_runner.py +180 -0
- streamlit/testing/v1/util.py +53 -0
- streamlit/time_util.py +75 -0
- streamlit/type_util.py +460 -0
- streamlit/url_util.py +122 -0
- streamlit/user_info.py +519 -0
- streamlit/util.py +72 -0
- streamlit/vendor/__init__.py +0 -0
- streamlit/vendor/pympler/__init__.py +0 -0
- streamlit/vendor/pympler/asizeof.py +2869 -0
- streamlit/version.py +18 -0
- streamlit/watcher/__init__.py +28 -0
- streamlit/watcher/event_based_path_watcher.py +406 -0
- streamlit/watcher/folder_black_list.py +82 -0
- streamlit/watcher/local_sources_watcher.py +233 -0
- streamlit/watcher/path_watcher.py +185 -0
- streamlit/watcher/polling_path_watcher.py +124 -0
- streamlit/watcher/util.py +207 -0
- streamlit/web/__init__.py +13 -0
- streamlit/web/bootstrap.py +353 -0
- streamlit/web/cache_storage_manager_config.py +38 -0
- streamlit/web/cli.py +369 -0
- streamlit/web/server/__init__.py +26 -0
- streamlit/web/server/app_static_file_handler.py +93 -0
- streamlit/web/server/authlib_tornado_integration.py +60 -0
- streamlit/web/server/browser_websocket_handler.py +246 -0
- streamlit/web/server/component_request_handler.py +116 -0
- streamlit/web/server/media_file_handler.py +141 -0
- streamlit/web/server/oauth_authlib_routes.py +176 -0
- streamlit/web/server/oidc_mixin.py +108 -0
- streamlit/web/server/routes.py +295 -0
- streamlit/web/server/server.py +479 -0
- streamlit/web/server/server_util.py +161 -0
- streamlit/web/server/stats_request_handler.py +95 -0
- streamlit/web/server/upload_file_request_handler.py +137 -0
- streamlit/web/server/websocket_headers.py +56 -0
- streamlit_nightly-1.43.2.dev20250307.data/scripts/streamlit.cmd +16 -0
- streamlit_nightly-1.43.2.dev20250307.dist-info/METADATA +207 -0
- streamlit_nightly-1.43.2.dev20250307.dist-info/RECORD +563 -0
- streamlit_nightly-1.43.2.dev20250307.dist-info/WHEEL +5 -0
- streamlit_nightly-1.43.2.dev20250307.dist-info/entry_points.txt +2 -0
- streamlit_nightly-1.43.2.dev20250307.dist-info/top_level.txt +1 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
from __future__ import annotations
|
16
|
+
|
17
|
+
from typing import TYPE_CHECKING
|
18
|
+
|
19
|
+
import tornado.web
|
20
|
+
|
21
|
+
from streamlit.web.server import allow_cross_origin_requests
|
22
|
+
from streamlit.web.server.server_util import emit_endpoint_deprecation_notice
|
23
|
+
|
24
|
+
if TYPE_CHECKING:
|
25
|
+
from streamlit.proto.openmetrics_data_model_pb2 import MetricSet as MetricSetProto
|
26
|
+
from streamlit.runtime.stats import CacheStat, StatsManager
|
27
|
+
|
28
|
+
|
29
|
+
class StatsRequestHandler(tornado.web.RequestHandler):
|
30
|
+
def initialize(self, stats_manager: StatsManager) -> None:
|
31
|
+
self._manager = stats_manager
|
32
|
+
|
33
|
+
def set_default_headers(self):
|
34
|
+
if allow_cross_origin_requests():
|
35
|
+
self.set_header("Access-Control-Allow-Origin", "*")
|
36
|
+
|
37
|
+
def options(self):
|
38
|
+
"""/OPTIONS handler for preflight CORS checks."""
|
39
|
+
self.set_status(204)
|
40
|
+
self.finish()
|
41
|
+
|
42
|
+
def get(self) -> None:
|
43
|
+
if self.request.uri and "_stcore/" not in self.request.uri:
|
44
|
+
emit_endpoint_deprecation_notice(self, new_path="/_stcore/metrics")
|
45
|
+
|
46
|
+
stats = self._manager.get_stats()
|
47
|
+
|
48
|
+
# If the request asked for protobuf output, we return a serialized
|
49
|
+
# protobuf. Else we return text.
|
50
|
+
if "application/x-protobuf" in self.request.headers.get_list("Accept"):
|
51
|
+
self.write(self._stats_to_proto(stats).SerializeToString())
|
52
|
+
self.set_header("Content-Type", "application/x-protobuf")
|
53
|
+
self.set_status(200)
|
54
|
+
else:
|
55
|
+
self.write(self._stats_to_text(self._manager.get_stats()))
|
56
|
+
self.set_header("Content-Type", "application/openmetrics-text")
|
57
|
+
self.set_status(200)
|
58
|
+
|
59
|
+
@staticmethod
|
60
|
+
def _stats_to_text(stats: list[CacheStat]) -> str:
|
61
|
+
metric_type = "# TYPE cache_memory_bytes gauge"
|
62
|
+
metric_unit = "# UNIT cache_memory_bytes bytes"
|
63
|
+
metric_help = "# HELP Total memory consumed by a cache."
|
64
|
+
openmetrics_eof = "# EOF\n"
|
65
|
+
|
66
|
+
# Format: header, stats, EOF
|
67
|
+
result = [metric_type, metric_unit, metric_help]
|
68
|
+
result.extend(stat.to_metric_str() for stat in stats)
|
69
|
+
result.append(openmetrics_eof)
|
70
|
+
|
71
|
+
return "\n".join(result)
|
72
|
+
|
73
|
+
@staticmethod
|
74
|
+
def _stats_to_proto(stats: list[CacheStat]) -> MetricSetProto:
|
75
|
+
# Lazy load the import of this proto message for better performance:
|
76
|
+
from streamlit.proto.openmetrics_data_model_pb2 import GAUGE
|
77
|
+
from streamlit.proto.openmetrics_data_model_pb2 import (
|
78
|
+
MetricSet as MetricSetProto,
|
79
|
+
)
|
80
|
+
|
81
|
+
metric_set = MetricSetProto()
|
82
|
+
|
83
|
+
metric_family = metric_set.metric_families.add()
|
84
|
+
metric_family.name = "cache_memory_bytes"
|
85
|
+
metric_family.type = GAUGE
|
86
|
+
metric_family.unit = "bytes"
|
87
|
+
metric_family.help = "Total memory consumed by a cache."
|
88
|
+
|
89
|
+
for stat in stats:
|
90
|
+
metric_proto = metric_family.metrics.add()
|
91
|
+
stat.marshall_metric_proto(metric_proto)
|
92
|
+
|
93
|
+
metric_set = MetricSetProto()
|
94
|
+
metric_set.metric_families.append(metric_family)
|
95
|
+
return metric_set
|
@@ -0,0 +1,137 @@
|
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
from __future__ import annotations
|
16
|
+
|
17
|
+
from typing import TYPE_CHECKING, Any, Callable
|
18
|
+
|
19
|
+
import tornado.httputil
|
20
|
+
import tornado.web
|
21
|
+
|
22
|
+
from streamlit import config
|
23
|
+
from streamlit.runtime.uploaded_file_manager import UploadedFileRec
|
24
|
+
from streamlit.web.server import routes, server_util
|
25
|
+
from streamlit.web.server.server_util import is_xsrf_enabled
|
26
|
+
|
27
|
+
if TYPE_CHECKING:
|
28
|
+
from streamlit.runtime.memory_uploaded_file_manager import MemoryUploadedFileManager
|
29
|
+
|
30
|
+
|
31
|
+
class UploadFileRequestHandler(tornado.web.RequestHandler):
|
32
|
+
"""Implements the POST /upload_file endpoint."""
|
33
|
+
|
34
|
+
def initialize(
|
35
|
+
self,
|
36
|
+
file_mgr: MemoryUploadedFileManager,
|
37
|
+
is_active_session: Callable[[str], bool],
|
38
|
+
):
|
39
|
+
"""
|
40
|
+
Parameters
|
41
|
+
----------
|
42
|
+
file_mgr : UploadedFileManager
|
43
|
+
The server's singleton UploadedFileManager. All file uploads
|
44
|
+
go here.
|
45
|
+
is_active_session:
|
46
|
+
A function that returns true if a session_id belongs to an active
|
47
|
+
session.
|
48
|
+
"""
|
49
|
+
self._file_mgr = file_mgr
|
50
|
+
self._is_active_session = is_active_session
|
51
|
+
|
52
|
+
def set_default_headers(self):
|
53
|
+
self.set_header("Access-Control-Allow-Methods", "PUT, OPTIONS, DELETE")
|
54
|
+
self.set_header("Access-Control-Allow-Headers", "Content-Type")
|
55
|
+
if is_xsrf_enabled():
|
56
|
+
self.set_header(
|
57
|
+
"Access-Control-Allow-Origin",
|
58
|
+
server_util.get_url(config.get_option("browser.serverAddress")),
|
59
|
+
)
|
60
|
+
self.set_header("Access-Control-Allow-Headers", "X-Xsrftoken, Content-Type")
|
61
|
+
self.set_header("Vary", "Origin")
|
62
|
+
self.set_header("Access-Control-Allow-Credentials", "true")
|
63
|
+
elif routes.allow_cross_origin_requests():
|
64
|
+
self.set_header("Access-Control-Allow-Origin", "*")
|
65
|
+
|
66
|
+
def options(self, **kwargs):
|
67
|
+
"""/OPTIONS handler for preflight CORS checks.
|
68
|
+
|
69
|
+
When a browser is making a CORS request, it may sometimes first
|
70
|
+
send an OPTIONS request, to check whether the server understands the
|
71
|
+
CORS protocol. This is optional, and doesn't happen for every request
|
72
|
+
or in every browser. If an OPTIONS request does get sent, and is not
|
73
|
+
then handled by the server, the browser will fail the underlying
|
74
|
+
request.
|
75
|
+
|
76
|
+
The proper way to handle this is to send a 204 response ("no content")
|
77
|
+
with the CORS headers attached. (These headers are automatically added
|
78
|
+
to every outgoing response, including OPTIONS responses,
|
79
|
+
via set_default_headers().)
|
80
|
+
|
81
|
+
See https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
|
82
|
+
"""
|
83
|
+
self.set_status(204)
|
84
|
+
self.finish()
|
85
|
+
|
86
|
+
def put(self, **kwargs):
|
87
|
+
"""Receive an uploaded file and add it to our UploadedFileManager."""
|
88
|
+
|
89
|
+
args: dict[str, list[bytes]] = {}
|
90
|
+
files: dict[str, list[Any]] = {}
|
91
|
+
|
92
|
+
session_id = self.path_kwargs["session_id"]
|
93
|
+
file_id = self.path_kwargs["file_id"]
|
94
|
+
|
95
|
+
tornado.httputil.parse_body_arguments(
|
96
|
+
content_type=self.request.headers["Content-Type"],
|
97
|
+
body=self.request.body,
|
98
|
+
arguments=args,
|
99
|
+
files=files,
|
100
|
+
)
|
101
|
+
|
102
|
+
try:
|
103
|
+
if not self._is_active_session(session_id):
|
104
|
+
raise Exception("Invalid session_id")
|
105
|
+
except Exception as e:
|
106
|
+
self.send_error(400, reason=str(e))
|
107
|
+
return
|
108
|
+
|
109
|
+
uploaded_files: list[UploadedFileRec] = []
|
110
|
+
|
111
|
+
for _, flist in files.items():
|
112
|
+
for file in flist:
|
113
|
+
uploaded_files.append(
|
114
|
+
UploadedFileRec(
|
115
|
+
file_id=file_id,
|
116
|
+
name=file["filename"],
|
117
|
+
type=file["content_type"],
|
118
|
+
data=file["body"],
|
119
|
+
)
|
120
|
+
)
|
121
|
+
|
122
|
+
if len(uploaded_files) != 1:
|
123
|
+
self.send_error(
|
124
|
+
400, reason=f"Expected 1 file, but got {len(uploaded_files)}"
|
125
|
+
)
|
126
|
+
return
|
127
|
+
|
128
|
+
self._file_mgr.add_file(session_id=session_id, file=uploaded_files[0])
|
129
|
+
self.set_status(204)
|
130
|
+
|
131
|
+
def delete(self, **kwargs):
|
132
|
+
"""Delete file request handler."""
|
133
|
+
session_id = self.path_kwargs["session_id"]
|
134
|
+
file_id = self.path_kwargs["file_id"]
|
135
|
+
|
136
|
+
self._file_mgr.remove_file(session_id=session_id, file_id=file_id)
|
137
|
+
self.set_status(204)
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
from __future__ import annotations
|
16
|
+
|
17
|
+
from streamlit import runtime
|
18
|
+
from streamlit.deprecation_util import show_deprecation_warning
|
19
|
+
from streamlit.runtime.metrics_util import gather_metrics
|
20
|
+
from streamlit.runtime.scriptrunner_utils.script_run_context import get_script_run_ctx
|
21
|
+
from streamlit.web.server.browser_websocket_handler import BrowserWebSocketHandler
|
22
|
+
|
23
|
+
_GET_WEBSOCKET_HEADERS_DEPRECATE_MSG = (
|
24
|
+
"The `_get_websocket_headers` function is deprecated and will be removed "
|
25
|
+
"in a future version of Streamlit. Please use `st.context.headers` instead."
|
26
|
+
)
|
27
|
+
|
28
|
+
|
29
|
+
@gather_metrics("_get_websocket_headers")
|
30
|
+
def _get_websocket_headers() -> dict[str, str] | None:
|
31
|
+
"""Return a copy of the HTTP request headers for the current session's
|
32
|
+
WebSocket connection. If there's no active session, return None instead.
|
33
|
+
|
34
|
+
Raise an error if the server is not running.
|
35
|
+
|
36
|
+
Note to the intrepid: this is an UNSUPPORTED, INTERNAL API. (We don't have plans
|
37
|
+
to remove it without a replacement, but we don't consider this a production-ready
|
38
|
+
function, and its signature may change without a deprecation warning.)
|
39
|
+
"""
|
40
|
+
|
41
|
+
show_deprecation_warning(_GET_WEBSOCKET_HEADERS_DEPRECATE_MSG)
|
42
|
+
|
43
|
+
ctx = get_script_run_ctx()
|
44
|
+
if ctx is None:
|
45
|
+
return None
|
46
|
+
|
47
|
+
session_client = runtime.get_instance().get_client(ctx.session_id)
|
48
|
+
if session_client is None:
|
49
|
+
return None
|
50
|
+
|
51
|
+
if not isinstance(session_client, BrowserWebSocketHandler):
|
52
|
+
raise RuntimeError(
|
53
|
+
f"SessionClient is not a BrowserWebSocketHandler! ({session_client})"
|
54
|
+
)
|
55
|
+
|
56
|
+
return dict(session_client.request.headers)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
rem Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
|
2
|
+
rem
|
3
|
+
rem Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
rem you may not use this file except in compliance with the License.
|
5
|
+
rem You may obtain a copy of the License at
|
6
|
+
rem
|
7
|
+
rem http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
rem
|
9
|
+
rem Unless required by applicable law or agreed to in writing, software
|
10
|
+
rem distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
rem See the License for the specific language governing permissions and
|
13
|
+
rem limitations under the License.
|
14
|
+
|
15
|
+
@echo OFF
|
16
|
+
python -m streamlit %*
|
@@ -0,0 +1,207 @@
|
|
1
|
+
Metadata-Version: 2.2
|
2
|
+
Name: streamlit-nightly
|
3
|
+
Version: 1.43.2.dev20250307
|
4
|
+
Summary: A faster way to build and share data apps
|
5
|
+
Home-page: https://streamlit.io
|
6
|
+
Author: Snowflake Inc
|
7
|
+
Author-email: hello@streamlit.io
|
8
|
+
License: Apache License 2.0
|
9
|
+
Project-URL: Source Code, https://github.com/streamlit/streamlit
|
10
|
+
Project-URL: Bug Tracker, https://github.com/streamlit/streamlit/issues
|
11
|
+
Project-URL: Release notes, https://docs.streamlit.io/develop/quick-reference/changelog
|
12
|
+
Project-URL: Documentation, https://docs.streamlit.io/
|
13
|
+
Project-URL: Community, https://discuss.streamlit.io/
|
14
|
+
Project-URL: Twitter, https://twitter.com/streamlit
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
16
|
+
Classifier: Environment :: Console
|
17
|
+
Classifier: Environment :: Web Environment
|
18
|
+
Classifier: Intended Audience :: Developers
|
19
|
+
Classifier: Intended Audience :: Science/Research
|
20
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
25
|
+
Classifier: Programming Language :: Python :: 3.13
|
26
|
+
Classifier: Topic :: Database :: Front-Ends
|
27
|
+
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
28
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
29
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
30
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
31
|
+
Classifier: Topic :: Software Development :: Widget Sets
|
32
|
+
Requires-Python: >=3.9, !=3.9.7
|
33
|
+
Description-Content-Type: text/markdown
|
34
|
+
Requires-Dist: altair<6,>=4.0
|
35
|
+
Requires-Dist: blinker<2,>=1.0.0
|
36
|
+
Requires-Dist: cachetools<6,>=4.0
|
37
|
+
Requires-Dist: click<9,>=7.0
|
38
|
+
Requires-Dist: numpy<3,>=1.23
|
39
|
+
Requires-Dist: packaging<25,>=20
|
40
|
+
Requires-Dist: pandas<3,>=1.4.0
|
41
|
+
Requires-Dist: pillow<12,>=7.1.0
|
42
|
+
Requires-Dist: protobuf<6,>=3.20
|
43
|
+
Requires-Dist: pyarrow>=7.0
|
44
|
+
Requires-Dist: requests<3,>=2.27
|
45
|
+
Requires-Dist: tenacity<10,>=8.1.0
|
46
|
+
Requires-Dist: toml<2,>=0.10.1
|
47
|
+
Requires-Dist: typing-extensions<5,>=4.4.0
|
48
|
+
Requires-Dist: watchdog<7,>=2.1.5; platform_system != "Darwin"
|
49
|
+
Requires-Dist: gitpython!=3.1.19,<4,>=3.0.7
|
50
|
+
Requires-Dist: pydeck<1,>=0.8.0b4
|
51
|
+
Requires-Dist: tornado<7,>=6.0.3
|
52
|
+
Provides-Extra: snowflake
|
53
|
+
Requires-Dist: snowflake-snowpark-python[modin]>=1.17.0; python_version < "3.12" and extra == "snowflake"
|
54
|
+
Requires-Dist: snowflake-connector-python>=3.3.0; python_version < "3.12" and extra == "snowflake"
|
55
|
+
Dynamic: author
|
56
|
+
Dynamic: author-email
|
57
|
+
Dynamic: classifier
|
58
|
+
Dynamic: description
|
59
|
+
Dynamic: description-content-type
|
60
|
+
Dynamic: home-page
|
61
|
+
Dynamic: license
|
62
|
+
Dynamic: project-url
|
63
|
+
Dynamic: provides-extra
|
64
|
+
Dynamic: requires-dist
|
65
|
+
Dynamic: requires-python
|
66
|
+
Dynamic: summary
|
67
|
+
|
68
|
+
<br>
|
69
|
+
|
70
|
+
<img src="https://user-images.githubusercontent.com/7164864/217935870-c0bc60a3-6fc0-4047-b011-7b4c59488c91.png" alt="Streamlit logo" style="margin-top:50px"></img>
|
71
|
+
|
72
|
+
# Welcome to Streamlit 👋
|
73
|
+
|
74
|
+
**A faster way to build and share data apps.**
|
75
|
+
|
76
|
+
## What is Streamlit?
|
77
|
+
|
78
|
+
Streamlit lets you transform Python scripts into interactive web apps in minutes, instead of weeks. Build dashboards, generate reports, or create chat apps. Once you’ve created an app, you can use our [Community Cloud platform](https://streamlit.io/cloud) to deploy, manage, and share your app.
|
79
|
+
|
80
|
+
### Why choose Streamlit?
|
81
|
+
|
82
|
+
- **Simple and Pythonic:** Write beautiful, easy-to-read code.
|
83
|
+
- **Fast, interactive prototyping:** Let others interact with your data and provide feedback quickly.
|
84
|
+
- **Live editing:** See your app update instantly as you edit your script.
|
85
|
+
- **Open-source and free:** Join a vibrant community and contribute to Streamlit's future.
|
86
|
+
|
87
|
+
## Installation
|
88
|
+
|
89
|
+
Open a terminal and run:
|
90
|
+
|
91
|
+
```bash
|
92
|
+
$ pip install streamlit
|
93
|
+
$ streamlit hello
|
94
|
+
```
|
95
|
+
|
96
|
+
If this opens our sweet _Streamlit Hello_ app in your browser, you're all set! If not, head over to [our docs](https://docs.streamlit.io/get-started) for specific installs.
|
97
|
+
|
98
|
+
The app features a bunch of examples of what you can do with Streamlit. Jump to the [quickstart](#quickstart) section to understand how that all works.
|
99
|
+
|
100
|
+
<img src="https://user-images.githubusercontent.com/7164864/217936487-1017784e-68ec-4e0d-a7f6-6b97525ddf88.gif" alt="Streamlit Hello" width=500 href="none"></img>
|
101
|
+
|
102
|
+
## Quickstart
|
103
|
+
|
104
|
+
### A little example
|
105
|
+
|
106
|
+
Create a new file `streamlit_app.py` with the following code:
|
107
|
+
```python
|
108
|
+
import streamlit as st
|
109
|
+
x = st.slider("Select a value")
|
110
|
+
st.write(x, "squared is", x * x)
|
111
|
+
```
|
112
|
+
|
113
|
+
Now run it to open the app!
|
114
|
+
```
|
115
|
+
$ streamlit run streamlit_app.py
|
116
|
+
```
|
117
|
+
|
118
|
+
<img src="https://user-images.githubusercontent.com/7164864/215172915-cf087c56-e7ae-449a-83a4-b5fa0328d954.gif" width=300 alt="Little example"></img>
|
119
|
+
|
120
|
+
### Give me more!
|
121
|
+
|
122
|
+
Streamlit comes in with [a ton of additional powerful elements](https://docs.streamlit.io/develop/api-reference) to spice up your data apps and delight your viewers. Some examples:
|
123
|
+
|
124
|
+
<table border="0">
|
125
|
+
<tr>
|
126
|
+
<td>
|
127
|
+
<a target="_blank" href="https://docs.streamlit.io/develop/api-reference/widgets">
|
128
|
+
<img src="https://user-images.githubusercontent.com/7164864/217936099-12c16f8c-7fe4-44b1-889a-1ac9ee6a1b44.png" style="max-height:150px; width:auto; display:block;">
|
129
|
+
</a>
|
130
|
+
</td>
|
131
|
+
<td>
|
132
|
+
<a target="_blank" href="https://docs.streamlit.io/develop/api-reference/data/st.dataframe">
|
133
|
+
<img src="https://user-images.githubusercontent.com/7164864/215110064-5eb4e294-8f30-4933-9563-0275230e52b5.gif" style="max-height:150px; width:auto; display:block;">
|
134
|
+
</a>
|
135
|
+
</td>
|
136
|
+
<td>
|
137
|
+
<a target="_blank" href="https://docs.streamlit.io/develop/api-reference/charts">
|
138
|
+
<img src="https://user-images.githubusercontent.com/7164864/215174472-bca8a0d7-cf4b-4268-9c3b-8c03dad50bcd.gif" style="max-height:150px; width:auto; display:block;">
|
139
|
+
</a>
|
140
|
+
</td>
|
141
|
+
<td>
|
142
|
+
<a target="_blank" href="https://docs.streamlit.io/develop/api-reference/layout">
|
143
|
+
<img src="https://user-images.githubusercontent.com/7164864/217936149-a35c35be-0d96-4c63-8c6a-1c4b52aa8f60.png" style="max-height:150px; width:auto; display:block;">
|
144
|
+
</a>
|
145
|
+
</td>
|
146
|
+
<td>
|
147
|
+
<a target="_blank" href="https://docs.streamlit.io/develop/concepts/multipage-apps">
|
148
|
+
<img src="https://user-images.githubusercontent.com/7164864/215173883-eae0de69-7c1d-4d78-97d0-3bc1ab865e5b.gif" style="max-height:150px; width:auto; display:block;">
|
149
|
+
</a>
|
150
|
+
</td>
|
151
|
+
<td>
|
152
|
+
<a target="_blank" href="https://streamlit.io/gallery">
|
153
|
+
<img src="https://user-images.githubusercontent.com/7164864/215109229-6ae9111f-e5c1-4f0b-b3a2-87a79268ccc9.gif" style="max-height:150px; width:auto; display:block;">
|
154
|
+
</a>
|
155
|
+
</td>
|
156
|
+
</tr>
|
157
|
+
<tr>
|
158
|
+
<td>Input widgets</td>
|
159
|
+
<td>Dataframes</td>
|
160
|
+
<td>Charts</td>
|
161
|
+
<td>Layout</td>
|
162
|
+
<td>Multi-page apps</td>
|
163
|
+
<td>Fun</td>
|
164
|
+
</tr>
|
165
|
+
</table>
|
166
|
+
|
167
|
+
|
168
|
+
Our vibrant creators community also extends Streamlit capabilities using 🧩 [Streamlit Components](https://streamlit.io/components).
|
169
|
+
|
170
|
+
## Get inspired
|
171
|
+
|
172
|
+
There's so much you can build with Streamlit:
|
173
|
+
- 🤖 [LLMs & chatbot apps](https://streamlit.io/gallery?category=llms)
|
174
|
+
- 🧬 [Science & technology apps](https://streamlit.io/gallery?category=science-technology)
|
175
|
+
- 💬 [NLP & language apps](https://streamlit.io/gallery?category=nlp-language)
|
176
|
+
- 🏦 [Finance & business apps](https://streamlit.io/gallery?category=finance-business)
|
177
|
+
- 🗺 [Geography & society apps](https://streamlit.io/gallery?category=geography-society)
|
178
|
+
- and more!
|
179
|
+
|
180
|
+
**Check out [our gallery!](https://streamlit.io/gallery)** 🎈
|
181
|
+
|
182
|
+
## Community Cloud
|
183
|
+
|
184
|
+
Deploy, manage and share your apps for free using our [Community Cloud](https://streamlit.io/cloud)! Sign-up [here](https://share.streamlit.io/signup). <br><br>
|
185
|
+
<img src="https://user-images.githubusercontent.com/7164864/214965336-64500db3-0d79-4a20-8052-2dda883902d2.gif" width="400"></img>
|
186
|
+
|
187
|
+
## Resources
|
188
|
+
|
189
|
+
- Explore our [docs](https://docs.streamlit.io) to learn how Streamlit works.
|
190
|
+
- Ask questions and get help in our [community forum](https://discuss.streamlit.io).
|
191
|
+
- Read our [blog](https://blog.streamlit.io) for tips from developers and creators.
|
192
|
+
- Extend Streamlit's capabilities by installing or creating your own [Streamlit Components](https://streamlit.io/components).
|
193
|
+
- Help others find and play with your app by using the Streamlit GitHub badge in your repository:
|
194
|
+
```markdown
|
195
|
+
[](URL_TO_YOUR_APP)
|
196
|
+
```
|
197
|
+
[](https://share.streamlit.io/streamlit/roadmap)
|
198
|
+
|
199
|
+
## Contribute
|
200
|
+
|
201
|
+
🎉 Thanks for your interest in helping improve Streamlit! 🎉
|
202
|
+
|
203
|
+
Before contributing, please read our guidelines here: https://github.com/streamlit/streamlit/wiki/Contributing
|
204
|
+
|
205
|
+
## License
|
206
|
+
|
207
|
+
Streamlit is completely free and open-source and licensed under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) license.
|