streamlit-nightly 1.44.1.dev20250327__tar.gz → 1.44.2.dev20250403__tar.gz
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_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/PKG-INFO +1 -1
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/setup.py +1 -1
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/commands/execution_control.py +3 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/commands/page_config.py +1 -1
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/config.py +0 -26
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/write.py +8 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ClientState_pb2.py +2 -2
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ClientState_pb2.pyi +11 -1
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ForwardMsg_pb2.pyi +4 -7
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/app_session.py +5 -4
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/context.py +14 -0
- streamlit_nightly-1.44.2.dev20250403/streamlit/runtime/forward_msg_cache.py +101 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/forward_msg_queue.py +41 -23
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/runtime.py +2 -60
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/runtime_util.py +15 -14
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner/script_runner.py +9 -1
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner_utils/script_requests.py +3 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner_utils/script_run_context.py +25 -3
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/session_manager.py +5 -6
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/index.html +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/FileDownload.esm.jX-9l2Ep.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/FileDownload.esm.B3kD8CdX.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/FileHelper.aCeQQwv9.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/FileHelper.CZMZF2jC.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/FormClearHelper.CWUgHOqb.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/FormClearHelper.BjztopwY.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/Hooks.z6bpnOa4.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/Hooks.B2w-p718.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/InputInstructions.CxNXqmaa.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/InputInstructions.CuF13wx9.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/ProgressBar.DeJx_v03.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/ProgressBar.BbIgSlVa.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/RenderInPortalIfExists.BzVEnQEP.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/RenderInPortalIfExists.yENMDBLa.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/Toolbar.Buaxb3gQ.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/Toolbar.DJ7G2mIO.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/base-input.B02pchZb.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/base-input.DIlOlDo4.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/checkbox.BNevNWhL.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/checkbox.BQjuWiaH.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/createSuper.HF1JI-bK.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/createSuper.DsCxV-v8.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/data-grid-overlay-editor.DHpEpsQ_.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/data-grid-overlay-editor.D4K6HcP0.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/downloader.B32k91dq.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/downloader.Lq-fJZlW.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/es6.j4L3xv_m.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/es6.BE-9QZmp.js +2 -2
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/iframeResizer.contentWindow.DQOV--zq.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/iframeResizer.contentWindow.CVN6zezL.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BTG2J5Pk.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.0HztFnVa.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.ChvqDLgw.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.5819-zgt.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.DaJw5fna.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.B-KH-iJ1.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.1tdxODWC.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.B0f5Sqj9.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CKYXxi_d.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.B1gZ98Ih.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.DTDyF8nE.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.B2XNA40L.js +1 -1
- streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.B7RGQCfs.js +1 -0
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CTwaWONb.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.BB3TfMGO.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.DsRxnb2z.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.BDovkxCx.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CpDe9l-f.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.BMWHViZF.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.R8Go3XlF.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.BM_qS2Z6.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BT-PT2u0.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.BYWoEwfP.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BDIF1v3E.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.Bs_nrSu4.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.Cq_L2WtW.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.BwOqVS7B.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CExICAHy.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.BysxR7v7.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CTgHTp02.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.C6uLzsGN.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.DbqewZ6W.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CDspsVkR.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.C1B9TyzK.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CE-qPTwY.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BnYJb__c.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CFnDv8Ab.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CcMFXZBL.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CQYXOt0H.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.B2-yUxP6.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CU_SzKbN.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.C-GJaT09.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CWOluRqa.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.V3D0L00K.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CbDE21BB.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.DNURUtUa.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.ChX_XN9v.js +1 -1
- streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.Cn3q8ZVn.js +2 -0
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.DBEif7dq.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.CzzEyXiC.js +3 -3
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.B28jf8c_.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.DIxzN4oM.js +51 -51
- streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.DSsFpl6V.js +3 -0
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.ClfebD_T.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.DmZP-_fu.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.Nb8G9oM-.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.Dw1CjpSH.js +1 -1
- streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.IydYP9PK.js +1 -0
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.Uid-bSyh.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.TnCoD1oP.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BRDvEQpe.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.WW1pXc2g.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.qkhdJyyt.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.eNGIEtgK.js +7 -7
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BBHrAwbG.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.m_aVBz2b.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BeuGcxG8.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.rPwcP7b8.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.m0rRkw04.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/index.u-RVYMyk.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/input.DogdK8Cg.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/input.CVw5KI0x.js +2 -2
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/memory.B_1d0kyG.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/memory.CnrS2dOM.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/mergeWith.9h0p6sC_.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/mergeWith.DUDC520V.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/number-overlay-editor.yRe6Yodu.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/number-overlay-editor.Ccw3Yu2p.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/possibleConstructorReturn.C73_6grg.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/possibleConstructorReturn.wVJHSwqv.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/sandbox.2u3nOS5d.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/sandbox.CpAztCDM.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/textarea.DFCEFjUj.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/textarea.CFjEVTUg.js +2 -2
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/timepicker.GuNna1EN.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/timepicker.DMKQZM-V.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/toConsumableArray.DARzcvE5.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/toConsumableArray.KVlxKIgo.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/uniqueId.fceb1ayN.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/uniqueId.kOCufBPt.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/useBasicWidgetState.D6255-xX.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/useBasicWidgetState.Bs_D3hOD.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/useOnInputChange.BjnOKne4.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/useOnInputChange.BH-JyYhR.js +1 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/withFullScreenWrapper.B7h9p1kI.js → streamlit_nightly-1.44.2.dev20250403/streamlit/static/static/js/withFullScreenWrapper.vQYihw6n.js +1 -1
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/routes.py +1 -59
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/server.py +7 -8
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit_nightly.egg-info/PKG-INFO +1 -1
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit_nightly.egg-info/SOURCES.txt +65 -65
- streamlit_nightly-1.44.1.dev20250327/streamlit/runtime/forward_msg_cache.py +0 -296
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.BUz0sS-V.js +0 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CDMGlkYx.js +0 -3
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.CPMy5pwd.js +0 -1
- streamlit_nightly-1.44.1.dev20250327/streamlit/static/static/js/index.DfvKnm4Q.js +0 -2
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/MANIFEST.in +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/bin/streamlit.cmd +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/setup.cfg +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/__main__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/auth_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/cli_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/column_config.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/commands/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/commands/echo.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/commands/experimental_query_params.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/commands/logo.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/commands/navigation.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/lib/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/lib/local_component_registry.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/types/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/types/base_component_registry.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/types/base_custom_component.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/v1/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/v1/component_arrow.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/v1/component_registry.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/v1/components.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/components/v1/custom_component.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/config_option.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/config_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/connections/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/connections/base_connection.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/connections/snowflake_connection.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/connections/snowpark_connection.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/connections/sql_connection.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/connections/util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/cursor.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/dataframe_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/delta_generator.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/delta_generator_singletons.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/deprecation_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/development.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/alert.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/arrow.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/balloons.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/bokeh_chart.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/code.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/deck_gl_json_chart.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/dialog_decorator.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/doc_string.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/empty.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/exception.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/form.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/graphviz_chart.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/heading.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/html.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/iframe.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/image.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/json.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/layouts.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/built_in_chart_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/color_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/column_config_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/column_types.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/dialog.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/dicttools.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/event_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/file_uploader_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/form_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/image_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/js_number.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/mutable_status_container.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/options_selector_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/pandas_styler_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/policies.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/streamlit_plotly_theme.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/subtitle_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/lib/utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/map.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/markdown.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/media.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/metric.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/plotly_chart.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/progress.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/pyplot.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/snow.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/spinner.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/text.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/toast.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/vega_charts.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/audio_input.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/button.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/button_group.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/camera_input.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/chat.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/checkbox.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/color_picker.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/data_editor.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/file_uploader.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/multiselect.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/number_input.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/radio.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/select_slider.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/selectbox.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/slider.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/text_widgets.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/elements/widgets/time_widgets.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/emojis.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/env_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/error_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/errors.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/external/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/external/langchain/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/external/langchain/streamlit_callback_handler.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/file_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/git_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/animation_demo.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/dataframe_demo.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/hello.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/mapping_demo.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/plotting_demo.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/streamlit_app.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/hello/utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/logger.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/material_icon_names.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/navigation/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/navigation/page.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/net_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/platform.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Alert_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Alert_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AppPage_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AppPage_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ArrowNamedDataSet_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ArrowNamedDataSet_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ArrowVegaLiteChart_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ArrowVegaLiteChart_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Arrow_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Arrow_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AudioInput_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AudioInput_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Audio_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Audio_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AuthRedirect_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AuthRedirect_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AutoRerun_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/AutoRerun_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/BackMsg_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/BackMsg_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Balloons_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Balloons_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Block_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Block_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/BokehChart_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/BokehChart_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ButtonGroup_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ButtonGroup_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Button_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Button_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/CameraInput_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/CameraInput_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ChatInput_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ChatInput_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Checkbox_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Checkbox_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Code_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Code_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ColorPicker_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ColorPicker_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Common_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Common_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Components_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Components_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DataFrame_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DataFrame_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DateInput_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DateInput_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DeckGlJsonChart_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DeckGlJsonChart_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Delta_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Delta_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DocString_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DocString_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DownloadButton_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/DownloadButton_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Element_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Element_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Empty_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Empty_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Exception_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Exception_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Favicon_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Favicon_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/FileUploader_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/FileUploader_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ForwardMsg_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/GitInfo_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/GitInfo_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/GraphVizChart_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/GraphVizChart_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Heading_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Heading_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Html_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Html_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/IFrame_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/IFrame_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Image_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Image_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Json_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Json_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/LabelVisibilityMessage_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/LabelVisibilityMessage_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/LinkButton_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/LinkButton_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Logo_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Logo_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Markdown_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Markdown_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Metric_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Metric_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/MetricsEvent_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/MetricsEvent_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/MultiSelect_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/MultiSelect_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/NamedDataSet_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/NamedDataSet_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Navigation_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Navigation_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/NewSession_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/NewSession_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/NumberInput_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/NumberInput_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageConfig_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageConfig_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageInfo_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageInfo_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageLink_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageLink_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageNotFound_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageNotFound_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageProfile_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PageProfile_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PagesChanged_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PagesChanged_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ParentMessage_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/ParentMessage_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PlotlyChart_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/PlotlyChart_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Progress_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Progress_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Radio_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Radio_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/RootContainer_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/RootContainer_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Selectbox_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Selectbox_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/SessionEvent_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/SessionEvent_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/SessionStatus_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/SessionStatus_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Skeleton_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Skeleton_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Slider_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Slider_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Snow_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Snow_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Spinner_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Spinner_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/TextArea_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/TextArea_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/TextInput_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/TextInput_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Text_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Text_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/TimeInput_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/TimeInput_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Toast_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Toast_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/VegaLiteChart_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/VegaLiteChart_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Video_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/Video_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/WidgetStates_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/WidgetStates_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/openmetrics_data_model_pb2.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/proto/openmetrics_data_model_pb2.pyi +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/py.typed +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/cache_data_api.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/cache_errors.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/cache_resource_api.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/cache_type.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/cache_utils.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/cached_message_replay.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/hashing.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/legacy_cache_api.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/storage/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/storage/cache_storage_protocol.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/storage/dummy_cache_storage.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/storage/in_memory_cache_storage_wrapper.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/caching/storage/local_disk_cache_storage.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/connection_factory.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/credentials.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/fragment.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/media_file_manager.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/media_file_storage.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/memory_media_file_storage.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/memory_session_storage.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/memory_uploaded_file_manager.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/metrics_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/pages_manager.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/script_data.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner/exec_code.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner/magic.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner/magic_funcs.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner/script_cache.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner_utils/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/scriptrunner_utils/exceptions.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/secrets.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/common.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/query_params.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/query_params_proxy.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/safe_session_state.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/session_state.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/session_state_proxy.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/state/widgets.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/stats.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/uploaded_file_manager.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/runtime/websocket_session_manager.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/source_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/favicon.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/css/index.C5t3M85E.css +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/css/index.DKr_zoDj.css +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/css/index.DzuxGC_t.css +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/UploadFileInfo.C-jY39rj.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/createDownloadLinkElement.DZMwyjvU.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/index.t--hEgTQ.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/inputUtils.CQWz5UKz.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/sprintf.D7DtBTRn.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/threshold.DjX0wlsa.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/timer.CAwTRJ_g.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/js/value.CgPGBV_l.js +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_AMS-Regular.BQhdFMY1.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_AMS-Regular.DMm9YOAa.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_AMS-Regular.DRggAlZN.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.BEiXGLvX.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.CTRA-rTL.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.wX97UBjC.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Fraktur-Bold.BdnERNNW.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Fraktur-Bold.BsDP51OF.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Fraktur-Regular.CB_wures.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Fraktur-Regular.Dxdc4cR9.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Bold.Cx986IdX.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Bold.Jm3AIy58.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Bold.waoOVXN0.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-BoldItalic.DzxPMmG6.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-BoldItalic.SpSLRI95.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Italic.3WenGoN9.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Italic.BMLOBm91.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Italic.NWA7e6Wa.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Regular.B22Nviop.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Regular.Dr94JaBh.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Main-Regular.ypZvNtVU.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Math-BoldItalic.B3XSjfu4.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Math-BoldItalic.iY-2wyZ7.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Math-Italic.DA0__PXp.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Math-Italic.flOr_0UB.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Math-Italic.t53AETM-.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Bold.CFMepnvq.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Bold.DbIhKOiC.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Italic.DN2j7dab.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Regular.BNo7hRIc.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Regular.CS6fqUqJ.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Script-Regular.C5JkGWo-.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Script-Regular.D3wIWfF6.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Script-Regular.D5yQViql.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size1-Regular.C195tn64.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size1-Regular.Dbsnue_I.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size1-Regular.mCD8mA8B.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size2-Regular.B7gKUWhC.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size2-Regular.Dy4dx90m.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size2-Regular.oD1tc_U0.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size3-Regular.CTq5MqoE.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size3-Regular.DgpXs0kz.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size4-Regular.BF-4gkZK.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size4-Regular.DWFBv043.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Size4-Regular.Dl5lxZxV.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Typewriter-Regular.C0xS9mPB.woff +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/MaterialSymbols-Rounded.C21bROXx.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceCodePro-Bold.CFEfr7-q.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceCodePro-BoldItalic.C-LkFXxa.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceCodePro-Italic.CxFOx7N-.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceCodePro-Regular.CBOlD63d.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceCodePro-SemiBold.CFHwW3Wd.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceCodePro-SemiBoldItalic.Cg2yRu82.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSansPro-Bold.-6c9oR8J.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSansPro-BoldItalic.DmM_grLY.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSansPro-Italic.I1ipWe7Q.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSansPro-Regular.DZLUzqI4.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSansPro-SemiBold.sKQIyTMz.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSansPro-SemiBoldItalic.C0wP0icr.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSerifPro-Bold.8TUnKj4x.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSerifPro-BoldItalic.CBVO7Ve7.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSerifPro-Italic.DkFgL2HZ.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSerifPro-Regular.CNJNET2S.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSerifPro-SemiBold.CHyh9GC5.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/SourceSerifPro-SemiBoldItalic.CBtz8sWN.woff2 +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/balloon-0.Czj7AKwE.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/balloon-1.CNvFFrND.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/balloon-2.DTvC6B1t.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/balloon-3.CgSk4tbL.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/balloon-4.mbtFrzxf.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/balloon-5.CSwkUfRA.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/fireworks.B4d-_KUe.gif +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/flake-0.DgWaVvm5.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/flake-1.B2r5AHMK.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/flake-2.BnWSExPC.png +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/static/static/media/snowflake.JU2jBHL8.svg +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/string_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/temporary_directory.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/testing/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/testing/v1/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/testing/v1/app_test.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/testing/v1/element_tree.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/testing/v1/local_script_runner.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/testing/v1/util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/time_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/type_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/url_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/user_info.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/vendor/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/vendor/pympler/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/vendor/pympler/asizeof.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/version.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/watcher/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/watcher/event_based_path_watcher.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/watcher/folder_black_list.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/watcher/local_sources_watcher.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/watcher/path_watcher.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/watcher/polling_path_watcher.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/watcher/util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/bootstrap.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/cache_storage_manager_config.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/cli.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/__init__.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/app_static_file_handler.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/authlib_tornado_integration.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/browser_websocket_handler.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/component_request_handler.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/media_file_handler.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/oauth_authlib_routes.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/oidc_mixin.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/server_util.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/stats_request_handler.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/upload_file_request_handler.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/web/server/websocket_headers.py +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit_nightly.egg-info/dependency_links.txt +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit_nightly.egg-info/entry_points.txt +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit_nightly.egg-info/not-zip-safe +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit_nightly.egg-info/requires.txt +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit_nightly.egg-info/top_level.txt +0 -0
- {streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/tests/testutil.py +0 -0
@@ -21,7 +21,7 @@ from setuptools.command.install import install
|
|
21
21
|
|
22
22
|
THIS_DIRECTORY = Path(__file__).parent
|
23
23
|
|
24
|
-
VERSION = "1.44.
|
24
|
+
VERSION = "1.44.2.dev20250403" # PEP-440
|
25
25
|
|
26
26
|
# IMPORTANT: We should try very hard *not* to add dependencies to Streamlit.
|
27
27
|
# And if you do add one, make the required version as general as possible:
|
@@ -140,6 +140,7 @@ def rerun( # type: ignore[misc]
|
|
140
140
|
if ctx and ctx.script_requests:
|
141
141
|
query_string = ctx.query_string
|
142
142
|
page_script_hash = ctx.page_script_hash
|
143
|
+
cached_message_hashes = ctx.cached_message_hashes
|
143
144
|
|
144
145
|
ctx.script_requests.request_rerun(
|
145
146
|
RerunData(
|
@@ -147,6 +148,7 @@ def rerun( # type: ignore[misc]
|
|
147
148
|
page_script_hash=page_script_hash,
|
148
149
|
fragment_id_queue=_new_fragment_id_queue(ctx, scope),
|
149
150
|
is_fragment_scoped_rerun=scope == "fragment",
|
151
|
+
cached_message_hashes=cached_message_hashes,
|
150
152
|
)
|
151
153
|
)
|
152
154
|
# Force a yield point so the runner can do the rerun
|
@@ -232,6 +234,7 @@ def switch_page(page: str | Path | StreamlitPage) -> NoReturn: # type: ignore[m
|
|
232
234
|
RerunData(
|
233
235
|
query_string=ctx.query_string,
|
234
236
|
page_script_hash=page_script_hash,
|
237
|
+
cached_message_hashes=ctx.cached_message_hashes,
|
235
238
|
)
|
236
239
|
)
|
237
240
|
# Force a yield point so the runner can do the rerun
|
@@ -102,7 +102,7 @@ def _get_favicon_string(page_icon: PageIcon) -> str:
|
|
102
102
|
|
103
103
|
# If page_icon is an emoji, return it as is.
|
104
104
|
if isinstance(page_icon, str) and is_emoji(page_icon):
|
105
|
-
return page_icon
|
105
|
+
return f"emoji:{page_icon}"
|
106
106
|
|
107
107
|
if isinstance(page_icon, str) and page_icon.startswith(":material"):
|
108
108
|
return validate_material_icon(page_icon)
|
{streamlit_nightly-1.44.1.dev20250327 → streamlit_nightly-1.44.2.dev20250403}/streamlit/config.py
RENAMED
@@ -444,32 +444,6 @@ _create_option(
|
|
444
444
|
type_=int,
|
445
445
|
)
|
446
446
|
|
447
|
-
_create_option(
|
448
|
-
"global.storeCachedForwardMessagesInMemory",
|
449
|
-
description="""
|
450
|
-
If True, store cached ForwardMsgs in backend memory. This is an
|
451
|
-
internal flag to validate a potential removal of the in-memory
|
452
|
-
forward message cache.
|
453
|
-
""",
|
454
|
-
visibility="hidden",
|
455
|
-
default_val=True,
|
456
|
-
type_=bool,
|
457
|
-
)
|
458
|
-
|
459
|
-
_create_option(
|
460
|
-
"global.includeFragmentRunsInForwardMessageCacheCount",
|
461
|
-
description="""
|
462
|
-
If True, the server will include fragment runs in the count for the
|
463
|
-
forward message cache. The implication is that apps with fragments may
|
464
|
-
see messages being removed from the cache faster. This aligns the server
|
465
|
-
count with the frontend count. This is a temporary fix while we assess the
|
466
|
-
design of the cache.
|
467
|
-
""",
|
468
|
-
visibility="hidden",
|
469
|
-
default_val=False,
|
470
|
-
type_=bool,
|
471
|
-
)
|
472
|
-
|
473
447
|
|
474
448
|
# Config Section: Logger #
|
475
449
|
_create_section("logger", "Settings to customize Streamlit log messages.")
|
@@ -407,6 +407,14 @@ class WriteMixin:
|
|
407
407
|
kwargs,
|
408
408
|
)
|
409
409
|
|
410
|
+
if len(args) == 1 and isinstance(args[0], str):
|
411
|
+
# Optimization: If there is only one arg, and it's a string,
|
412
|
+
# we can just call markdown directly and skip the buffer logic.
|
413
|
+
# This also prevents unnecessary usage of `st.empty()`.
|
414
|
+
# This covers > 80% of all `st.write` uses.
|
415
|
+
self.dg.markdown(args[0], unsafe_allow_html=unsafe_allow_html)
|
416
|
+
return
|
417
|
+
|
410
418
|
string_buffer: list[str] = []
|
411
419
|
|
412
420
|
# This bans some valid cases like: e = st.empty(); e.write("a", "b").
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
15
15
|
from streamlit.proto import WidgetStates_pb2 as streamlit_dot_proto_dot_WidgetStates__pb2
|
16
16
|
|
17
17
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!streamlit/proto/ClientState.proto\x1a\"streamlit/proto/WidgetStates.proto\"\x9d\x01\n\x0b\x43ontextInfo\x12\x15\n\x08timezone\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0ftimezone_offset\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06locale\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x03url\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0b\n\t_timezoneB\x12\n\x10_timezone_offsetB\t\n\x07_localeB\x06\n\x04_url\"\
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!streamlit/proto/ClientState.proto\x1a\"streamlit/proto/WidgetStates.proto\"\x9d\x01\n\x0b\x43ontextInfo\x12\x15\n\x08timezone\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0ftimezone_offset\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06locale\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x03url\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0b\n\t_timezoneB\x12\n\x10_timezone_offsetB\t\n\x07_localeB\x06\n\x04_url\"\xe5\x01\n\x0b\x43lientState\x12\x14\n\x0cquery_string\x18\x01 \x01(\t\x12$\n\rwidget_states\x18\x02 \x01(\x0b\x32\r.WidgetStates\x12\x18\n\x10page_script_hash\x18\x03 \x01(\t\x12\x11\n\tpage_name\x18\x04 \x01(\t\x12\x13\n\x0b\x66ragment_id\x18\x05 \x01(\t\x12\x15\n\ris_auto_rerun\x18\x06 \x01(\x08\x12\x1d\n\x15\x63\x61\x63hed_message_hashes\x18\x07 \x03(\t\x12\"\n\x0c\x63ontext_info\x18\x08 \x01(\x0b\x32\x0c.ContextInfoB0\n\x1c\x63om.snowflake.apps.streamlitB\x10\x43lientStateProtob\x06proto3')
|
19
19
|
|
20
20
|
_globals = globals()
|
21
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -26,5 +26,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
26
26
|
_globals['_CONTEXTINFO']._serialized_start=74
|
27
27
|
_globals['_CONTEXTINFO']._serialized_end=231
|
28
28
|
_globals['_CLIENTSTATE']._serialized_start=234
|
29
|
-
_globals['_CLIENTSTATE']._serialized_end=
|
29
|
+
_globals['_CLIENTSTATE']._serialized_end=463
|
30
30
|
# @@protoc_insertion_point(module_scope)
|
@@ -18,7 +18,9 @@ limitations under the License.
|
|
18
18
|
"""
|
19
19
|
|
20
20
|
import builtins
|
21
|
+
import collections.abc
|
21
22
|
import google.protobuf.descriptor
|
23
|
+
import google.protobuf.internal.containers
|
22
24
|
import google.protobuf.message
|
23
25
|
import streamlit.proto.WidgetStates_pb2
|
24
26
|
import typing
|
@@ -68,6 +70,7 @@ class ClientState(google.protobuf.message.Message):
|
|
68
70
|
PAGE_NAME_FIELD_NUMBER: builtins.int
|
69
71
|
FRAGMENT_ID_FIELD_NUMBER: builtins.int
|
70
72
|
IS_AUTO_RERUN_FIELD_NUMBER: builtins.int
|
73
|
+
CACHED_MESSAGE_HASHES_FIELD_NUMBER: builtins.int
|
71
74
|
CONTEXT_INFO_FIELD_NUMBER: builtins.int
|
72
75
|
query_string: builtins.str
|
73
76
|
page_script_hash: builtins.str
|
@@ -76,6 +79,12 @@ class ClientState(google.protobuf.message.Message):
|
|
76
79
|
is_auto_rerun: builtins.bool
|
77
80
|
@property
|
78
81
|
def widget_states(self) -> streamlit.proto.WidgetStates_pb2.WidgetStates: ...
|
82
|
+
@property
|
83
|
+
def cached_message_hashes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
84
|
+
"""List of hashes of messages that are currently cached in
|
85
|
+
the frontend forward message cache.
|
86
|
+
"""
|
87
|
+
|
79
88
|
@property
|
80
89
|
def context_info(self) -> global___ContextInfo: ...
|
81
90
|
def __init__(
|
@@ -87,9 +96,10 @@ class ClientState(google.protobuf.message.Message):
|
|
87
96
|
page_name: builtins.str = ...,
|
88
97
|
fragment_id: builtins.str = ...,
|
89
98
|
is_auto_rerun: builtins.bool = ...,
|
99
|
+
cached_message_hashes: collections.abc.Iterable[builtins.str] | None = ...,
|
90
100
|
context_info: global___ContextInfo | None = ...,
|
91
101
|
) -> None: ...
|
92
102
|
def HasField(self, field_name: typing.Literal["context_info", b"context_info", "widget_states", b"widget_states"]) -> builtins.bool: ...
|
93
|
-
def ClearField(self, field_name: typing.Literal["context_info", b"context_info", "fragment_id", b"fragment_id", "is_auto_rerun", b"is_auto_rerun", "page_name", b"page_name", "page_script_hash", b"page_script_hash", "query_string", b"query_string", "widget_states", b"widget_states"]) -> None: ...
|
103
|
+
def ClearField(self, field_name: typing.Literal["cached_message_hashes", b"cached_message_hashes", "context_info", b"context_info", "fragment_id", b"fragment_id", "is_auto_rerun", b"is_auto_rerun", "page_name", b"page_name", "page_script_hash", b"page_script_hash", "query_string", b"query_string", "widget_states", b"widget_states"]) -> None: ...
|
94
104
|
|
95
105
|
global___ClientState = ClientState
|
@@ -107,10 +107,9 @@ class ForwardMsg(google.protobuf.message.Message):
|
|
107
107
|
"""A hash that uniquely identifies this ForwardMsg, for caching."""
|
108
108
|
script_finished: global___ForwardMsg.ScriptFinishedStatus.ValueType
|
109
109
|
ref_hash: builtins.str
|
110
|
-
"""A reference to a ForwardMsg that has already been delivered
|
111
|
-
The client should substitute the message
|
112
|
-
|
113
|
-
in its cache, it can retrieve it from the server.
|
110
|
+
"""A reference to a ForwardMsg that has already been delivered
|
111
|
+
and cached in the frontend. The client should substitute the message
|
112
|
+
with the given hash for this one.
|
114
113
|
"""
|
115
114
|
debug_last_backmsg_id: builtins.str
|
116
115
|
"""The ID of the last BackMsg that we received before sending this
|
@@ -214,9 +213,7 @@ class ForwardMsgMetadata(google.protobuf.message.Message):
|
|
214
213
|
ELEMENT_DIMENSION_SPEC_FIELD_NUMBER: builtins.int
|
215
214
|
ACTIVE_SCRIPT_HASH_FIELD_NUMBER: builtins.int
|
216
215
|
cacheable: builtins.bool
|
217
|
-
"""
|
218
|
-
and a client that receives it should do the same.
|
219
|
-
"""
|
216
|
+
"""Marks a message as cacheable for the frontend."""
|
220
217
|
active_script_hash: builtins.str
|
221
218
|
"""active_script_hash the forward message is associated from.
|
222
219
|
For multipage apps v1, this will always be the page file running
|
@@ -383,12 +383,13 @@ class AppSession:
|
|
383
383
|
self._client_state.context_info.CopyFrom(client_state.context_info)
|
384
384
|
|
385
385
|
rerun_data = RerunData(
|
386
|
-
client_state.query_string,
|
387
|
-
client_state.widget_states,
|
388
|
-
client_state.page_script_hash,
|
389
|
-
client_state.page_name,
|
386
|
+
query_string=client_state.query_string,
|
387
|
+
widget_states=client_state.widget_states,
|
388
|
+
page_script_hash=client_state.page_script_hash,
|
389
|
+
page_name=client_state.page_name,
|
390
390
|
fragment_id=fragment_id if fragment_id else None,
|
391
391
|
is_auto_rerun=client_state.is_auto_rerun,
|
392
|
+
cached_message_hashes=set(client_state.cached_message_hashes),
|
392
393
|
context_info=client_state.context_info,
|
393
394
|
)
|
394
395
|
else:
|
@@ -307,3 +307,17 @@ class ContextProxy:
|
|
307
307
|
if ctx is None or ctx.context_info is None:
|
308
308
|
return None
|
309
309
|
return ctx.context_info.url
|
310
|
+
|
311
|
+
@property
|
312
|
+
@gather_metrics("context.ip_address")
|
313
|
+
def ip_address(self) -> str | None:
|
314
|
+
"""The read-only IP address of the user's connection.
|
315
|
+
This should not be used for security measures as it can be easily spoofed.
|
316
|
+
"""
|
317
|
+
session_client_request = _get_request()
|
318
|
+
if session_client_request is not None:
|
319
|
+
remote_ip = session_client_request.remote_ip
|
320
|
+
if remote_ip == "::1" or remote_ip == "127.0.0.1":
|
321
|
+
return None
|
322
|
+
return remote_ip
|
323
|
+
return None
|
@@ -0,0 +1,101 @@
|
|
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 Final
|
18
|
+
|
19
|
+
from streamlit import config, util
|
20
|
+
from streamlit.logger import get_logger
|
21
|
+
from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
|
22
|
+
|
23
|
+
_LOGGER: Final = get_logger(__name__)
|
24
|
+
|
25
|
+
|
26
|
+
def populate_hash_if_needed(msg: ForwardMsg) -> None:
|
27
|
+
"""Computes and assigns the unique hash for a ForwardMsg.
|
28
|
+
|
29
|
+
If the ForwardMsg already has a hash, this is a no-op.
|
30
|
+
|
31
|
+
Parameters
|
32
|
+
----------
|
33
|
+
msg : ForwardMsg
|
34
|
+
|
35
|
+
"""
|
36
|
+
if msg.hash == "" and msg.WhichOneof("type") not in {"ref_hash", "initialize"}:
|
37
|
+
# Move the message's metadata aside. It's not part of the
|
38
|
+
# hash calculation.
|
39
|
+
metadata = msg.metadata
|
40
|
+
msg.ClearField("metadata")
|
41
|
+
|
42
|
+
# Serialize the message to bytes using the deterministic serializer to
|
43
|
+
# ensure consistent hashing.
|
44
|
+
serialized_msg = msg.SerializeToString(deterministic=True)
|
45
|
+
|
46
|
+
# TODO(lukasmasuch): Evaluate more optimized hashing for larger messages:
|
47
|
+
# - Add the type element type and number of bytes to the hash.
|
48
|
+
# - Only hash the first N bytes of the message.
|
49
|
+
|
50
|
+
# MD5 is good enough for what we need, which is uniqueness.
|
51
|
+
msg.hash = util.calc_md5(serialized_msg)
|
52
|
+
|
53
|
+
# Restore metadata.
|
54
|
+
msg.metadata.CopyFrom(metadata)
|
55
|
+
|
56
|
+
# Set cacheable flag if above the min cached size and if its a `new_element`
|
57
|
+
# delta. We only cache new_element and add_block deltas since container's
|
58
|
+
# are not expected to be larger than a few KB and have other side-effects
|
59
|
+
# to consider if cached. But `add_block` deltas should still get a hash.
|
60
|
+
# In case we ever allow other delta types to be cached, we should
|
61
|
+
# also need to adapt the composable logic in forward_msg_queue.
|
62
|
+
msg.metadata.cacheable = (
|
63
|
+
len(serialized_msg) >= int(config.get_option("global.minCachedMessageSize"))
|
64
|
+
and msg.WhichOneof("type") == "delta"
|
65
|
+
and msg.delta.WhichOneof("type") == "new_element"
|
66
|
+
)
|
67
|
+
|
68
|
+
|
69
|
+
def create_reference_msg(msg: ForwardMsg) -> ForwardMsg:
|
70
|
+
"""Create a ForwardMsg that refers to the given message via its hash.
|
71
|
+
|
72
|
+
The reference message will also get a copy of the source message's
|
73
|
+
metadata.
|
74
|
+
|
75
|
+
Parameters
|
76
|
+
----------
|
77
|
+
msg : ForwardMsg
|
78
|
+
The ForwardMsg to create the reference to.
|
79
|
+
|
80
|
+
Returns
|
81
|
+
-------
|
82
|
+
ForwardMsg
|
83
|
+
A new ForwardMsg that "points" to the original message via the
|
84
|
+
ref_hash field.
|
85
|
+
|
86
|
+
"""
|
87
|
+
if not msg.hash:
|
88
|
+
_LOGGER.warning(
|
89
|
+
"Failed to create a reference message for a ForwardMsg since the "
|
90
|
+
"message does not have a hash. This is not expected to happen, "
|
91
|
+
"please report this as a bug. Falling back to the original message."
|
92
|
+
)
|
93
|
+
# Fallback to the original message if the hash is not set.
|
94
|
+
# This is not expected to happen.
|
95
|
+
return msg
|
96
|
+
|
97
|
+
ref_msg = ForwardMsg()
|
98
|
+
ref_msg.ref_hash = msg.hash
|
99
|
+
ref_msg.metadata.CopyFrom(msg.metadata)
|
100
|
+
ref_msg.metadata.cacheable = False
|
101
|
+
return ref_msg
|
@@ -14,13 +14,10 @@
|
|
14
14
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
|
-
from typing import
|
17
|
+
from typing import Any, Callable
|
18
18
|
|
19
19
|
from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
|
20
20
|
|
21
|
-
if TYPE_CHECKING:
|
22
|
-
from streamlit.proto.Delta_pb2 import Delta
|
23
|
-
|
24
21
|
|
25
22
|
class ForwardMsgQueue:
|
26
23
|
"""Accumulates a session's outgoing ForwardMsgs.
|
@@ -79,16 +76,27 @@ class ForwardMsgQueue:
|
|
79
76
|
# the app - we attempt to combine this new Delta into the old
|
80
77
|
# one. This is an optimization that prevents redundant Deltas
|
81
78
|
# from being sent to the frontend.
|
79
|
+
# One common case where this happens is with `st.write` since
|
80
|
+
# it uses a trick with `st.empty` to handle lists of args.
|
81
|
+
# Note: its not guaranteed that the optimization is always applied
|
82
|
+
# since the queue can be flushed to the browser at any time.
|
83
|
+
# For example:
|
84
|
+
# queue 1:
|
85
|
+
# empty [0, 0] <- skipped
|
86
|
+
# markdown [0, 0]
|
87
|
+
# empty [1, 0] <- send to frontend
|
88
|
+
#
|
89
|
+
# queue 2:
|
90
|
+
# markdown [1, 0]
|
91
|
+
# ...
|
92
|
+
|
82
93
|
delta_key = tuple(msg.metadata.delta_path)
|
83
94
|
if delta_key in self._delta_index_map:
|
84
95
|
index = self._delta_index_map[delta_key]
|
85
96
|
old_msg = self._queue[index]
|
86
|
-
|
87
|
-
if
|
88
|
-
|
89
|
-
new_msg.delta.CopyFrom(composed_delta)
|
90
|
-
new_msg.metadata.CopyFrom(msg.metadata)
|
91
|
-
self._queue[index] = new_msg
|
97
|
+
composed_msg = _maybe_compose_delta_msgs(old_msg, msg)
|
98
|
+
if composed_msg is not None:
|
99
|
+
self._queue[index] = composed_msg
|
92
100
|
return
|
93
101
|
|
94
102
|
# No composition occurred. Append this message to the queue, and
|
@@ -163,6 +171,11 @@ class ForwardMsgQueue:
|
|
163
171
|
|
164
172
|
def _is_composable_message(msg: ForwardMsg) -> bool:
|
165
173
|
"""True if the ForwardMsg is potentially composable with other ForwardMsgs."""
|
174
|
+
if msg.HasField("ref_hash"):
|
175
|
+
# reference messages (cached in frontend) are always composable.
|
176
|
+
# Only new_element deltas can be reference messages.
|
177
|
+
return True
|
178
|
+
|
166
179
|
if not msg.HasField("delta"):
|
167
180
|
# Non-delta messages are never composable.
|
168
181
|
return False
|
@@ -174,17 +187,20 @@ def _is_composable_message(msg: ForwardMsg) -> bool:
|
|
174
187
|
return delta_type != "add_rows" and delta_type != "arrow_add_rows"
|
175
188
|
|
176
189
|
|
177
|
-
def
|
178
|
-
|
190
|
+
def _maybe_compose_delta_msgs(
|
191
|
+
old_msg: ForwardMsg, new_msg: ForwardMsg
|
192
|
+
) -> ForwardMsg | None:
|
193
|
+
"""Optimization logic that composes new_msg onto old_msg if possible.
|
179
194
|
|
180
|
-
If the combination takes place, the function returns a new
|
181
|
-
should replace
|
195
|
+
If the combination takes place, the function returns a new ForwardMsg that
|
196
|
+
should replace old_msg in the queue. This basically means that the old_msg
|
197
|
+
is not send to the browser since its considered unnecessary.
|
182
198
|
|
183
|
-
If the
|
184
|
-
In this case, the
|
199
|
+
If the new_msg is incompatible with old_msg, the function returns None.
|
200
|
+
In this case, the new_msg should just be appended to the queue as normal.
|
185
201
|
"""
|
186
|
-
|
187
|
-
if
|
202
|
+
|
203
|
+
if old_msg.HasField("delta") and old_msg.delta.WhichOneof("type") == "add_block":
|
188
204
|
# We never replace add_block deltas, because blocks can have
|
189
205
|
# other dependent deltas later in the queue. For example:
|
190
206
|
#
|
@@ -200,12 +216,14 @@ def _maybe_compose_deltas(old_delta: Delta, new_delta: Delta) -> Delta | None:
|
|
200
216
|
# now just an element, and not a block.
|
201
217
|
return None
|
202
218
|
|
203
|
-
|
204
|
-
|
205
|
-
|
219
|
+
if new_msg.HasField("ref_hash"):
|
220
|
+
# ref_hash messages are always composable.
|
221
|
+
# Only new_element deltas can be reference messages.
|
222
|
+
return new_msg
|
206
223
|
|
207
|
-
|
208
|
-
|
224
|
+
new_delta_type = new_msg.delta.WhichOneof("type")
|
225
|
+
if new_delta_type == "new_element" or new_delta_type == "add_block":
|
226
|
+
return new_msg
|
209
227
|
|
210
228
|
return None
|
211
229
|
|
@@ -21,7 +21,6 @@ from dataclasses import dataclass, field
|
|
21
21
|
from enum import Enum
|
22
22
|
from typing import TYPE_CHECKING, Final, NamedTuple
|
23
23
|
|
24
|
-
from streamlit import config
|
25
24
|
from streamlit.components.lib.local_component_registry import LocalComponentRegistry
|
26
25
|
from streamlit.logger import get_logger
|
27
26
|
from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
|
@@ -33,14 +32,8 @@ from streamlit.runtime.caching import (
|
|
33
32
|
from streamlit.runtime.caching.storage.local_disk_cache_storage import (
|
34
33
|
LocalDiskCacheStorageManager,
|
35
34
|
)
|
36
|
-
from streamlit.runtime.forward_msg_cache import (
|
37
|
-
ForwardMsgCache,
|
38
|
-
create_reference_msg,
|
39
|
-
populate_hash_if_needed,
|
40
|
-
)
|
41
35
|
from streamlit.runtime.media_file_manager import MediaFileManager
|
42
36
|
from streamlit.runtime.memory_session_storage import MemorySessionStorage
|
43
|
-
from streamlit.runtime.runtime_util import is_cacheable_msg
|
44
37
|
from streamlit.runtime.script_data import ScriptData
|
45
38
|
from streamlit.runtime.scriptrunner.script_cache import ScriptCache
|
46
39
|
from streamlit.runtime.session_manager import (
|
@@ -203,7 +196,6 @@ class Runtime:
|
|
203
196
|
|
204
197
|
# Initialize managers
|
205
198
|
self._component_registry = config.component_registry
|
206
|
-
self._message_cache = ForwardMsgCache()
|
207
199
|
self._uploaded_file_mgr = config.uploaded_file_manager
|
208
200
|
self._media_file_mgr = MediaFileManager(storage=config.media_file_storage)
|
209
201
|
self._cache_storage_manager = config.cache_storage_manager
|
@@ -219,7 +211,6 @@ class Runtime:
|
|
219
211
|
self._stats_mgr = StatsManager()
|
220
212
|
self._stats_mgr.register_provider(get_data_cache_stats_provider())
|
221
213
|
self._stats_mgr.register_provider(get_resource_cache_stats_provider())
|
222
|
-
self._stats_mgr.register_provider(self._message_cache)
|
223
214
|
self._stats_mgr.register_provider(self._uploaded_file_mgr)
|
224
215
|
self._stats_mgr.register_provider(SessionStateStatProvider(self._session_mgr))
|
225
216
|
|
@@ -231,10 +222,6 @@ class Runtime:
|
|
231
222
|
def component_registry(self) -> BaseComponentRegistry:
|
232
223
|
return self._component_registry
|
233
224
|
|
234
|
-
@property
|
235
|
-
def message_cache(self) -> ForwardMsgCache:
|
236
|
-
return self._message_cache
|
237
|
-
|
238
225
|
@property
|
239
226
|
def uploaded_file_mgr(self) -> UploadedFileManager:
|
240
227
|
return self._uploaded_file_mgr
|
@@ -449,7 +436,6 @@ class Runtime:
|
|
449
436
|
"""
|
450
437
|
session_info = self._session_mgr.get_session_info(session_id)
|
451
438
|
if session_info:
|
452
|
-
self._message_cache.remove_refs_for_session(session_info.session)
|
453
439
|
self._session_mgr.close_session(session_id)
|
454
440
|
self._on_session_disconnected()
|
455
441
|
|
@@ -474,14 +460,6 @@ class Runtime:
|
|
474
460
|
"""
|
475
461
|
session_info = self._session_mgr.get_active_session_info(session_id)
|
476
462
|
if session_info:
|
477
|
-
# NOTE: Ideally, we'd like to keep ForwardMsgCache refs for a session around
|
478
|
-
# when a session is disconnected (and defer their cleanup until the session
|
479
|
-
# is garbage collected), but this would be difficult to do as the
|
480
|
-
# ForwardMsgCache is not thread safe, and we have no guarantee that the
|
481
|
-
# garbage collector will only run on the eventloop thread. Because of this,
|
482
|
-
# we clean up refs now and accept the risk that we're deleting cache entries
|
483
|
-
# that will be useful once the browser tab reconnects.
|
484
|
-
self._message_cache.remove_refs_for_session(session_info.session)
|
485
463
|
self._session_mgr.disconnect_session(session_id)
|
486
464
|
self._on_session_disconnected()
|
487
465
|
|
@@ -698,7 +676,6 @@ Please report this bug at https://github.com/streamlit/streamlit/issues.
|
|
698
676
|
|
699
677
|
def _send_message(self, session_info: ActiveSessionInfo, msg: ForwardMsg) -> None:
|
700
678
|
"""Send a message to a client.
|
701
|
-
|
702
679
|
If the client is likely to have already cached the message, we may
|
703
680
|
instead send a "reference" message that contains only the hash of the
|
704
681
|
message.
|
@@ -714,51 +691,16 @@ Please report this bug at https://github.com/streamlit/streamlit/issues.
|
|
714
691
|
-----
|
715
692
|
Threading: UNSAFE. Must be called on the eventloop thread.
|
716
693
|
"""
|
717
|
-
msg.metadata.cacheable = is_cacheable_msg(msg)
|
718
|
-
msg_to_send = msg
|
719
|
-
if msg.metadata.cacheable:
|
720
|
-
populate_hash_if_needed(msg)
|
721
|
-
|
722
|
-
if self._message_cache.has_message_reference(
|
723
|
-
msg, session_info.session, session_info.script_run_count
|
724
|
-
):
|
725
|
-
# This session has probably cached this message. Send
|
726
|
-
# a reference instead.
|
727
|
-
_LOGGER.debug("Sending cached message ref (hash=%s)", msg.hash)
|
728
|
-
msg_to_send = create_reference_msg(msg)
|
729
|
-
|
730
|
-
# Cache the message so it can be referenced in the future.
|
731
|
-
# If the message is already cached, this will reset its
|
732
|
-
# age.
|
733
|
-
_LOGGER.debug("Caching message (hash=%s)", msg.hash)
|
734
|
-
self._message_cache.add_message(
|
735
|
-
msg, session_info.session, session_info.script_run_count
|
736
|
-
)
|
737
694
|
|
738
695
|
# If this was a `script_finished` message, we increment the
|
739
|
-
# script_run_count for this session
|
696
|
+
# script_run_count for this session
|
740
697
|
if msg.WhichOneof("type") == "script_finished" and (
|
741
698
|
msg.script_finished == ForwardMsg.FINISHED_SUCCESSFULLY
|
742
|
-
or (
|
743
|
-
config.get_option(
|
744
|
-
"global.includeFragmentRunsInForwardMessageCacheCount"
|
745
|
-
)
|
746
|
-
and msg.script_finished == ForwardMsg.FINISHED_FRAGMENT_RUN_SUCCESSFULLY
|
747
|
-
)
|
748
699
|
):
|
749
|
-
_LOGGER.debug(
|
750
|
-
"Script run finished successfully; "
|
751
|
-
"removing expired entries from MessageCache "
|
752
|
-
"(max_age=%s)",
|
753
|
-
config.get_option("global.maxCachedMessageAge"),
|
754
|
-
)
|
755
700
|
session_info.script_run_count += 1
|
756
|
-
self._message_cache.remove_expired_entries_for_session(
|
757
|
-
session_info.session, session_info.script_run_count
|
758
|
-
)
|
759
701
|
|
760
702
|
# Ship it off!
|
761
|
-
session_info.client.write_forward_msg(
|
703
|
+
session_info.client.write_forward_msg(msg)
|
762
704
|
|
763
705
|
def _enqueued_some_message(self) -> None:
|
764
706
|
"""Callback called by AppSession after the AppSession has enqueued a
|
@@ -16,15 +16,17 @@
|
|
16
16
|
|
17
17
|
from __future__ import annotations
|
18
18
|
|
19
|
-
from
|
19
|
+
from logging import getLogger
|
20
|
+
from typing import TYPE_CHECKING, Any, Final
|
20
21
|
|
21
22
|
from streamlit import config
|
22
23
|
from streamlit.errors import MarkdownFormattedException, StreamlitAPIException
|
23
|
-
from streamlit.runtime.forward_msg_cache import populate_hash_if_needed
|
24
24
|
|
25
25
|
if TYPE_CHECKING:
|
26
26
|
from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
|
27
27
|
|
28
|
+
_LOGGER: Final = getLogger(__name__)
|
29
|
+
|
28
30
|
|
29
31
|
class MessageSizeError(MarkdownFormattedException):
|
30
32
|
"""Exception raised when a websocket message is larger than the configured limit."""
|
@@ -60,29 +62,28 @@ class BadDurationStringError(StreamlitAPIException):
|
|
60
62
|
)
|
61
63
|
|
62
64
|
|
63
|
-
def is_cacheable_msg(msg: ForwardMsg) -> bool:
|
64
|
-
"""True if the given message qualifies for caching."""
|
65
|
-
if msg.WhichOneof("type") in {"ref_hash", "initialize"}:
|
66
|
-
# Some message types never get cached
|
67
|
-
return False
|
68
|
-
return msg.ByteSize() >= int(config.get_option("global.minCachedMessageSize"))
|
69
|
-
|
70
|
-
|
71
65
|
def serialize_forward_msg(msg: ForwardMsg) -> bytes:
|
72
66
|
"""Serialize a ForwardMsg to send to a client.
|
73
67
|
|
74
68
|
If the message is too large, it will be converted to an exception message
|
75
69
|
instead.
|
76
70
|
"""
|
77
|
-
|
71
|
+
|
78
72
|
msg_str = msg.SerializeToString()
|
79
73
|
|
80
74
|
if len(msg_str) > get_max_message_size_bytes():
|
81
|
-
import streamlit.elements.exception as exception
|
82
|
-
|
83
75
|
# Overwrite the offending ForwardMsg.delta with an error to display.
|
84
76
|
# This assumes that the size limit wasn't exceeded due to metadata.
|
85
|
-
|
77
|
+
import streamlit.elements.exception as exception
|
78
|
+
|
79
|
+
msg_size_error = MessageSizeError(msg_str)
|
80
|
+
_LOGGER.warning(
|
81
|
+
"Websocket message size limit exceeded. "
|
82
|
+
f"Showing error to the user: {msg_size_error}"
|
83
|
+
)
|
84
|
+
exception.marshall(msg.delta.new_element.exception, msg_size_error)
|
85
|
+
# Deactivate caching for this error message:
|
86
|
+
msg.metadata.cacheable = False
|
86
87
|
msg_str = msg.SerializeToString()
|
87
88
|
|
88
89
|
return msg_str
|
@@ -134,7 +134,14 @@ def _mpa_v1(main_script_path: str):
|
|
134
134
|
# Read out the my_pages folder and create a page for every script:
|
135
135
|
pages = PAGES_FOLDER.glob("*.py")
|
136
136
|
pages = sorted(
|
137
|
-
[
|
137
|
+
[
|
138
|
+
page
|
139
|
+
for page in pages
|
140
|
+
if page.name.endswith(".py")
|
141
|
+
and not page.name.startswith(".")
|
142
|
+
and not page.name == "__init__.py"
|
143
|
+
],
|
144
|
+
key=page_sort_key,
|
138
145
|
)
|
139
146
|
|
140
147
|
# Use this script as the main page and
|
@@ -514,6 +521,7 @@ class ScriptRunner:
|
|
514
521
|
query_string=rerun_data.query_string,
|
515
522
|
page_script_hash=page_script_hash,
|
516
523
|
fragment_ids_this_run=fragment_ids_this_run,
|
524
|
+
cached_message_hashes=rerun_data.cached_message_hashes,
|
517
525
|
context_info=rerun_data.context_info,
|
518
526
|
)
|
519
527
|
|