streamlit-nightly 1.52.3.dev20260107__tar.gz → 1.52.3.dev20260109__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.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/PKG-INFO +1 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/setup.py +1 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/__init__.py +3 -3
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/types.py +4 -4
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/config.py +14 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/connections/__init__.py +5 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/connections/snowflake_connection.py +203 -57
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/options_selector_utils.py +98 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/multiselect.py +19 -9
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/selectbox.py +12 -24
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/MetricsEvent_pb2.py +4 -4
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/MetricsEvent_pb2.pyi +4 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageProfile_pb2.py +6 -6
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageProfile_pb2.pyi +11 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/connection_factory.py +25 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/metrics_util.py +4 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/runtime.py +3 -0
- streamlit_nightly-1.52.3.dev20260109/streamlit/starlette.py +34 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/index.html +1 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/manifest.json +291 -291
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/ErrorOutline.esm.D2r71uaM.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/ErrorOutline.esm.BcqUpfNe.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/FileDownload.esm.BWEHU45R.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/FileDownload.esm.CtJWBuub.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/FileHelper.bM5nEcHb.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/FileHelper.D0dQPhOs.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/FormClearHelper.DrhgNNta.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/FormClearHelper.Cm3GDSk6.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/InputInstructions.DPiGX0Th.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/InputInstructions.D7Hxdzwv.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/Particles.NjZlN0Ji.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/Particles.vAUDtAR8.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/ProgressBar.BC4DXqMl.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/ProgressBar.Dp2CGRba.js +2 -2
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/StreamlitSyntaxHighlighter.CbRgSaN7.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/StreamlitSyntaxHighlighter.DC0000nJ.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/TableChart.esm.gttTfh7r.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/TableChart.esm.DDVoSKOT.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/Toolbar.DO2JfHk1.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/Toolbar.CuMH-Gqe.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/WidgetLabelHelpIconInline.NVlzvmTZ.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/WidgetLabelHelpIconInline.WAReecol.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/base-input.CmG3KTuv.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/base-input.BX9Jll5o.js +4 -4
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/checkbox.cfHeGdGI.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/checkbox.BzMHUSz1.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/createDownloadLinkElement.B59a5_bn.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/createDownloadLinkElement.CviG5BQx.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/data-grid-overlay-editor.DpTe47v0.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/data-grid-overlay-editor.Dzo9A4l6.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/downloader.CYtKIJ9J.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/downloader.DIDvj0d5.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/embed.Dfyy6eKR.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/embed.C8qeQ38b.js +6 -6
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/es6.x2A9auGg.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/es6.Dpcc-U7U.js +2 -2
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/formatNumber.D8YUVHBi.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/formatNumber.CPvuaBa8.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/iconPosition.C6Qxuo2L.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/iconPosition.y0q-Rqem.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/iframeResizer.contentWindow.Q0Cy4mzM.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/iframeResizer.contentWindow.DblExdXF.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.BICn75_M.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.B-g6lwYa.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.CcpuNeOs.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.B10MmI2m.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.BTcImDDt.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.B6vCS66f.js +7 -7
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.mRYkGVRy.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.B9TG5Ah8.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.CEB-gMZu.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BDb0PRvK.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.WMC0NWRg.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BGufEmCz.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DfXZgqLi.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BItU4jMo.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.Dmaco99Q.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BPMqWDef.js +1 -1
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BTHi5W25.js +1 -0
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.Bs9bS4ZQ.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BVN9cI-k.js +1 -1
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BWOP7HFT.js +1 -0
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.CzMaYu3-.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BXYgO5B8.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.BuCGo7-5.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BZBWLU1C.js +9 -9
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.i5tC1QD-.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.BfZdZpv-.js +2 -2
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.72U0nUaY.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.Bxe7fKbw.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.D2pbLWvp.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.C1ElSZEy.js +1 -1
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.C26ZOVFL.js +1 -0
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DyL5do6X.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.C7lwRBvF.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DDUzbOzY.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.C93QGPyk.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.WW20lmQl.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.CCDejIvL.js +2 -2
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.CcMmNHAq.js +1 -0
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.D42y-GeO.js +1 -0
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.Bmo0a9c3.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.D69ULFWq.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DltYrNjp.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DB4MbQ40.js +3 -3
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.9lrRft8u.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DRFJgBf-.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DzZhu8Ry.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DTK-btqV.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.CCkh_YSD.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DZEQ0G7H.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.Zffuf6-0.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DaU1ayM7.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.BA25ZBoD.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.Dla9XiNe.js +2 -2
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.AF9wK9Wi.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DmQqT9OM.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.5zBrLB5N.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DppScppA.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DrHoCPek.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.Dr8b3Vn6.js +2 -2
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.BSULROGA.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.DvQ7-afx.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DMtSM2QJ.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.F-NmmwfK.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.4evoB7lO.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.MKI8t7l2.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.BtasgGzT.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.RRAKXgBZ.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.9i44yl-A.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.VSsf6tsu.js +2 -2
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.CWEfMTRP.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.aEeM0ekc.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.Cto6hKVz.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.eweE9HKU.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DFrG8naT.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.gr6yGiCL.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.Dm8qt8Me.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.kKkHk9Mc.js +1 -1
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.pMvzHC7z.js +1 -0
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DMgiqc8r.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.pgifwCIr.js +1 -1
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.q83b8_8b.js +1 -0
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.u2AvcQQT.js +1 -0
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.BHzkSOU6.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.w2_VrtVw.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.4DpGzJxM.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.wv1DYVsn.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DemMZEQt.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/index.x4j6nnNb.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/input.C76A8APa.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/input.BoJqOS7a.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/main.CFbvktEv.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/main.B5XmUwmQ.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/memory.BkhqbxJl.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/memory.9izgq54V.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/number-overlay-editor.Dpeh6_Ag.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/number-overlay-editor.PqOGQcLn.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/pandasStylerUtils.D8MDzfFI.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/pandasStylerUtils.DUtF2t3R.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/sandbox.m1TYtBuF.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/sandbox.DgKTHPLO.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/styled-components.yin3sIMA.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/styled-components.D4x8jmOI.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/throttle.Df6MiNTy.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/throttle.DxEHIIp7.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/timepicker.gcx4yeRx.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/timepicker.CDks5DWI.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/toConsumableArray.Ca7RO9Jm.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/toConsumableArray.CvTQRsV-.js +1 -1
- streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/uniqueId.RScLN3St.js +1 -0
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/useBasicWidgetState.CRkPCtR5.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/useBasicWidgetState.D6_b0IqA.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/useIntlLocale.CFOMULNz.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/useIntlLocale.Ctz17A7g.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/useTextInputAutoExpand.9c205rhQ.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/useTextInputAutoExpand.PAFB5o1T.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/useUpdateUiValue.SYJJuEJM.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/useUpdateUiValue.CcTvmGlb.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/useWaveformController.CCs9fdSv.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/useWaveformController.vLi36Ir4.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/withCalculatedWidth.MG9RY_Y-.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/withCalculatedWidth.BtA2jL5-.js +1 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/withFullScreenWrapper.BgGLtZrC.js → streamlit_nightly-1.52.3.dev20260109/streamlit/static/static/js/withFullScreenWrapper.CeeoYBpc.js +1 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/bootstrap.py +105 -10
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/cli.py +21 -4
- streamlit_nightly-1.52.3.dev20260109/streamlit/web/server/app_discovery.py +421 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/server.py +0 -13
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/__init__.py +2 -1
- streamlit_nightly-1.52.3.dev20260109/streamlit/web/server/starlette/starlette_app.py +536 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_routes.py +27 -8
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit_nightly.egg-info/PKG-INFO +1 -1
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit_nightly.egg-info/SOURCES.txt +89 -87
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.7BBVjqsx.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.CgFM5y1b.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.Cszkm2ii.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.DlXiDt-m.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.HTZptmDX.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.mUwcAQrC.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.up8HPR4v.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/index.xQYe72hk.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/static/static/js/uniqueId.Bf2Hsb60.js +0 -1
- streamlit_nightly-1.52.3.dev20260107/streamlit/web/server/starlette/starlette_app.py +0 -213
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/MANIFEST.in +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/bin/streamlit.cmd +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/setup.cfg +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/__main__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/auth_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/cli_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/column_config.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/commands/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/commands/echo.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/commands/execution_control.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/commands/experimental_query_params.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/commands/logo.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/commands/navigation.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/commands/page_config.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/lib/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/lib/local_component_registry.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/types/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/types/base_component_registry.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/types/base_custom_component.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v1/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v1/component_arrow.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v1/component_registry.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v1/components.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v1/custom_component.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/bidi_component/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/bidi_component/constants.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/bidi_component/main.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/bidi_component/serialization.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/bidi_component/state.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/component_definition_resolver.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/component_file_watcher.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/component_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/component_manifest_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/component_path_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/component_registry.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/get_bidi_component_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/manifest_scanner.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/components/v2/presentation.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/config_option.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/config_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/connections/base_connection.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/connections/snowpark_connection.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/connections/sql_connection.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/connections/util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/cursor.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/dataframe_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/delta_generator.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/delta_generator_singletons.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/deprecation_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/development.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/alert.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/arrow.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/balloons.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/bokeh_chart.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/code.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/deck_gl_json_chart.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/dialog_decorator.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/doc_string.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/empty.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/exception.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/form.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/graphviz_chart.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/heading.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/html.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/iframe.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/image.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/json.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/layouts.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/built_in_chart_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/color_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/column_config_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/column_types.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/dialog.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/dicttools.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/file_uploader_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/form_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/image_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/js_number.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/layout_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/mutable_status_container.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/pandas_styler_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/policies.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/shortcut_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/streamlit_plotly_theme.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/subtitle_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/lib/utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/map.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/markdown.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/media.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/metric.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/pdf.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/plotly_chart.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/progress.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/pyplot.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/snow.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/space.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/spinner.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/text.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/toast.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/vega_charts.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/audio_input.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/button.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/button_group.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/camera_input.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/chat.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/checkbox.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/color_picker.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/data_editor.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/file_uploader.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/number_input.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/radio.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/select_slider.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/slider.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/text_widgets.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/widgets/time_widgets.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/elements/write.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/emojis.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/env_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/error_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/errors.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/external/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/external/langchain/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/external/langchain/streamlit_callback_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/file_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/git_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/animation_demo.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/dataframe_demo.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/hello.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/mapping_demo.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/plotting_demo.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/streamlit_app.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/hello/utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/logger.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/material_icon_names.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/navigation/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/navigation/page.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/net_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/platform.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Alert_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Alert_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AppPage_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AppPage_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ArrowData_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ArrowData_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ArrowNamedDataSet_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ArrowNamedDataSet_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ArrowVegaLiteChart_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ArrowVegaLiteChart_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Arrow_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Arrow_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AudioInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AudioInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Audio_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Audio_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AuthRedirect_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AuthRedirect_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AutoRerun_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/AutoRerun_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/BackMsg_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/BackMsg_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Balloons_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Balloons_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/BidiComponent_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/BidiComponent_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Block_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Block_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/BokehChart_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/BokehChart_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ButtonGroup_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ButtonGroup_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ButtonLikeIconPosition_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ButtonLikeIconPosition_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Button_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Button_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/CameraInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/CameraInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ChatInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ChatInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Checkbox_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Checkbox_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ClientState_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ClientState_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Code_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Code_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ColorPicker_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ColorPicker_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Common_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Common_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Components_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Components_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DataFrame_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DataFrame_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DateInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DateInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DateTimeInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DateTimeInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DeckGlJsonChart_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DeckGlJsonChart_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Delta_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Delta_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DocString_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DocString_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DownloadButton_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/DownloadButton_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Element_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Element_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Empty_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Empty_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Exception_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Exception_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Favicon_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Favicon_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/FileUploader_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/FileUploader_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ForwardMsg_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ForwardMsg_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/GapSize_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/GapSize_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/GitInfo_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/GitInfo_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/GraphVizChart_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/GraphVizChart_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Heading_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Heading_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/HeightConfig_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/HeightConfig_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Html_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Html_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/IFrame_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/IFrame_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Image_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Image_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Json_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Json_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/LabelVisibilityMessage_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/LabelVisibilityMessage_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/LinkButton_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/LinkButton_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Logo_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Logo_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Markdown_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Markdown_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Metric_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Metric_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/MultiSelect_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/MultiSelect_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/NamedDataSet_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/NamedDataSet_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Navigation_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Navigation_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/NewSession_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/NewSession_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/NumberInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/NumberInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageConfig_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageConfig_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageInfo_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageInfo_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageLink_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageLink_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageNotFound_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PageNotFound_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PagesChanged_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PagesChanged_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ParentMessage_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/ParentMessage_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PlotlyChart_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/PlotlyChart_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Progress_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Progress_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Radio_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Radio_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/RootContainer_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/RootContainer_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Selectbox_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Selectbox_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/SessionEvent_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/SessionEvent_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/SessionStatus_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/SessionStatus_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Skeleton_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Skeleton_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Slider_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Slider_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Snow_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Snow_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Space_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Space_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Spinner_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Spinner_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TextAlignmentConfig_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TextAlignmentConfig_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TextArea_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TextArea_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TextInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TextInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Text_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Text_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TimeInput_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/TimeInput_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Toast_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Toast_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Transient_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Transient_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/VegaLiteChart_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/VegaLiteChart_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Video_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/Video_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/WidgetStates_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/WidgetStates_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/WidthConfig_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/WidthConfig_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/openmetrics_data_model_pb2.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/proto/openmetrics_data_model_pb2.pyi +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/py.typed +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/app_session.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/cache_data_api.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/cache_errors.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/cache_resource_api.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/cache_type.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/cache_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/cached_message_replay.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/hashing.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/legacy_cache_api.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/storage/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/storage/cache_storage_protocol.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/storage/dummy_cache_storage.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/storage/in_memory_cache_storage_wrapper.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/storage/local_disk_cache_storage.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/caching/ttl_cleanup_cache.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/context.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/context_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/credentials.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/download_data_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/forward_msg_cache.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/forward_msg_queue.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/fragment.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/media_file_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/media_file_storage.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/memory_media_file_storage.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/memory_session_storage.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/memory_uploaded_file_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/pages_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/runtime_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/script_data.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner/exec_code.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner/magic.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner/magic_funcs.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner/script_cache.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner/script_runner.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner_utils/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner_utils/exceptions.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner_utils/script_requests.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/scriptrunner_utils/script_run_context.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/secrets.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/session_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/common.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/presentation.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/query_params.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/query_params_proxy.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/safe_session_state.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/session_state.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/session_state_proxy.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/state/widgets.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/stats.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/theme_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/uploaded_file_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/runtime/websocket_session_manager.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/source_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/favicon.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/css/index.BUP6fTcR.css +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/css/index.BuwrT-ty.css +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/css/index.DgR7E2CV.css +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/IFrameUtil.DefezniK.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/UploadFileInfo.Dr-zDST7.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/_arrayIncludes.B19Iyn2B.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/_baseIndexOf.BTknn6Gb.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/formatMoment.C6Hwn6X5.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/index.8HslT92O.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/index.BBTKOM0z.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/index.bsVAaBS1.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/inputUtils.CptNuJwn.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/moment.C7qA8nIE.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/numbro.B9_PXfzp.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/record.DytFsBUt.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/sprintf.DpPCfzXw.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/threshold.CUNQbqMA.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/timer.BZio6gjG.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/urls.BwSlolu9.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/value.DaKxGC7O.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/js/wavesurfer.esm.D1Sty35j.js +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_AMS-Regular.BQhdFMY1.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_AMS-Regular.DMm9YOAa.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_AMS-Regular.DRggAlZN.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.BEiXGLvX.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.CTRA-rTL.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.wX97UBjC.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Fraktur-Bold.BdnERNNW.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Fraktur-Bold.BsDP51OF.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Fraktur-Regular.CB_wures.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Fraktur-Regular.Dxdc4cR9.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Bold.Cx986IdX.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Bold.Jm3AIy58.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Bold.waoOVXN0.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-BoldItalic.DzxPMmG6.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-BoldItalic.SpSLRI95.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Italic.3WenGoN9.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Italic.BMLOBm91.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Italic.NWA7e6Wa.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Regular.B22Nviop.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Regular.Dr94JaBh.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Main-Regular.ypZvNtVU.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Math-BoldItalic.B3XSjfu4.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Math-BoldItalic.iY-2wyZ7.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Math-Italic.DA0__PXp.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Math-Italic.flOr_0UB.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Math-Italic.t53AETM-.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Bold.CFMepnvq.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Bold.DbIhKOiC.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Italic.DN2j7dab.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Regular.BNo7hRIc.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Regular.CS6fqUqJ.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Script-Regular.C5JkGWo-.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Script-Regular.D3wIWfF6.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Script-Regular.D5yQViql.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size1-Regular.C195tn64.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size1-Regular.Dbsnue_I.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size1-Regular.mCD8mA8B.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size2-Regular.B7gKUWhC.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size2-Regular.Dy4dx90m.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size2-Regular.oD1tc_U0.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size3-Regular.CTq5MqoE.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size3-Regular.DgpXs0kz.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size4-Regular.BF-4gkZK.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size4-Regular.DWFBv043.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Size4-Regular.Dl5lxZxV.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Typewriter-Regular.C0xS9mPB.woff +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/MaterialSymbols-Rounded.C7IFxh57.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/SourceCodeVF-Italic.ttf.Ba1oaZG1.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/SourceCodeVF-Upright.ttf.BjWn63N-.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/SourceSansVF-Italic.ttf.Bt9VkdQ3.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/SourceSansVF-Upright.ttf.BsWL4Kly.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/SourceSerifVariable-Italic.ttf.CVdzAtxO.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/SourceSerifVariable-Roman.ttf.mdpVL9bi.woff2 +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/balloon-0.Czj7AKwE.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/balloon-1.CNvFFrND.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/balloon-2.DTvC6B1t.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/balloon-3.CgSk4tbL.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/balloon-4.mbtFrzxf.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/balloon-5.CSwkUfRA.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/fireworks.B4d-_KUe.gif +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/flake-0.DgWaVvm5.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/flake-1.B2r5AHMK.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/flake-2.BnWSExPC.png +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/static/static/media/snowflake.JU2jBHL8.svg +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/string_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/temporary_directory.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/testing/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/testing/v1/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/testing/v1/app_test.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/testing/v1/element_tree.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/testing/v1/local_script_runner.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/testing/v1/util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/time_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/type_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/url_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/user_info.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/vendor/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/vendor/pympler/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/vendor/pympler/asizeof.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/version.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/watcher/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/watcher/event_based_path_watcher.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/watcher/folder_black_list.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/watcher/local_sources_watcher.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/watcher/path_watcher.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/watcher/polling_path_watcher.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/watcher/util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/cache_storage_manager_config.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/__init__.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/app_static_file_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/authlib_tornado_integration.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/bidi_component_request_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/browser_websocket_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/component_file_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/component_request_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/media_file_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/oauth_authlib_routes.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/oidc_mixin.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/routes.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/server_util.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_app_utils.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_auth_routes.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_gzip_middleware.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_server.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_server_config.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_static_routes.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/starlette/starlette_websocket.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/stats_request_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/upload_file_request_handler.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/web/server/websocket_headers.py +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit_nightly.egg-info/dependency_links.txt +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit_nightly.egg-info/entry_points.txt +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit_nightly.egg-info/not-zip-safe +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit_nightly.egg-info/requires.txt +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit_nightly.egg-info/top_level.txt +0 -0
- {streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/tests/testutil.py +0 -0
|
@@ -23,7 +23,7 @@ from setuptools.command.install import install
|
|
|
23
23
|
|
|
24
24
|
THIS_DIRECTORY = Path(__file__).parent
|
|
25
25
|
|
|
26
|
-
VERSION = "1.52.3.
|
|
26
|
+
VERSION = "1.52.3.dev20260109" # PEP-440
|
|
27
27
|
|
|
28
28
|
# IMPORTANT: We should try very hard *not* to add dependencies to Streamlit.
|
|
29
29
|
# And if you do add one, make the required version as general as possible:
|
|
@@ -28,7 +28,7 @@ from streamlit.components.v2.get_bidi_component_manager import (
|
|
|
28
28
|
from streamlit.errors import StreamlitAPIException
|
|
29
29
|
|
|
30
30
|
if TYPE_CHECKING:
|
|
31
|
-
from streamlit.components.v2.types import
|
|
31
|
+
from streamlit.components.v2.types import ComponentRenderer
|
|
32
32
|
|
|
33
33
|
if TYPE_CHECKING:
|
|
34
34
|
from collections.abc import Callable
|
|
@@ -211,7 +211,7 @@ def component(
|
|
|
211
211
|
css: str | None = None,
|
|
212
212
|
js: str | None = None,
|
|
213
213
|
isolate_styles: bool = True,
|
|
214
|
-
) ->
|
|
214
|
+
) -> ComponentRenderer:
|
|
215
215
|
'''Register an ``st.components.v2`` component and return a callable to mount it.
|
|
216
216
|
|
|
217
217
|
Components may provide any combination of HTML, CSS, and JavaScript. If none
|
|
@@ -287,7 +287,7 @@ def component(
|
|
|
287
287
|
|
|
288
288
|
Returns
|
|
289
289
|
-------
|
|
290
|
-
|
|
290
|
+
ComponentRenderer
|
|
291
291
|
The component's mounting command.
|
|
292
292
|
|
|
293
293
|
This callable accepts the component parameters like ``key`` and
|
|
@@ -45,7 +45,7 @@ BidiComponentDefaults = dict[str, Any] | None
|
|
|
45
45
|
ComponentIsolateStyles = bool
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
class
|
|
48
|
+
class ComponentRenderer(Protocol):
|
|
49
49
|
'''Signature of the mounting command returned by ``st.components.v2.component``.
|
|
50
50
|
|
|
51
51
|
This callable mounts a bidirectional component in a Streamlit app and
|
|
@@ -69,8 +69,8 @@ class BidiComponentCallable(Protocol):
|
|
|
69
69
|
.. note::
|
|
70
70
|
If you want to access this key in your component's frontend, you
|
|
71
71
|
must pass it explicitly within the ``data`` parameter. The ``key``
|
|
72
|
-
parameter in ``
|
|
73
|
-
``key`` property in ``
|
|
72
|
+
parameter in ``ComponentRenderer`` is not the same as the
|
|
73
|
+
``key`` property in ``FrontendRendererArgs`` in the component's frontend
|
|
74
74
|
code.
|
|
75
75
|
|
|
76
76
|
The frontend key is automatically generated to be unique among all
|
|
@@ -309,9 +309,9 @@ class BidiComponentCallable(Protocol):
|
|
|
309
309
|
|
|
310
310
|
|
|
311
311
|
__all__ = [
|
|
312
|
-
"BidiComponentCallable",
|
|
313
312
|
"BidiComponentData",
|
|
314
313
|
"BidiComponentDefaults",
|
|
315
314
|
"BidiComponentKey",
|
|
316
315
|
"ComponentIsolateStyles",
|
|
316
|
+
"ComponentRenderer",
|
|
317
317
|
]
|
{streamlit_nightly-1.52.3.dev20260107 → streamlit_nightly-1.52.3.dev20260109}/streamlit/config.py
RENAMED
|
@@ -62,6 +62,20 @@ _config_options: dict[str, ConfigOption] | None = None
|
|
|
62
62
|
# resolve config and secret files relative to the main script:
|
|
63
63
|
_main_script_path: str | None = None
|
|
64
64
|
|
|
65
|
+
# Stores the server mode for metrics tracking.
|
|
66
|
+
# Possible values:
|
|
67
|
+
# - "tornado": Traditional Tornado server
|
|
68
|
+
# - "starlette-managed": Starlette server via server.useStarlette config
|
|
69
|
+
# - "starlette-app": st.App started via streamlit run
|
|
70
|
+
# - "asgi-server": st.App with external ASGI server (uvicorn, gunicorn, etc.)
|
|
71
|
+
# - "asgi-mounted": st.App mounted on another ASGI framework (FastAPI, Starlette)
|
|
72
|
+
_server_mode: (
|
|
73
|
+
Literal[
|
|
74
|
+
"tornado", "starlette-managed", "starlette-app", "asgi-server", "asgi-mounted"
|
|
75
|
+
]
|
|
76
|
+
| None
|
|
77
|
+
) = None
|
|
78
|
+
|
|
65
79
|
# Indicates that a config option was defined by the user.
|
|
66
80
|
_USER_DEFINED: Final = "<user defined>"
|
|
67
81
|
|
|
@@ -13,7 +13,10 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
from streamlit.connections.base_connection import BaseConnection
|
|
16
|
-
from streamlit.connections.snowflake_connection import
|
|
16
|
+
from streamlit.connections.snowflake_connection import (
|
|
17
|
+
SnowflakeCallersRightsConnection,
|
|
18
|
+
SnowflakeConnection,
|
|
19
|
+
)
|
|
17
20
|
from streamlit.connections.snowpark_connection import SnowparkConnection
|
|
18
21
|
from streamlit.connections.sql_connection import SQLConnection
|
|
19
22
|
|
|
@@ -23,6 +26,7 @@ __all__ = [
|
|
|
23
26
|
"BaseConnection",
|
|
24
27
|
"ExperimentalBaseConnection",
|
|
25
28
|
"SQLConnection",
|
|
29
|
+
"SnowflakeCallersRightsConnection",
|
|
26
30
|
"SnowflakeConnection",
|
|
27
31
|
"SnowparkConnection",
|
|
28
32
|
]
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
|
|
21
21
|
from __future__ import annotations
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
import os
|
|
24
|
+
from typing import TYPE_CHECKING, Any, Final, Literal, cast
|
|
24
25
|
|
|
25
26
|
from streamlit import logger
|
|
26
27
|
from streamlit.connections import BaseConnection
|
|
@@ -45,11 +46,18 @@ if TYPE_CHECKING:
|
|
|
45
46
|
# (see docs: https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-api#id6)
|
|
46
47
|
SQLSTATE_CONNECTION_WAS_NOT_ESTABLISHED: Final = "08001"
|
|
47
48
|
|
|
49
|
+
# The location on disk where Snowpark Container Services will mount service connection tokens.
|
|
50
|
+
SNOWPARK_CONNECTION_TOKEN_FILE = "/snowflake/session/token" # noqa: S105 (not a password)
|
|
48
51
|
|
|
49
|
-
|
|
52
|
+
# The header where Snowpark Container Services will put per-user connection tokens.
|
|
53
|
+
SNOWPARK_USER_TOKEN_HEADER_NAME = "Sf-Context-Current-User-Token" # noqa: S105 (not a password)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class BaseSnowflakeConnection(BaseConnection["InternalSnowflakeConnection"]):
|
|
50
57
|
"""A connection to Snowflake using the Snowflake Connector for Python.
|
|
51
58
|
|
|
52
|
-
|
|
59
|
+
For standard connections, create an instance of this using
|
|
60
|
+
``st.connection("snowflake")`` or
|
|
53
61
|
``st.connection("<name>", type="snowflake")``. Connection parameters for a
|
|
54
62
|
SnowflakeConnection can be specified using ``secrets.toml`` and/or
|
|
55
63
|
``**kwargs``. Connection parameters are passed to
|
|
@@ -61,7 +69,14 @@ class SnowflakeConnection(BaseConnection["InternalSnowflakeConnection"]):
|
|
|
61
69
|
case. Use ``secrets.toml`` and ``**kwargs`` to configure your connection
|
|
62
70
|
for local development.
|
|
63
71
|
|
|
64
|
-
|
|
72
|
+
When an app is running in Snowpark Container Services and has caller's rights
|
|
73
|
+
enabled, ``st.connection("snowflake-callers-rights")`` connects automatically
|
|
74
|
+
using the current user's identity tokens. This will be a session-scoped connection
|
|
75
|
+
to ensure that the identity stays tied to the active user. Unlike with
|
|
76
|
+
``"snowflake"`` connections, it will use the Snowpark Container Services connection
|
|
77
|
+
settings even when other ``**kwargs`` are provided.
|
|
78
|
+
|
|
79
|
+
BaseSnowflakeConnection includes several convenience methods. For example, you
|
|
65
80
|
can directly execute a SQL query with ``.query()`` or access the underlying
|
|
66
81
|
Snowflake Connector object with ``.raw_connection``.
|
|
67
82
|
|
|
@@ -85,6 +100,12 @@ class SnowflakeConnection(BaseConnection["InternalSnowflakeConnection"]):
|
|
|
85
100
|
in SQL queries. For more information, see `Account identifiers
|
|
86
101
|
<https://docs.snowflake.com/en/user-guide/admin-account-identifier>`_.
|
|
87
102
|
|
|
103
|
+
.. Important::
|
|
104
|
+
Caller's rights connections rely on credentials provided when a user first
|
|
105
|
+
connects to a Streamlit app. These credentials are only valid for a short period
|
|
106
|
+
of time - so caller's rights connections must be created at the top of an app
|
|
107
|
+
or else the connection may fail.
|
|
108
|
+
|
|
88
109
|
Examples
|
|
89
110
|
--------
|
|
90
111
|
**Example 1: Configuration with Streamlit secrets**
|
|
@@ -222,64 +243,23 @@ class SnowflakeConnection(BaseConnection["InternalSnowflakeConnection"]):
|
|
|
222
243
|
>>> conn = st.connection("snowflake")
|
|
223
244
|
>>> df = conn.query("SELECT * FROM my_table")
|
|
224
245
|
|
|
225
|
-
|
|
246
|
+
**Example 7: Caller's rights connection when running in Snowpark Container Services**
|
|
226
247
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
248
|
+
This connection will work for any Streamlit-in-Snowflake app using a container
|
|
249
|
+
runtime, as well as any self-managed caller's rights Service in Snowpark Container
|
|
250
|
+
Services that is hosting Streamlit.
|
|
230
251
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
from snowflake.snowpark.context import ( # type:ignore[import] # isort: skip
|
|
235
|
-
get_active_session,
|
|
236
|
-
)
|
|
237
|
-
|
|
238
|
-
session = get_active_session()
|
|
252
|
+
This will use the Snowpark-provided account, host, database, and schema to connect.
|
|
253
|
+
Additionally, it will set ``client_session_keep_alive`` to ``True``. These values
|
|
254
|
+
may be overridden with ``**kwargs``.
|
|
239
255
|
|
|
240
|
-
|
|
241
|
-
return session.connection
|
|
242
|
-
# session.connection is only a valid attr in more recent versions of
|
|
243
|
-
# snowflake-connector-python, so we fall back to grabbing
|
|
244
|
-
# session._conn._conn if `.connection` is unavailable.
|
|
245
|
-
return session._conn._conn
|
|
246
|
-
|
|
247
|
-
# We require qmark-style parameters everywhere for consistency across different
|
|
248
|
-
# environments where SnowflakeConnections may be used.
|
|
249
|
-
snowflake.connector.paramstyle = "qmark"
|
|
250
|
-
|
|
251
|
-
# Otherwise, attempt to create a new connection from whatever credentials we
|
|
252
|
-
# have available.
|
|
253
|
-
st_secrets = self._secrets.to_dict()
|
|
254
|
-
try:
|
|
255
|
-
if len(st_secrets):
|
|
256
|
-
_LOGGER.info(
|
|
257
|
-
"Connect to Snowflake using the Streamlit secret defined under "
|
|
258
|
-
"[connections.snowflake]."
|
|
259
|
-
)
|
|
260
|
-
conn_kwargs = {**st_secrets, **kwargs}
|
|
261
|
-
return snowflake.connector.connect(**conn_kwargs)
|
|
256
|
+
Your app code:
|
|
262
257
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
"Connect to Snowflake using the default configuration as defined "
|
|
267
|
-
"in https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-connect#setting-a-default-connection"
|
|
268
|
-
)
|
|
269
|
-
return snowflake.connector.connect()
|
|
258
|
+
>>> import streamlit as st
|
|
259
|
+
>>> conn = st.connection("snowflake-callers-rights")
|
|
260
|
+
>>> df = conn.query("SELECT * FROM my_table")
|
|
270
261
|
|
|
271
|
-
|
|
272
|
-
except SnowflakeError:
|
|
273
|
-
if not len(st_secrets) and not kwargs:
|
|
274
|
-
raise StreamlitAPIException(
|
|
275
|
-
"Missing Snowflake connection configuration. "
|
|
276
|
-
"Did you forget to set this in `secrets.toml`, a Snowflake configuration file, "
|
|
277
|
-
"or as kwargs to `st.connection`? "
|
|
278
|
-
"See the [SnowflakeConnection configuration documentation]"
|
|
279
|
-
"(https://docs.streamlit.io/st.connections.snowflakeconnection-configuration) "
|
|
280
|
-
"for more details and examples."
|
|
281
|
-
)
|
|
282
|
-
raise
|
|
262
|
+
"""
|
|
283
263
|
|
|
284
264
|
def query(
|
|
285
265
|
self,
|
|
@@ -563,3 +543,169 @@ class SnowflakeConnection(BaseConnection["InternalSnowflakeConnection"]):
|
|
|
563
543
|
return cast(
|
|
564
544
|
"Session", Session.builder.configs({"connection": self._instance}).create()
|
|
565
545
|
)
|
|
546
|
+
|
|
547
|
+
def close(self) -> None:
|
|
548
|
+
"""Closes the underlying Snowflake connection."""
|
|
549
|
+
if self._raw_instance is not None:
|
|
550
|
+
self._raw_instance.close()
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
class SnowflakeConnection(BaseSnowflakeConnection):
|
|
554
|
+
"""A connection to Snowflake using the Snowflake Connector for Python.
|
|
555
|
+
|
|
556
|
+
See ``BaseSnowflakeConnection`` for complete docs.
|
|
557
|
+
"""
|
|
558
|
+
|
|
559
|
+
def _connect(self, **kwargs: Any) -> InternalSnowflakeConnection:
|
|
560
|
+
import snowflake.connector # type:ignore[import]
|
|
561
|
+
from snowflake.connector import Error as SnowflakeError # type:ignore[import]
|
|
562
|
+
|
|
563
|
+
# If we're running in SiS-on-warehouses, just call get_active_session() and
|
|
564
|
+
# retrieve the lower-level connection from it.
|
|
565
|
+
if running_in_sis():
|
|
566
|
+
from snowflake.snowpark.context import ( # type:ignore[import] # isort: skip
|
|
567
|
+
get_active_session,
|
|
568
|
+
)
|
|
569
|
+
|
|
570
|
+
session = get_active_session()
|
|
571
|
+
|
|
572
|
+
if hasattr(session, "connection"):
|
|
573
|
+
return session.connection
|
|
574
|
+
# session.connection is only a valid attr in more recent versions of
|
|
575
|
+
# snowflake-connector-python, so we fall back to grabbing
|
|
576
|
+
# session._conn._conn if `.connection` is unavailable.
|
|
577
|
+
return session._conn._conn
|
|
578
|
+
|
|
579
|
+
# We require qmark-style parameters everywhere for consistency across different
|
|
580
|
+
# environments where SnowflakeConnections may be used.
|
|
581
|
+
snowflake.connector.paramstyle = "qmark"
|
|
582
|
+
|
|
583
|
+
# Otherwise, attempt to create a new connection from whatever credentials we
|
|
584
|
+
# have available.
|
|
585
|
+
st_secrets = self._secrets.to_dict()
|
|
586
|
+
try:
|
|
587
|
+
if len(st_secrets):
|
|
588
|
+
_LOGGER.info(
|
|
589
|
+
"Connect to Snowflake using the Streamlit secret defined under "
|
|
590
|
+
"[connections.snowflake]."
|
|
591
|
+
)
|
|
592
|
+
conn_kwargs = {**st_secrets, **kwargs}
|
|
593
|
+
return snowflake.connector.connect(**conn_kwargs)
|
|
594
|
+
|
|
595
|
+
# Use the default configuration as defined in https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-connect#setting-a-default-connection
|
|
596
|
+
if self._connection_name == "snowflake":
|
|
597
|
+
_LOGGER.info(
|
|
598
|
+
"Connect to Snowflake using the default configuration as defined "
|
|
599
|
+
"in https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-connect#setting-a-default-connection"
|
|
600
|
+
)
|
|
601
|
+
return snowflake.connector.connect()
|
|
602
|
+
|
|
603
|
+
return snowflake.connector.connect(**kwargs)
|
|
604
|
+
except SnowflakeError:
|
|
605
|
+
if not len(st_secrets) and not kwargs:
|
|
606
|
+
raise StreamlitAPIException(
|
|
607
|
+
"Missing Snowflake connection configuration. "
|
|
608
|
+
"Did you forget to set this in `secrets.toml`, a Snowflake configuration file, "
|
|
609
|
+
"or as kwargs to `st.connection`? "
|
|
610
|
+
"See the [SnowflakeConnection configuration documentation]"
|
|
611
|
+
"(https://docs.streamlit.io/st.connections.snowflakeconnection-configuration) "
|
|
612
|
+
"for more details and examples."
|
|
613
|
+
)
|
|
614
|
+
raise
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
class SnowflakeCallersRightsConnection(SnowflakeConnection):
|
|
618
|
+
"""A caller's rights connection to Snowflake using the Snowflake Connector for Python.
|
|
619
|
+
|
|
620
|
+
This will only work when running on Snowpark Container Services or another
|
|
621
|
+
compatible platform.
|
|
622
|
+
|
|
623
|
+
See ``BaseSnowflakeConnection`` for complete docs.
|
|
624
|
+
"""
|
|
625
|
+
|
|
626
|
+
@classmethod
|
|
627
|
+
def scope(cls) -> Literal["session"]:
|
|
628
|
+
"""Returns ``"session"``.
|
|
629
|
+
|
|
630
|
+
Caller's rights Snowflake connections rely on per-session connection tokens and
|
|
631
|
+
therefore must be session-scoped.
|
|
632
|
+
"""
|
|
633
|
+
return "session"
|
|
634
|
+
|
|
635
|
+
@classmethod
|
|
636
|
+
def _read_token_file(cls) -> str:
|
|
637
|
+
"""Returns the contents of the Snowpark token file on disk."""
|
|
638
|
+
with open(SNOWPARK_CONNECTION_TOKEN_FILE) as token_file:
|
|
639
|
+
return token_file.read()
|
|
640
|
+
|
|
641
|
+
@classmethod
|
|
642
|
+
def _get_connection_params(cls) -> dict[str, str | bool]:
|
|
643
|
+
"""Returns caller's rights connection parameters for the current session.
|
|
644
|
+
|
|
645
|
+
Raises
|
|
646
|
+
------
|
|
647
|
+
StreamlitAPIException: if any Snowpark environment variables or connection
|
|
648
|
+
tokens are missing; or if this is called outside of a session context.
|
|
649
|
+
"""
|
|
650
|
+
# Local import needed to avoid cycles.
|
|
651
|
+
from streamlit import context as st_context
|
|
652
|
+
|
|
653
|
+
# See Snowflake docs:
|
|
654
|
+
# https://docs.snowflake.com/en/developer-guide/snowpark-container-services/additional-considerations-services-jobs#configuring-caller-s-rights-for-your-service
|
|
655
|
+
|
|
656
|
+
# Base parameters, common to all connections.
|
|
657
|
+
params: dict[str, str | bool] = {
|
|
658
|
+
"authenticator": "oauth",
|
|
659
|
+
# OCSP checks do not work in Snowflake containers.
|
|
660
|
+
"ocsp_fail_open": True,
|
|
661
|
+
# We want to keep this alive, as the user token will expire fairly quickly
|
|
662
|
+
# - so we can't create a new session on expiration.
|
|
663
|
+
"client_session_keep_alive": True,
|
|
664
|
+
}
|
|
665
|
+
for param_name, env_var_name in (
|
|
666
|
+
("account", "SNOWFLAKE_ACCOUNT"),
|
|
667
|
+
("host", "SNOWFLAKE_HOST"),
|
|
668
|
+
("database", "SNOWFLAKE_DATABASE"),
|
|
669
|
+
("schema", "SNOWFLAKE_SCHEMA"),
|
|
670
|
+
):
|
|
671
|
+
value = os.getenv(env_var_name)
|
|
672
|
+
if value is None:
|
|
673
|
+
raise StreamlitAPIException(
|
|
674
|
+
f"Environment variable `{env_var_name}` not found. Is this app "
|
|
675
|
+
"running in a Snowflake container environment?"
|
|
676
|
+
)
|
|
677
|
+
params[param_name] = value
|
|
678
|
+
|
|
679
|
+
# Validate the token file exists, and read it.
|
|
680
|
+
if not os.path.exists(SNOWPARK_CONNECTION_TOKEN_FILE):
|
|
681
|
+
raise StreamlitAPIException(
|
|
682
|
+
f"Token file `{SNOWPARK_CONNECTION_TOKEN_FILE}` not found. Is this app "
|
|
683
|
+
"running in a Snowflake container environment?"
|
|
684
|
+
)
|
|
685
|
+
login_token = cls._read_token_file()
|
|
686
|
+
|
|
687
|
+
# Validate the token header exists, and read it.
|
|
688
|
+
if SNOWPARK_USER_TOKEN_HEADER_NAME not in st_context.headers:
|
|
689
|
+
raise StreamlitAPIException(
|
|
690
|
+
"Token header not found. Is this app running with caller's "
|
|
691
|
+
"rights enabled, and is this connection being created in an app "
|
|
692
|
+
"execution thread?"
|
|
693
|
+
)
|
|
694
|
+
user_token = st_context.headers[SNOWPARK_USER_TOKEN_HEADER_NAME]
|
|
695
|
+
|
|
696
|
+
# Build the actual caller's rights token.
|
|
697
|
+
params["token"] = f"{login_token}.{user_token}"
|
|
698
|
+
|
|
699
|
+
return params
|
|
700
|
+
|
|
701
|
+
def _connect(self, **kwargs: Any) -> InternalSnowflakeConnection:
|
|
702
|
+
import snowflake.connector # type:ignore[import]
|
|
703
|
+
|
|
704
|
+
# We require qmark-style parameters everywhere for consistency across different
|
|
705
|
+
# environments where SnowflakeConnections may be used.
|
|
706
|
+
snowflake.connector.paramstyle = "qmark"
|
|
707
|
+
|
|
708
|
+
params = self._get_connection_params()
|
|
709
|
+
|
|
710
|
+
# Connect with the params we generated, overriding with user-specified params.
|
|
711
|
+
return snowflake.connector.connect(**{**params, **kwargs})
|
|
@@ -20,6 +20,7 @@ from typing import TYPE_CHECKING, Any, Final, TypeVar, overload
|
|
|
20
20
|
from streamlit import config, logger
|
|
21
21
|
from streamlit.dataframe_util import OptionSequence, convert_anything_to_list
|
|
22
22
|
from streamlit.errors import StreamlitAPIException
|
|
23
|
+
from streamlit.runtime.state import get_session_state
|
|
23
24
|
from streamlit.runtime.state.common import RegisterWidgetResult
|
|
24
25
|
from streamlit.type_util import (
|
|
25
26
|
check_python_comparable,
|
|
@@ -282,3 +283,100 @@ def create_mappings(
|
|
|
282
283
|
formatted_options,
|
|
283
284
|
formatted_option_to_option_mapping,
|
|
284
285
|
)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
def validate_and_sync_value_with_options(
|
|
289
|
+
current_value: T | None,
|
|
290
|
+
opt: Sequence[T],
|
|
291
|
+
default_index: int | None,
|
|
292
|
+
key: str | int | None,
|
|
293
|
+
) -> tuple[T | None, bool]:
|
|
294
|
+
"""Validate current value against options, resetting session state if invalid.
|
|
295
|
+
|
|
296
|
+
This function has a side-effect: if the value is not found in the options
|
|
297
|
+
and a key is provided, it will update session state with the new value.
|
|
298
|
+
|
|
299
|
+
Parameters
|
|
300
|
+
----------
|
|
301
|
+
current_value
|
|
302
|
+
The current widget value to validate.
|
|
303
|
+
opt
|
|
304
|
+
The sequence of valid options.
|
|
305
|
+
default_index
|
|
306
|
+
The default index to reset to if value is invalid.
|
|
307
|
+
key
|
|
308
|
+
The widget key for session state updates.
|
|
309
|
+
|
|
310
|
+
Returns
|
|
311
|
+
-------
|
|
312
|
+
tuple[T | None, bool]
|
|
313
|
+
A tuple of (validated_value, value_was_reset).
|
|
314
|
+
"""
|
|
315
|
+
if current_value is None:
|
|
316
|
+
return current_value, False
|
|
317
|
+
|
|
318
|
+
# Check if current value is still in the new options
|
|
319
|
+
try:
|
|
320
|
+
index_(opt, current_value)
|
|
321
|
+
return current_value, False
|
|
322
|
+
except ValueError:
|
|
323
|
+
# Value not in options - reset to default
|
|
324
|
+
if default_index is not None and len(opt) > 0:
|
|
325
|
+
new_value: T | None = opt[default_index]
|
|
326
|
+
else:
|
|
327
|
+
new_value = None
|
|
328
|
+
|
|
329
|
+
if key is not None:
|
|
330
|
+
# Update session_state so subsequent accesses in this run
|
|
331
|
+
# return the corrected value. Use reset_state_value to avoid
|
|
332
|
+
# the "cannot be modified after widget instantiated" error.
|
|
333
|
+
get_session_state().reset_state_value(str(key), new_value)
|
|
334
|
+
|
|
335
|
+
return new_value, True
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
def validate_and_sync_multiselect_value_with_options(
|
|
339
|
+
current_values: list[T] | list[T | str],
|
|
340
|
+
opt: Sequence[T],
|
|
341
|
+
key: str | int | None,
|
|
342
|
+
) -> tuple[list[T] | list[T | str], bool]:
|
|
343
|
+
"""Validate multiselect values against options, syncing session state if needed.
|
|
344
|
+
|
|
345
|
+
This function has a side-effect: if any values are filtered out and a key
|
|
346
|
+
is provided, it will update session state with the filtered list.
|
|
347
|
+
|
|
348
|
+
Unlike selectbox which resets to a default when the value is invalid,
|
|
349
|
+
multiselect filters out invalid values and keeps the valid ones.
|
|
350
|
+
|
|
351
|
+
Parameters
|
|
352
|
+
----------
|
|
353
|
+
current_values
|
|
354
|
+
The current list of selected values to validate.
|
|
355
|
+
opt
|
|
356
|
+
The sequence of valid options.
|
|
357
|
+
key
|
|
358
|
+
The widget key for session state updates.
|
|
359
|
+
|
|
360
|
+
Returns
|
|
361
|
+
-------
|
|
362
|
+
tuple[list[T] | list[T | str], bool]
|
|
363
|
+
A tuple of (validated_values, values_were_filtered).
|
|
364
|
+
"""
|
|
365
|
+
if not current_values:
|
|
366
|
+
return current_values, False
|
|
367
|
+
|
|
368
|
+
valid_values: list[T | str] = []
|
|
369
|
+
for value in current_values:
|
|
370
|
+
try:
|
|
371
|
+
index_(opt, value)
|
|
372
|
+
valid_values.append(value)
|
|
373
|
+
except ValueError: # noqa: PERF203
|
|
374
|
+
pass
|
|
375
|
+
|
|
376
|
+
if len(valid_values) == len(current_values):
|
|
377
|
+
return current_values, False
|
|
378
|
+
|
|
379
|
+
if key is not None:
|
|
380
|
+
get_session_state().reset_state_value(str(key), valid_values)
|
|
381
|
+
|
|
382
|
+
return valid_values, True
|
|
@@ -38,6 +38,7 @@ from streamlit.elements.lib.options_selector_utils import (
|
|
|
38
38
|
create_mappings,
|
|
39
39
|
get_default_indices,
|
|
40
40
|
maybe_coerce_enum_sequence,
|
|
41
|
+
validate_and_sync_multiselect_value_with_options,
|
|
41
42
|
)
|
|
42
43
|
from streamlit.elements.lib.policies import (
|
|
43
44
|
check_widget_policies,
|
|
@@ -493,15 +494,9 @@ class MultiSelectMixin:
|
|
|
493
494
|
element_id = compute_and_register_element_id(
|
|
494
495
|
widget_name,
|
|
495
496
|
user_key=key,
|
|
496
|
-
# Treat the provided key as the main identity. Only include
|
|
497
|
-
# changes to the options, accept_new_options, and max_selections
|
|
498
|
-
# in the identity computation as those can invalidate the
|
|
499
|
-
# current selection.
|
|
500
497
|
key_as_main_identity={
|
|
501
|
-
"options",
|
|
502
498
|
"max_selections",
|
|
503
499
|
"accept_new_options",
|
|
504
|
-
"format_func",
|
|
505
500
|
},
|
|
506
501
|
dg=self.dg,
|
|
507
502
|
label=label,
|
|
@@ -554,8 +549,23 @@ class MultiSelectMixin:
|
|
|
554
549
|
widget_state, options, indexable_options
|
|
555
550
|
)
|
|
556
551
|
|
|
557
|
-
if
|
|
558
|
-
|
|
552
|
+
if accept_new_options:
|
|
553
|
+
# accept_new_options is True, so we keep the user-entered values.
|
|
554
|
+
current_values = widget_state.value
|
|
555
|
+
value_needs_reset = False
|
|
556
|
+
else:
|
|
557
|
+
# Validate the current values against the new options.
|
|
558
|
+
# If values are no longer valid (not in options), filter them out.
|
|
559
|
+
# This handles the case where options change dynamically and the
|
|
560
|
+
# previously selected values are no longer available.
|
|
561
|
+
current_values, value_needs_reset = (
|
|
562
|
+
validate_and_sync_multiselect_value_with_options(
|
|
563
|
+
widget_state.value, indexable_options, key
|
|
564
|
+
)
|
|
565
|
+
)
|
|
566
|
+
|
|
567
|
+
if value_needs_reset or widget_state.value_changed:
|
|
568
|
+
proto.raw_values[:] = serde.serialize(current_values)
|
|
559
569
|
proto.set_value = True
|
|
560
570
|
|
|
561
571
|
validate_width(width)
|
|
@@ -566,7 +576,7 @@ class MultiSelectMixin:
|
|
|
566
576
|
|
|
567
577
|
self.dg._enqueue(widget_name, proto, layout_config=layout_config)
|
|
568
578
|
|
|
569
|
-
return
|
|
579
|
+
return current_values
|
|
570
580
|
|
|
571
581
|
@property
|
|
572
582
|
def dg(self) -> DeltaGenerator:
|
|
@@ -37,6 +37,7 @@ from streamlit.elements.lib.options_selector_utils import (
|
|
|
37
37
|
create_mappings,
|
|
38
38
|
index_,
|
|
39
39
|
maybe_coerce_enum,
|
|
40
|
+
validate_and_sync_value_with_options,
|
|
40
41
|
)
|
|
41
42
|
from streamlit.elements.lib.policies import (
|
|
42
43
|
check_widget_policies,
|
|
@@ -595,30 +596,17 @@ class SelectboxMixin:
|
|
|
595
596
|
)
|
|
596
597
|
widget_state = maybe_coerce_enum(widget_state, options, opt)
|
|
597
598
|
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
except ValueError:
|
|
610
|
-
# Value not in options - reset to default.
|
|
611
|
-
value_needs_reset = True
|
|
612
|
-
if index is not None and len(opt) > 0:
|
|
613
|
-
current_value = opt[index]
|
|
614
|
-
else:
|
|
615
|
-
current_value = None
|
|
616
|
-
|
|
617
|
-
# Update session_state so subsequent accesses in this run
|
|
618
|
-
# return the corrected value. Use reset_state_value to avoid
|
|
619
|
-
# the "cannot be modified after widget instantiated" error.
|
|
620
|
-
if key is not None:
|
|
621
|
-
get_session_state().reset_state_value(key, current_value)
|
|
599
|
+
if accept_new_options:
|
|
600
|
+
current_value = widget_state.value
|
|
601
|
+
value_needs_reset = False
|
|
602
|
+
else:
|
|
603
|
+
# Validate the current value against the new options.
|
|
604
|
+
# If the value is no longer valid (not in options), reset to default.
|
|
605
|
+
# This handles the case where options change dynamically and the
|
|
606
|
+
# previously selected value is no longer available.
|
|
607
|
+
current_value, value_needs_reset = validate_and_sync_value_with_options(
|
|
608
|
+
widget_state.value, opt, index, key
|
|
609
|
+
)
|
|
622
610
|
|
|
623
611
|
if value_needs_reset or widget_state.value_changed:
|
|
624
612
|
serialized_value = serde.serialize(current_value)
|