streamlit-nightly 1.53.2.dev20260125__py3-none-any.whl → 1.53.2.dev20260128__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. streamlit/commands/logo.py +81 -25
  2. streamlit/config.py +11 -0
  3. streamlit/deprecation_util.py +19 -1
  4. streamlit/elements/arrow.py +2 -1
  5. streamlit/elements/lib/built_in_chart_utils.py +2 -2
  6. streamlit/elements/lib/options_selector_utils.py +72 -22
  7. streamlit/elements/widgets/select_slider.py +123 -37
  8. streamlit/hello/plotting_demo.py +19 -12
  9. streamlit/proto/Logo_pb2.py +5 -3
  10. streamlit/proto/Logo_pb2.pyi +25 -1
  11. streamlit/proto/NewSession_pb2.py +24 -22
  12. streamlit/proto/NewSession_pb2.pyi +23 -1
  13. streamlit/proto/Slider_pb2.py +6 -6
  14. streamlit/proto/Slider_pb2.pyi +9 -1
  15. streamlit/runtime/app_session.py +19 -0
  16. streamlit/runtime/scriptrunner/script_runner.py +17 -0
  17. streamlit/runtime/scriptrunner_utils/script_run_context.py +13 -10
  18. streamlit/runtime/state/__init__.py +7 -1
  19. streamlit/runtime/state/common.py +13 -0
  20. streamlit/runtime/state/query_params.py +494 -6
  21. streamlit/runtime/state/session_state.py +178 -3
  22. streamlit/runtime/state/widgets.py +26 -1
  23. streamlit/static/index.html +1 -1
  24. streamlit/static/manifest.json +299 -299
  25. streamlit/static/static/js/{ErrorOutline.esm.CIFYUdwC.js → ErrorOutline.esm.D71F8ziR.js} +1 -1
  26. streamlit/static/static/js/{FileDownload.esm.DWVTnTHm.js → FileDownload.esm.yTkppsJy.js} +1 -1
  27. streamlit/static/static/js/{FileHelper.BPYQIPd1.js → FileHelper.hUOqtbwa.js} +1 -1
  28. streamlit/static/static/js/{FormClearHelper.CypmvhYZ.js → FormClearHelper.DN8D_YXO.js} +1 -1
  29. streamlit/static/static/js/{InputInstructions.Bi62hDTQ.js → InputInstructions.DbssY6d4.js} +1 -1
  30. streamlit/static/static/js/{Particles.yebG0VuV.js → Particles.BznyVdfo.js} +1 -1
  31. streamlit/static/static/js/{ProgressBar.Dy9CI6w4.js → ProgressBar.C5uBOtcx.js} +1 -1
  32. streamlit/static/static/js/{StreamlitSyntaxHighlighter.Btk92CPv.js → StreamlitSyntaxHighlighter.Nf1895x-.js} +1 -1
  33. streamlit/static/static/js/{TableChart.esm.DBeVaFNt.js → TableChart.esm.DHKzVs3a.js} +1 -1
  34. streamlit/static/static/js/{Toolbar.DC2Tp-qb.js → Toolbar.CQsWYXer.js} +1 -1
  35. streamlit/static/static/js/{WidgetLabelHelpIconInline.3DnEd9BK.js → WidgetLabelHelpIconInline.6xCU76OE.js} +1 -1
  36. streamlit/static/static/js/{base-input.7Sj6pVk0.js → base-input.Cs-E6S71.js} +1 -1
  37. streamlit/static/static/js/{checkbox.CcUx3XuQ.js → checkbox.OTGupu18.js} +1 -1
  38. streamlit/static/static/js/{createDownloadLinkElement.DZuwkCqy.js → createDownloadLinkElement.DnBEQQbK.js} +1 -1
  39. streamlit/static/static/js/{data-grid-overlay-editor.Dw-AewlN.js → data-grid-overlay-editor.COiiMi5r.js} +1 -1
  40. streamlit/static/static/js/{downloader.Bsx5M2Du.js → downloader.K0GUNeuj.js} +1 -1
  41. streamlit/static/static/js/embed.o8HvK3mH.js +193 -0
  42. streamlit/static/static/js/{es6.BpAqZaR_.js → es6.BHy5pqTP.js} +2 -2
  43. streamlit/static/static/js/{formatNumber.DjehVPVS.js → formatNumber.BK7h0k2z.js} +1 -1
  44. streamlit/static/static/js/{iconPosition.D02OPE-d.js → iconPosition.2YynQUxu.js} +1 -1
  45. streamlit/static/static/js/{iframeResizer.contentWindow.xtstqPd7.js → iframeResizer.contentWindow.D5h3hQuU.js} +1 -1
  46. streamlit/static/static/js/{index.5H98WqjT.js → index.5zqfJ-in.js} +1 -1
  47. streamlit/static/static/js/{index.B5tD5YeV.js → index.6c-qDsD7.js} +1 -1
  48. streamlit/static/static/js/{index.CA0RmxJF.js → index.8MlRyIxN.js} +1 -1
  49. streamlit/static/static/js/{index.DSSapl3Q.js → index.BIqcOZ_u.js} +1 -1
  50. streamlit/static/static/js/{index.DJjSqPAx.js → index.BPdmXoYW.js} +1 -1
  51. streamlit/static/static/js/{index.iXzAofuY.js → index.BZ-GJVxB.js} +2 -2
  52. streamlit/static/static/js/{index.CKUBdVQ9.js → index.BfMPq234.js} +1 -1
  53. streamlit/static/static/js/{index.B8-HOwf1.js → index.Bfo1cXfC.js} +1 -1
  54. streamlit/static/static/js/{index.-faJDV20.js → index.Bgf49D1Z.js} +1 -1
  55. streamlit/static/static/js/{index.CgARjn28.js → index.Bqmx23jK.js} +1 -1
  56. streamlit/static/static/js/{index.D6Z9hKJY.js → index.BtRWcqZV.js} +1 -1
  57. streamlit/static/static/js/{index.ZIA43eTF.js → index.BtuskCwg.js} +1 -1
  58. streamlit/static/static/js/{index.BV6XgCij.js → index.BzTVI_BY.js} +1 -1
  59. streamlit/static/static/js/{index.DDu_qTm0.js → index.C2EoeVjP.js} +1 -1
  60. streamlit/static/static/js/{index.8FPw0_gD.js → index.C65jHNhe.js} +1 -1
  61. streamlit/static/static/js/{index.D6J2UPzF.js → index.C6wyTXhz.js} +1 -1
  62. streamlit/static/static/js/{index.CGbvkEtg.js → index.C7wst9Tm.js} +1 -1
  63. streamlit/static/static/js/{index.BIcJe97b.js → index.COh5V_89.js} +1 -1
  64. streamlit/static/static/js/index.CSPY26T2.js +1 -0
  65. streamlit/static/static/js/{index.CEwnDCn9.js → index.CUkhn-vu.js} +1 -1
  66. streamlit/static/static/js/{index.DO2T-QzF.js → index.CX0KdFyR.js} +1 -1
  67. streamlit/static/static/js/{index.BDlI2pRp.js → index.CYhhEdja.js} +1 -1
  68. streamlit/static/static/js/{index.DgLRJfs3.js → index.CZf7Go1Z.js} +1 -1
  69. streamlit/static/static/js/{index.DZv5AoR1.js → index.Cb03y5I8.js} +1 -1
  70. streamlit/static/static/js/{index.BVhVdVeE.js → index.CdsyTabv.js} +1 -1
  71. streamlit/static/static/js/{index.JL0uGAeJ.js → index.CgVv04GM.js} +1 -1
  72. streamlit/static/static/js/index.CjRU8O1O.js +2 -0
  73. streamlit/static/static/js/{index.BqfJJr3c.js → index.CwtpGPHA.js} +1 -1
  74. streamlit/static/static/js/{index.iF5zYERg.js → index.CxWzt6oi.js} +1 -1
  75. streamlit/static/static/js/{index.m3dn5Bai.js → index.DBPWUJsj.js} +5 -5
  76. streamlit/static/static/js/{index.D9RL5sRp.js → index.DJfMW0Gy.js} +1 -1
  77. streamlit/static/static/js/{index.BOkpEbJS.js → index.DLUSo6de.js} +1 -1
  78. streamlit/static/static/js/{index.S-mjkUeF.js → index.DL_yE83J.js} +1 -1
  79. streamlit/static/static/js/{index.BK9S5qug.js → index.DVRCyxMp.js} +1 -1
  80. streamlit/static/static/js/{index.D_TIyPF4.js → index.Dc5-tFdw.js} +1 -1
  81. streamlit/static/static/js/index.DcngUOyD.js +2 -0
  82. streamlit/static/static/js/{index.B9gbSNsw.js → index.Dh3PJIlq.js} +1 -1
  83. streamlit/static/static/js/{index.BvZbnSMC.js → index.DlgcEr0f.js} +1 -1
  84. streamlit/static/static/js/{index.Bo1ztye0.js → index.DxGXuhh6.js} +1 -1
  85. streamlit/static/static/js/{index.x1B588Xu.js → index.DxfYCrPp.js} +1 -1
  86. streamlit/static/static/js/{index.CyDHwK5P.js → index.HmRK3HyC.js} +1 -1
  87. streamlit/static/static/js/{index.DdxofXV8.js → index.TjMWsKSH.js} +3 -3
  88. streamlit/static/static/js/{index.Bri1T2TS.js → index.VwDKazgt.js} +1 -1
  89. streamlit/static/static/js/{index.BB_iwaVr.js → index.aCorc3Yt.js} +34 -34
  90. streamlit/static/static/js/{index.CdRwiHPm.js → index.cfuZ69LI.js} +1 -1
  91. streamlit/static/static/js/{index.C9v49R-a.js → index.hlAfdSqC.js} +1 -1
  92. streamlit/static/static/js/{index.BGTMh3Uu.js → index.iUV9rb8C.js} +1 -1
  93. streamlit/static/static/js/{index.XFMDBL5n.js → index.q0ceUXt6.js} +1 -1
  94. streamlit/static/static/js/{input.VYKyGuhi.js → input.CXGIJ7D6.js} +1 -1
  95. streamlit/static/static/js/{main.u5Bb3MY7.js → main.CCVkbuxC.js} +1 -1
  96. streamlit/static/static/js/{memory.BOMt4yAV.js → memory.CNbnYs2A.js} +1 -1
  97. streamlit/static/static/js/{number-overlay-editor.CihlAHgl.js → number-overlay-editor.CvI6wkld.js} +1 -1
  98. streamlit/static/static/js/{pandasStylerUtils.BuqSgXpk.js → pandasStylerUtils.CFSReOTm.js} +1 -1
  99. streamlit/static/static/js/{sandbox.COGR4pqz.js → sandbox.Bld0L3us.js} +1 -1
  100. streamlit/static/static/js/{styled-components.BEf3c4IJ.js → styled-components.BoUHK6TA.js} +1 -1
  101. streamlit/static/static/js/{throttle.Bl-XsA9N.js → throttle.ByDFm7WV.js} +1 -1
  102. streamlit/static/static/js/{timepicker.B-HgBYlK.js → timepicker.CN6CUZEL.js} +1 -1
  103. streamlit/static/static/js/{toConsumableArray.BrQebwtE.js → toConsumableArray.DwMycSpg.js} +1 -1
  104. streamlit/static/static/js/uniqueId.DcCWa2cf.js +1 -0
  105. streamlit/static/static/js/{useBasicWidgetState.8WwISl9r.js → useBasicWidgetState.Bg0ZMUt5.js} +1 -1
  106. streamlit/static/static/js/{useIntlLocale.D37LWdCR.js → useIntlLocale.DgBUDcPA.js} +1 -1
  107. streamlit/static/static/js/{useTextInputAutoExpand.Bb_KqJvq.js → useTextInputAutoExpand.DDBezxks.js} +1 -1
  108. streamlit/static/static/js/{useUpdateUiValue.D1BLS5t7.js → useUpdateUiValue.Df1h6fXC.js} +1 -1
  109. streamlit/static/static/js/{useWaveformController.Ce0-qTws.js → useWaveformController.DbWw5MEk.js} +1 -1
  110. streamlit/static/static/js/{withCalculatedWidth.BX2K3UVv.js → withCalculatedWidth.YaK0HIIP.js} +1 -1
  111. streamlit/static/static/js/{withFullScreenWrapper.CqfGs8T2.js → withFullScreenWrapper.CcWCKoY8.js} +1 -1
  112. streamlit/testing/v1/element_tree.py +23 -8
  113. streamlit/web/bootstrap.py +5 -2
  114. streamlit/web/server/server_util.py +22 -0
  115. {streamlit_nightly-1.53.2.dev20260125.dist-info → streamlit_nightly-1.53.2.dev20260128.dist-info}/METADATA +1 -1
  116. {streamlit_nightly-1.53.2.dev20260125.dist-info → streamlit_nightly-1.53.2.dev20260128.dist-info}/RECORD +120 -120
  117. streamlit/static/static/js/embed.C7by6AoE.js +0 -195
  118. streamlit/static/static/js/index.Bhy8EBYI.js +0 -2
  119. streamlit/static/static/js/index.C5ehUqNt.js +0 -2
  120. streamlit/static/static/js/index.m4WkwGMu.js +0 -1
  121. streamlit/static/static/js/uniqueId.8R4hbkYl.js +0 -1
  122. {streamlit_nightly-1.53.2.dev20260125.data → streamlit_nightly-1.53.2.dev20260128.data}/scripts/streamlit.cmd +0 -0
  123. {streamlit_nightly-1.53.2.dev20260125.dist-info → streamlit_nightly-1.53.2.dev20260128.dist-info}/WHEEL +0 -0
  124. {streamlit_nightly-1.53.2.dev20260125.dist-info → streamlit_nightly-1.53.2.dev20260128.dist-info}/entry_points.txt +0 -0
  125. {streamlit_nightly-1.53.2.dev20260125.dist-info → streamlit_nightly-1.53.2.dev20260128.dist-info}/top_level.txt +0 -0
@@ -19,6 +19,7 @@ limitations under the License.
19
19
 
20
20
  from google.protobuf import descriptor as _descriptor
21
21
  from google.protobuf import message as _message
22
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
22
23
  import builtins as _builtins
23
24
  import sys
24
25
  import typing as _typing
@@ -36,14 +37,35 @@ class Logo(_message.Message):
36
37
 
37
38
  DESCRIPTOR: _descriptor.Descriptor
38
39
 
40
+ class _ImageType:
41
+ ValueType = _typing.NewType("ValueType", _builtins.int)
42
+ V: _TypeAlias = ValueType # noqa: Y015
43
+
44
+ class _ImageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Logo._ImageType.ValueType], _builtins.type):
45
+ DESCRIPTOR: _descriptor.EnumDescriptor
46
+ IMAGE: Logo._ImageType.ValueType # 0
47
+ EMOJI: Logo._ImageType.ValueType # 1
48
+ ICON: Logo._ImageType.ValueType # 2
49
+
50
+ class ImageType(_ImageType, metaclass=_ImageTypeEnumTypeWrapper):
51
+ """Type of the logo image (image file, emoji, or material icon)"""
52
+
53
+ IMAGE: Logo.ImageType.ValueType # 0
54
+ EMOJI: Logo.ImageType.ValueType # 1
55
+ ICON: Logo.ImageType.ValueType # 2
56
+
39
57
  IMAGE_FIELD_NUMBER: _builtins.int
40
58
  LINK_FIELD_NUMBER: _builtins.int
41
59
  ICON_IMAGE_FIELD_NUMBER: _builtins.int
42
60
  SIZE_FIELD_NUMBER: _builtins.int
61
+ IMAGE_TYPE_FIELD_NUMBER: _builtins.int
62
+ ICON_IMAGE_TYPE_FIELD_NUMBER: _builtins.int
43
63
  image: _builtins.str
44
64
  link: _builtins.str
45
65
  icon_image: _builtins.str
46
66
  size: _builtins.str
67
+ image_type: Global___Logo.ImageType.ValueType
68
+ icon_image_type: Global___Logo.ImageType.ValueType
47
69
  def __init__(
48
70
  self,
49
71
  *,
@@ -51,8 +73,10 @@ class Logo(_message.Message):
51
73
  link: _builtins.str = ...,
52
74
  icon_image: _builtins.str = ...,
53
75
  size: _builtins.str = ...,
76
+ image_type: Global___Logo.ImageType.ValueType = ...,
77
+ icon_image_type: Global___Logo.ImageType.ValueType = ...,
54
78
  ) -> None: ...
55
- _ClearFieldArgType: _TypeAlias = _typing.Literal["icon_image", b"icon_image", "image", b"image", "link", b"link", "size", b"size"] # noqa: Y015
79
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["icon_image", b"icon_image", "icon_image_type", b"icon_image_type", "image", b"image", "image_type", b"image_type", "link", b"link", "size", b"size"] # noqa: Y015
56
80
  def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
57
81
 
58
82
  Global___Logo: _TypeAlias = Logo # noqa: Y015
@@ -16,7 +16,7 @@ from streamlit.proto import AppPage_pb2 as streamlit_dot_proto_dot_AppPage__pb2
16
16
  from streamlit.proto import SessionStatus_pb2 as streamlit_dot_proto_dot_SessionStatus__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n streamlit/proto/NewSession.proto\x1a\x1dstreamlit/proto/AppPage.proto\x1a#streamlit/proto/SessionStatus.proto\"\xa5\x02\n\nNewSession\x12\x1f\n\ninitialize\x18\x01 \x01(\x0b\x32\x0b.Initialize\x12\x15\n\rscript_run_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x10main_script_path\x18\x04 \x01(\t\x12\x17\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x07.Config\x12(\n\x0c\x63ustom_theme\x18\x07 \x01(\x0b\x32\x12.CustomThemeConfig\x12\x1b\n\tapp_pages\x18\x08 \x03(\x0b\x32\x08.AppPage\x12\x18\n\x10page_script_hash\x18\t \x01(\t\x12\x1d\n\x15\x66ragment_ids_this_run\x18\n \x03(\t\x12\x18\n\x10main_script_hash\x18\x0b \x01(\tJ\x04\x08\x05\x10\x06\"\xba\x01\n\nInitialize\x12\x1c\n\tuser_info\x18\x01 \x01(\x0b\x32\t.UserInfo\x12*\n\x10\x65nvironment_info\x18\x03 \x01(\x0b\x32\x10.EnvironmentInfo\x12&\n\x0esession_status\x18\x04 \x01(\x0b\x32\x0e.SessionStatus\x12\x14\n\x0c\x63ommand_line\x18\x05 \x01(\t\x12\x12\n\nsession_id\x18\x06 \x01(\t\x12\x10\n\x08is_hello\x18\x07 \x01(\x08\"\x97\x02\n\x06\x43onfig\x12\x1a\n\x12gather_usage_stats\x18\x02 \x01(\x08\x12\x1e\n\x16max_cached_message_age\x18\x03 \x01(\x05\x12\x14\n\x0cmapbox_token\x18\x04 \x01(\t\x12\x19\n\x11\x61llow_run_on_save\x18\x05 \x01(\x08\x12\x14\n\x0chide_top_bar\x18\x06 \x01(\x08\x12\x18\n\x10hide_sidebar_nav\x18\x07 \x01(\x08\x12)\n\x0ctoolbar_mode\x18\x08 \x01(\x0e\x32\x13.Config.ToolbarMode\"?\n\x0bToolbarMode\x12\x08\n\x04\x41UTO\x10\x00\x12\r\n\tDEVELOPER\x10\x01\x12\n\n\x06VIEWER\x10\x02\x12\x0b\n\x07MINIMAL\x10\x03J\x04\x08\x01\x10\x02\"\xe2\x15\n\x11\x43ustomThemeConfig\x12\x15\n\rprimary_color\x18\x01 \x01(\t\x12\"\n\x1asecondary_background_color\x18\x02 \x01(\t\x12\x18\n\x10\x62\x61\x63kground_color\x18\x03 \x01(\t\x12\x12\n\ntext_color\x18\x04 \x01(\t\x12+\n\x04\x66ont\x18\x05 \x01(\x0e\x32\x1d.CustomThemeConfig.FontFamily\x12*\n\x04\x62\x61se\x18\x06 \x01(\x0e\x32\x1c.CustomThemeConfig.BaseTheme\x12\x1f\n\x17widget_background_color\x18\x07 \x01(\t\x12\x1b\n\x13widget_border_color\x18\x08 \x01(\t\x12\x15\n\x05radii\x18\t \x01(\x0b\x32\x06.Radii\x12\x14\n\x0cheading_font\x18\x0c \x01(\t\x12\x11\n\tbody_font\x18\r \x01(\t\x12\x11\n\tcode_font\x18\x0e \x01(\t\x12\x1d\n\nfont_faces\x18\x0f \x03(\x0b\x32\t.FontFace\x12!\n\x0c\x66ont_sources\x18% \x03(\x0b\x32\x0b.FontSource\x12\x1e\n\nfont_sizes\x18\x10 \x01(\x0b\x32\n.FontSizes\x12!\n\x19skeleton_background_color\x18\x11 \x01(\t\x12\x18\n\x0b\x62\x61se_radius\x18\x12 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rbutton_radius\x18\x1a \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x62order_color\x18\x13 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x64\x61taframe_border_color\x18\x1b \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x12show_widget_border\x18\x14 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nlink_color\x18\x15 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0elink_underline\x18\x1d \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0e\x62\x61se_font_size\x18\x16 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10\x62\x61se_font_weight\x18\x1e \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10\x63ode_font_weight\x18 \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0e\x63ode_font_size\x18\x1c \x01(\tH\n\x88\x01\x01\x12\x1a\n\x12heading_font_sizes\x18# \x03(\t\x12\x1c\n\x14heading_font_weights\x18\" \x03(\x05\x12 \n\x13show_sidebar_border\x18\x17 \x01(\x08H\x0b\x88\x01\x01\x12\x1c\n\x0f\x63ode_text_color\x18; \x01(\tH\x0c\x88\x01\x01\x12\"\n\x15\x63ode_background_color\x18\x19 \x01(\tH\r\x88\x01\x01\x12.\n!dataframe_header_background_color\x18\x1f \x01(\tH\x0e\x88\x01\x01\x12 \n\x18\x63hart_categorical_colors\x18! \x03(\t\x12\x1f\n\x17\x63hart_sequential_colors\x18$ \x03(\t\x12\x1e\n\x16\x63hart_diverging_colors\x18> \x03(\t\x12\x16\n\tred_color\x18& \x01(\tH\x0f\x88\x01\x01\x12\x19\n\x0corange_color\x18\' \x01(\tH\x10\x88\x01\x01\x12\x19\n\x0cyellow_color\x18( \x01(\tH\x11\x88\x01\x01\x12\x17\n\nblue_color\x18) \x01(\tH\x12\x88\x01\x01\x12\x18\n\x0bgreen_color\x18* \x01(\tH\x13\x88\x01\x01\x12\x19\n\x0cviolet_color\x18+ \x01(\tH\x14\x88\x01\x01\x12\x17\n\ngray_color\x18, \x01(\tH\x15\x88\x01\x01\x12!\n\x14red_background_color\x18- \x01(\tH\x16\x88\x01\x01\x12$\n\x17orange_background_color\x18. \x01(\tH\x17\x88\x01\x01\x12$\n\x17yellow_background_color\x18/ \x01(\tH\x18\x88\x01\x01\x12\"\n\x15\x62lue_background_color\x18\x30 \x01(\tH\x19\x88\x01\x01\x12#\n\x16green_background_color\x18\x31 \x01(\tH\x1a\x88\x01\x01\x12$\n\x17violet_background_color\x18\x32 \x01(\tH\x1b\x88\x01\x01\x12\"\n\x15gray_background_color\x18\x33 \x01(\tH\x1c\x88\x01\x01\x12\x1b\n\x0ered_text_color\x18\x34 \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\x11orange_text_color\x18\x35 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11yellow_text_color\x18\x36 \x01(\tH\x1f\x88\x01\x01\x12\x1c\n\x0f\x62lue_text_color\x18\x37 \x01(\tH \x88\x01\x01\x12\x1d\n\x10green_text_color\x18\x38 \x01(\tH!\x88\x01\x01\x12\x1e\n\x11violet_text_color\x18\x39 \x01(\tH\"\x88\x01\x01\x12\x1c\n\x0fgray_text_color\x18: \x01(\tH#\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH$\x88\x01\x01\x12&\n\x05light\x18< \x01(\x0b\x32\x12.CustomThemeConfigH%\x88\x01\x01\x12%\n\x04\x64\x61rk\x18= \x01(\x0b\x32\x12.CustomThemeConfigH&\x88\x01\x01\" \n\tBaseTheme\x12\t\n\x05LIGHT\x10\x00\x12\x08\n\x04\x44\x41RK\x10\x01\"6\n\nFontFamily\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\r\n\tMONOSPACE\x10\x02\x42\x0e\n\x0c_base_radiusB\x10\n\x0e_button_radiusB\x0f\n\r_border_colorB\x19\n\x17_dataframe_border_colorB\x15\n\x13_show_widget_borderB\r\n\x0b_link_colorB\x11\n\x0f_link_underlineB\x11\n\x0f_base_font_sizeB\x13\n\x11_base_font_weightB\x13\n\x11_code_font_weightB\x11\n\x0f_code_font_sizeB\x16\n\x14_show_sidebar_borderB\x12\n\x10_code_text_colorB\x18\n\x16_code_background_colorB$\n\"_dataframe_header_background_colorB\x0c\n\n_red_colorB\x0f\n\r_orange_colorB\x0f\n\r_yellow_colorB\r\n\x0b_blue_colorB\x0e\n\x0c_green_colorB\x0f\n\r_violet_colorB\r\n\x0b_gray_colorB\x17\n\x15_red_background_colorB\x1a\n\x18_orange_background_colorB\x1a\n\x18_yellow_background_colorB\x18\n\x16_blue_background_colorB\x19\n\x17_green_background_colorB\x1a\n\x18_violet_background_colorB\x18\n\x16_gray_background_colorB\x11\n\x0f_red_text_colorB\x14\n\x12_orange_text_colorB\x14\n\x12_yellow_text_colorB\x12\n\x10_blue_text_colorB\x13\n\x11_green_text_colorB\x14\n\x12_violet_text_colorB\x12\n\x10_gray_text_colorB\n\n\x08_sidebarB\x08\n\x06_lightB\x07\n\x05_dark\"w\n\x08\x46ontFace\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61mily\x18\x02 \x01(\t\x12\x12\n\x06weight\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x14\n\x0cweight_range\x18\x05 \x01(\t\x12\r\n\x05style\x18\x04 \x01(\t\x12\x15\n\runicode_range\x18\x06 \x01(\t\"5\n\nFontSource\x12\x13\n\x0b\x63onfig_name\x18\x01 \x01(\t\x12\x12\n\nsource_url\x18\x02 \x01(\t\"<\n\x05Radii\x12\x1a\n\x12\x62\x61se_widget_radius\x18\x01 \x01(\x05\x12\x17\n\x0f\x63heckbox_radius\x18\x02 \x01(\x05\"T\n\tFontSizes\x12\x16\n\x0etiny_font_size\x18\x01 \x01(\x05\x12\x17\n\x0fsmall_font_size\x18\x02 \x01(\x05\x12\x16\n\x0e\x62\x61se_font_size\x18\x03 \x01(\x05\"a\n\x08UserInfo\x12\x17\n\x0finstallation_id\x18\x01 \x01(\t\x12\x1a\n\x12installation_id_v3\x18\x05 \x01(\t\x12\x1a\n\x12installation_id_v4\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03\"l\n\x0f\x45nvironmentInfo\x12\x19\n\x11streamlit_version\x18\x01 \x01(\t\x12\x16\n\x0epython_version\x18\x02 \x01(\t\x12\x11\n\tserver_os\x18\x03 \x01(\t\x12\x13\n\x0bhas_display\x18\x04 \x01(\x08\x42/\n\x1c\x63om.snowflake.apps.streamlitB\x0fNewSessionProtob\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n streamlit/proto/NewSession.proto\x1a\x1dstreamlit/proto/AppPage.proto\x1a#streamlit/proto/SessionStatus.proto\"\xa5\x02\n\nNewSession\x12\x1f\n\ninitialize\x18\x01 \x01(\x0b\x32\x0b.Initialize\x12\x15\n\rscript_run_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x10main_script_path\x18\x04 \x01(\t\x12\x17\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x07.Config\x12(\n\x0c\x63ustom_theme\x18\x07 \x01(\x0b\x32\x12.CustomThemeConfig\x12\x1b\n\tapp_pages\x18\x08 \x03(\x0b\x32\x08.AppPage\x12\x18\n\x10page_script_hash\x18\t \x01(\t\x12\x1d\n\x15\x66ragment_ids_this_run\x18\n \x03(\t\x12\x18\n\x10main_script_hash\x18\x0b \x01(\tJ\x04\x08\x05\x10\x06\"\xba\x01\n\nInitialize\x12\x1c\n\tuser_info\x18\x01 \x01(\x0b\x32\t.UserInfo\x12*\n\x10\x65nvironment_info\x18\x03 \x01(\x0b\x32\x10.EnvironmentInfo\x12&\n\x0esession_status\x18\x04 \x01(\x0b\x32\x0e.SessionStatus\x12\x14\n\x0c\x63ommand_line\x18\x05 \x01(\t\x12\x12\n\nsession_id\x18\x06 \x01(\t\x12\x10\n\x08is_hello\x18\x07 \x01(\x08\"\xd0\x03\n\x06\x43onfig\x12\x1a\n\x12gather_usage_stats\x18\x02 \x01(\x08\x12\x1e\n\x16max_cached_message_age\x18\x03 \x01(\x05\x12\x14\n\x0cmapbox_token\x18\x04 \x01(\t\x12\x19\n\x11\x61llow_run_on_save\x18\x05 \x01(\x08\x12\x14\n\x0chide_top_bar\x18\x06 \x01(\x08\x12\x18\n\x10hide_sidebar_nav\x18\x07 \x01(\x08\x12)\n\x0ctoolbar_mode\x18\x08 \x01(\x0e\x32\x13.Config.ToolbarMode\x12\x30\n\x10show_error_links\x18\t \x01(\x0e\x32\x16.Config.ShowErrorLinks\"?\n\x0bToolbarMode\x12\x08\n\x04\x41UTO\x10\x00\x12\r\n\tDEVELOPER\x10\x01\x12\n\n\x06VIEWER\x10\x02\x12\x0b\n\x07MINIMAL\x10\x03\"\x84\x01\n\x0eShowErrorLinks\x12 \n\x1cSHOW_ERROR_LINKS_UNSPECIFIED\x10\x00\x12\x19\n\x15SHOW_ERROR_LINKS_AUTO\x10\x01\x12\x19\n\x15SHOW_ERROR_LINKS_TRUE\x10\x02\x12\x1a\n\x16SHOW_ERROR_LINKS_FALSE\x10\x03J\x04\x08\x01\x10\x02\"\xe2\x15\n\x11\x43ustomThemeConfig\x12\x15\n\rprimary_color\x18\x01 \x01(\t\x12\"\n\x1asecondary_background_color\x18\x02 \x01(\t\x12\x18\n\x10\x62\x61\x63kground_color\x18\x03 \x01(\t\x12\x12\n\ntext_color\x18\x04 \x01(\t\x12+\n\x04\x66ont\x18\x05 \x01(\x0e\x32\x1d.CustomThemeConfig.FontFamily\x12*\n\x04\x62\x61se\x18\x06 \x01(\x0e\x32\x1c.CustomThemeConfig.BaseTheme\x12\x1f\n\x17widget_background_color\x18\x07 \x01(\t\x12\x1b\n\x13widget_border_color\x18\x08 \x01(\t\x12\x15\n\x05radii\x18\t \x01(\x0b\x32\x06.Radii\x12\x14\n\x0cheading_font\x18\x0c \x01(\t\x12\x11\n\tbody_font\x18\r \x01(\t\x12\x11\n\tcode_font\x18\x0e \x01(\t\x12\x1d\n\nfont_faces\x18\x0f \x03(\x0b\x32\t.FontFace\x12!\n\x0c\x66ont_sources\x18% \x03(\x0b\x32\x0b.FontSource\x12\x1e\n\nfont_sizes\x18\x10 \x01(\x0b\x32\n.FontSizes\x12!\n\x19skeleton_background_color\x18\x11 \x01(\t\x12\x18\n\x0b\x62\x61se_radius\x18\x12 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rbutton_radius\x18\x1a \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x62order_color\x18\x13 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x64\x61taframe_border_color\x18\x1b \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x12show_widget_border\x18\x14 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nlink_color\x18\x15 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0elink_underline\x18\x1d \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0e\x62\x61se_font_size\x18\x16 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10\x62\x61se_font_weight\x18\x1e \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10\x63ode_font_weight\x18 \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0e\x63ode_font_size\x18\x1c \x01(\tH\n\x88\x01\x01\x12\x1a\n\x12heading_font_sizes\x18# \x03(\t\x12\x1c\n\x14heading_font_weights\x18\" \x03(\x05\x12 \n\x13show_sidebar_border\x18\x17 \x01(\x08H\x0b\x88\x01\x01\x12\x1c\n\x0f\x63ode_text_color\x18; \x01(\tH\x0c\x88\x01\x01\x12\"\n\x15\x63ode_background_color\x18\x19 \x01(\tH\r\x88\x01\x01\x12.\n!dataframe_header_background_color\x18\x1f \x01(\tH\x0e\x88\x01\x01\x12 \n\x18\x63hart_categorical_colors\x18! \x03(\t\x12\x1f\n\x17\x63hart_sequential_colors\x18$ \x03(\t\x12\x1e\n\x16\x63hart_diverging_colors\x18> \x03(\t\x12\x16\n\tred_color\x18& \x01(\tH\x0f\x88\x01\x01\x12\x19\n\x0corange_color\x18\' \x01(\tH\x10\x88\x01\x01\x12\x19\n\x0cyellow_color\x18( \x01(\tH\x11\x88\x01\x01\x12\x17\n\nblue_color\x18) \x01(\tH\x12\x88\x01\x01\x12\x18\n\x0bgreen_color\x18* \x01(\tH\x13\x88\x01\x01\x12\x19\n\x0cviolet_color\x18+ \x01(\tH\x14\x88\x01\x01\x12\x17\n\ngray_color\x18, \x01(\tH\x15\x88\x01\x01\x12!\n\x14red_background_color\x18- \x01(\tH\x16\x88\x01\x01\x12$\n\x17orange_background_color\x18. \x01(\tH\x17\x88\x01\x01\x12$\n\x17yellow_background_color\x18/ \x01(\tH\x18\x88\x01\x01\x12\"\n\x15\x62lue_background_color\x18\x30 \x01(\tH\x19\x88\x01\x01\x12#\n\x16green_background_color\x18\x31 \x01(\tH\x1a\x88\x01\x01\x12$\n\x17violet_background_color\x18\x32 \x01(\tH\x1b\x88\x01\x01\x12\"\n\x15gray_background_color\x18\x33 \x01(\tH\x1c\x88\x01\x01\x12\x1b\n\x0ered_text_color\x18\x34 \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\x11orange_text_color\x18\x35 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11yellow_text_color\x18\x36 \x01(\tH\x1f\x88\x01\x01\x12\x1c\n\x0f\x62lue_text_color\x18\x37 \x01(\tH \x88\x01\x01\x12\x1d\n\x10green_text_color\x18\x38 \x01(\tH!\x88\x01\x01\x12\x1e\n\x11violet_text_color\x18\x39 \x01(\tH\"\x88\x01\x01\x12\x1c\n\x0fgray_text_color\x18: \x01(\tH#\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH$\x88\x01\x01\x12&\n\x05light\x18< \x01(\x0b\x32\x12.CustomThemeConfigH%\x88\x01\x01\x12%\n\x04\x64\x61rk\x18= \x01(\x0b\x32\x12.CustomThemeConfigH&\x88\x01\x01\" \n\tBaseTheme\x12\t\n\x05LIGHT\x10\x00\x12\x08\n\x04\x44\x41RK\x10\x01\"6\n\nFontFamily\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\r\n\tMONOSPACE\x10\x02\x42\x0e\n\x0c_base_radiusB\x10\n\x0e_button_radiusB\x0f\n\r_border_colorB\x19\n\x17_dataframe_border_colorB\x15\n\x13_show_widget_borderB\r\n\x0b_link_colorB\x11\n\x0f_link_underlineB\x11\n\x0f_base_font_sizeB\x13\n\x11_base_font_weightB\x13\n\x11_code_font_weightB\x11\n\x0f_code_font_sizeB\x16\n\x14_show_sidebar_borderB\x12\n\x10_code_text_colorB\x18\n\x16_code_background_colorB$\n\"_dataframe_header_background_colorB\x0c\n\n_red_colorB\x0f\n\r_orange_colorB\x0f\n\r_yellow_colorB\r\n\x0b_blue_colorB\x0e\n\x0c_green_colorB\x0f\n\r_violet_colorB\r\n\x0b_gray_colorB\x17\n\x15_red_background_colorB\x1a\n\x18_orange_background_colorB\x1a\n\x18_yellow_background_colorB\x18\n\x16_blue_background_colorB\x19\n\x17_green_background_colorB\x1a\n\x18_violet_background_colorB\x18\n\x16_gray_background_colorB\x11\n\x0f_red_text_colorB\x14\n\x12_orange_text_colorB\x14\n\x12_yellow_text_colorB\x12\n\x10_blue_text_colorB\x13\n\x11_green_text_colorB\x14\n\x12_violet_text_colorB\x12\n\x10_gray_text_colorB\n\n\x08_sidebarB\x08\n\x06_lightB\x07\n\x05_dark\"w\n\x08\x46ontFace\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61mily\x18\x02 \x01(\t\x12\x12\n\x06weight\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x14\n\x0cweight_range\x18\x05 \x01(\t\x12\r\n\x05style\x18\x04 \x01(\t\x12\x15\n\runicode_range\x18\x06 \x01(\t\"5\n\nFontSource\x12\x13\n\x0b\x63onfig_name\x18\x01 \x01(\t\x12\x12\n\nsource_url\x18\x02 \x01(\t\"<\n\x05Radii\x12\x1a\n\x12\x62\x61se_widget_radius\x18\x01 \x01(\x05\x12\x17\n\x0f\x63heckbox_radius\x18\x02 \x01(\x05\"T\n\tFontSizes\x12\x16\n\x0etiny_font_size\x18\x01 \x01(\x05\x12\x17\n\x0fsmall_font_size\x18\x02 \x01(\x05\x12\x16\n\x0e\x62\x61se_font_size\x18\x03 \x01(\x05\"a\n\x08UserInfo\x12\x17\n\x0finstallation_id\x18\x01 \x01(\t\x12\x1a\n\x12installation_id_v3\x18\x05 \x01(\t\x12\x1a\n\x12installation_id_v4\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03\"l\n\x0f\x45nvironmentInfo\x12\x19\n\x11streamlit_version\x18\x01 \x01(\t\x12\x16\n\x0epython_version\x18\x02 \x01(\t\x12\x11\n\tserver_os\x18\x03 \x01(\t\x12\x13\n\x0bhas_display\x18\x04 \x01(\x08\x42/\n\x1c\x63om.snowflake.apps.streamlitB\x0fNewSessionProtob\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -31,25 +31,27 @@ if not _descriptor._USE_C_DESCRIPTORS:
31
31
  _globals['_INITIALIZE']._serialized_start=401
32
32
  _globals['_INITIALIZE']._serialized_end=587
33
33
  _globals['_CONFIG']._serialized_start=590
34
- _globals['_CONFIG']._serialized_end=869
35
- _globals['_CONFIG_TOOLBARMODE']._serialized_start=800
36
- _globals['_CONFIG_TOOLBARMODE']._serialized_end=863
37
- _globals['_CUSTOMTHEMECONFIG']._serialized_start=872
38
- _globals['_CUSTOMTHEMECONFIG']._serialized_end=3658
39
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=2771
40
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=2803
41
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=2805
42
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=2859
43
- _globals['_FONTFACE']._serialized_start=3660
44
- _globals['_FONTFACE']._serialized_end=3779
45
- _globals['_FONTSOURCE']._serialized_start=3781
46
- _globals['_FONTSOURCE']._serialized_end=3834
47
- _globals['_RADII']._serialized_start=3836
48
- _globals['_RADII']._serialized_end=3896
49
- _globals['_FONTSIZES']._serialized_start=3898
50
- _globals['_FONTSIZES']._serialized_end=3982
51
- _globals['_USERINFO']._serialized_start=3984
52
- _globals['_USERINFO']._serialized_end=4081
53
- _globals['_ENVIRONMENTINFO']._serialized_start=4083
54
- _globals['_ENVIRONMENTINFO']._serialized_end=4191
34
+ _globals['_CONFIG']._serialized_end=1054
35
+ _globals['_CONFIG_TOOLBARMODE']._serialized_start=850
36
+ _globals['_CONFIG_TOOLBARMODE']._serialized_end=913
37
+ _globals['_CONFIG_SHOWERRORLINKS']._serialized_start=916
38
+ _globals['_CONFIG_SHOWERRORLINKS']._serialized_end=1048
39
+ _globals['_CUSTOMTHEMECONFIG']._serialized_start=1057
40
+ _globals['_CUSTOMTHEMECONFIG']._serialized_end=3843
41
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=2956
42
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=2988
43
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=2990
44
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=3044
45
+ _globals['_FONTFACE']._serialized_start=3845
46
+ _globals['_FONTFACE']._serialized_end=3964
47
+ _globals['_FONTSOURCE']._serialized_start=3966
48
+ _globals['_FONTSOURCE']._serialized_end=4019
49
+ _globals['_RADII']._serialized_start=4021
50
+ _globals['_RADII']._serialized_end=4081
51
+ _globals['_FONTSIZES']._serialized_start=4083
52
+ _globals['_FONTSIZES']._serialized_end=4167
53
+ _globals['_USERINFO']._serialized_start=4169
54
+ _globals['_USERINFO']._serialized_end=4266
55
+ _globals['_ENVIRONMENTINFO']._serialized_start=4268
56
+ _globals['_ENVIRONMENTINFO']._serialized_end=4376
55
57
  # @@protoc_insertion_point(module_scope)
@@ -202,6 +202,25 @@ class Config(_message.Message):
202
202
  VIEWER: Config.ToolbarMode.ValueType # 2
203
203
  MINIMAL: Config.ToolbarMode.ValueType # 3
204
204
 
205
+ class _ShowErrorLinks:
206
+ ValueType = _typing.NewType("ValueType", _builtins.int)
207
+ V: _TypeAlias = ValueType # noqa: Y015
208
+
209
+ class _ShowErrorLinksEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Config._ShowErrorLinks.ValueType], _builtins.type):
210
+ DESCRIPTOR: _descriptor.EnumDescriptor
211
+ SHOW_ERROR_LINKS_UNSPECIFIED: Config._ShowErrorLinks.ValueType # 0
212
+ SHOW_ERROR_LINKS_AUTO: Config._ShowErrorLinks.ValueType # 1
213
+ SHOW_ERROR_LINKS_TRUE: Config._ShowErrorLinks.ValueType # 2
214
+ SHOW_ERROR_LINKS_FALSE: Config._ShowErrorLinks.ValueType # 3
215
+
216
+ class ShowErrorLinks(_ShowErrorLinks, metaclass=_ShowErrorLinksEnumTypeWrapper):
217
+ """See config option "client.showErrorLinks"."""
218
+
219
+ SHOW_ERROR_LINKS_UNSPECIFIED: Config.ShowErrorLinks.ValueType # 0
220
+ SHOW_ERROR_LINKS_AUTO: Config.ShowErrorLinks.ValueType # 1
221
+ SHOW_ERROR_LINKS_TRUE: Config.ShowErrorLinks.ValueType # 2
222
+ SHOW_ERROR_LINKS_FALSE: Config.ShowErrorLinks.ValueType # 3
223
+
205
224
  GATHER_USAGE_STATS_FIELD_NUMBER: _builtins.int
206
225
  MAX_CACHED_MESSAGE_AGE_FIELD_NUMBER: _builtins.int
207
226
  MAPBOX_TOKEN_FIELD_NUMBER: _builtins.int
@@ -209,6 +228,7 @@ class Config(_message.Message):
209
228
  HIDE_TOP_BAR_FIELD_NUMBER: _builtins.int
210
229
  HIDE_SIDEBAR_NAV_FIELD_NUMBER: _builtins.int
211
230
  TOOLBAR_MODE_FIELD_NUMBER: _builtins.int
231
+ SHOW_ERROR_LINKS_FIELD_NUMBER: _builtins.int
212
232
  gather_usage_stats: _builtins.bool
213
233
  """See config option "browser.gatherUsageStats"."""
214
234
  max_cached_message_age: _builtins.int
@@ -222,6 +242,7 @@ class Config(_message.Message):
222
242
  hide_sidebar_nav: _builtins.bool
223
243
  """See config option "client.showSidebarNavigation"."""
224
244
  toolbar_mode: Global___Config.ToolbarMode.ValueType
245
+ show_error_links: Global___Config.ShowErrorLinks.ValueType
225
246
  def __init__(
226
247
  self,
227
248
  *,
@@ -232,8 +253,9 @@ class Config(_message.Message):
232
253
  hide_top_bar: _builtins.bool = ...,
233
254
  hide_sidebar_nav: _builtins.bool = ...,
234
255
  toolbar_mode: Global___Config.ToolbarMode.ValueType = ...,
256
+ show_error_links: Global___Config.ShowErrorLinks.ValueType = ...,
235
257
  ) -> None: ...
236
- _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_run_on_save", b"allow_run_on_save", "gather_usage_stats", b"gather_usage_stats", "hide_sidebar_nav", b"hide_sidebar_nav", "hide_top_bar", b"hide_top_bar", "mapbox_token", b"mapbox_token", "max_cached_message_age", b"max_cached_message_age", "toolbar_mode", b"toolbar_mode"] # noqa: Y015
258
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_run_on_save", b"allow_run_on_save", "gather_usage_stats", b"gather_usage_stats", "hide_sidebar_nav", b"hide_sidebar_nav", "hide_top_bar", b"hide_top_bar", "mapbox_token", b"mapbox_token", "max_cached_message_age", b"max_cached_message_age", "show_error_links", b"show_error_links", "toolbar_mode", b"toolbar_mode"] # noqa: Y015
237
259
  def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
238
260
 
239
261
  Global___Config: _TypeAlias = Config # noqa: Y015
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
15
15
  from streamlit.proto import LabelVisibilityMessage_pb2 as streamlit_dot_proto_dot_LabelVisibilityMessage__pb2
16
16
 
17
17
 
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cstreamlit/proto/Slider.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\"\xbe\x03\n\x06Slider\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x66orm_id\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\t\x12#\n\tdata_type\x18\x05 \x01(\x0e\x32\x10.Slider.DataType\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x06 \x03(\x01\x12\x0b\n\x03min\x18\x07 \x01(\x01\x12\x0b\n\x03max\x18\x08 \x01(\x01\x12\x0c\n\x04step\x18\t \x01(\x01\x12\r\n\x05value\x18\n \x03(\x01\x12\x11\n\tset_value\x18\x0b \x01(\x08\x12\x0f\n\x07options\x18\r \x03(\t\x12\x0c\n\x04help\x18\x0e \x01(\t\x12\x10\n\x08\x64isabled\x18\x0f \x01(\x08\x12\x31\n\x10label_visibility\x18\x10 \x01(\x0b\x32\x17.LabelVisibilityMessage\x12\x1a\n\x04type\x18\x11 \x01(\x0e\x32\x0c.Slider.Type\"@\n\x08\x44\x61taType\x12\x07\n\x03INT\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\x0c\n\x08\x44\x41TETIME\x10\x02\x12\x08\n\x04\x44\x41TE\x10\x03\x12\x08\n\x04TIME\x10\x04\"6\n\x04Type\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06SLIDER\x10\x01\x12\x11\n\rSELECT_SLIDER\x10\x02\x42+\n\x1c\x63om.snowflake.apps.streamlitB\x0bSliderProtob\x06proto3')
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cstreamlit/proto/Slider.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\"\xd1\x03\n\x06Slider\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x66orm_id\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\t\x12#\n\tdata_type\x18\x05 \x01(\x0e\x32\x10.Slider.DataType\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x06 \x03(\x01\x12\x0b\n\x03min\x18\x07 \x01(\x01\x12\x0b\n\x03max\x18\x08 \x01(\x01\x12\x0c\n\x04step\x18\t \x01(\x01\x12\r\n\x05value\x18\n \x03(\x01\x12\x11\n\tset_value\x18\x0b \x01(\x08\x12\x0f\n\x07options\x18\r \x03(\t\x12\x0c\n\x04help\x18\x0e \x01(\t\x12\x10\n\x08\x64isabled\x18\x0f \x01(\x08\x12\x31\n\x10label_visibility\x18\x10 \x01(\x0b\x32\x17.LabelVisibilityMessage\x12\x1a\n\x04type\x18\x11 \x01(\x0e\x32\x0c.Slider.Type\x12\x11\n\traw_value\x18\x12 \x03(\t\"@\n\x08\x44\x61taType\x12\x07\n\x03INT\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\x0c\n\x08\x44\x41TETIME\x10\x02\x12\x08\n\x04\x44\x41TE\x10\x03\x12\x08\n\x04TIME\x10\x04\"6\n\x04Type\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06SLIDER\x10\x01\x12\x11\n\rSELECT_SLIDER\x10\x02\x42+\n\x1c\x63om.snowflake.apps.streamlitB\x0bSliderProtob\x06proto3')
19
19
 
20
20
  _globals = globals()
21
21
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -24,9 +24,9 @@ if not _descriptor._USE_C_DESCRIPTORS:
24
24
  _globals['DESCRIPTOR']._loaded_options = None
25
25
  _globals['DESCRIPTOR']._serialized_options = b'\n\034com.snowflake.apps.streamlitB\013SliderProto'
26
26
  _globals['_SLIDER']._serialized_start=79
27
- _globals['_SLIDER']._serialized_end=525
28
- _globals['_SLIDER_DATATYPE']._serialized_start=405
29
- _globals['_SLIDER_DATATYPE']._serialized_end=469
30
- _globals['_SLIDER_TYPE']._serialized_start=471
31
- _globals['_SLIDER_TYPE']._serialized_end=525
27
+ _globals['_SLIDER']._serialized_end=544
28
+ _globals['_SLIDER_DATATYPE']._serialized_start=424
29
+ _globals['_SLIDER_DATATYPE']._serialized_end=488
30
+ _globals['_SLIDER_TYPE']._serialized_start=490
31
+ _globals['_SLIDER_TYPE']._serialized_end=544
32
32
  # @@protoc_insertion_point(module_scope)
@@ -96,6 +96,7 @@ class Slider(_message.Message):
96
96
  DISABLED_FIELD_NUMBER: _builtins.int
97
97
  LABEL_VISIBILITY_FIELD_NUMBER: _builtins.int
98
98
  TYPE_FIELD_NUMBER: _builtins.int
99
+ RAW_VALUE_FIELD_NUMBER: _builtins.int
99
100
  id: _builtins.str
100
101
  form_id: _builtins.str
101
102
  label: _builtins.str
@@ -116,6 +117,12 @@ class Slider(_message.Message):
116
117
  def options(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
117
118
  @_builtins.property
118
119
  def label_visibility(self) -> _LabelVisibilityMessage_pb2.LabelVisibilityMessage: ...
120
+ @_builtins.property
121
+ def raw_value(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]:
122
+ """String-based value for select_slider to support dynamic option changes.
123
+ Stores formatted option strings instead of indices.
124
+ """
125
+
119
126
  def __init__(
120
127
  self,
121
128
  *,
@@ -135,10 +142,11 @@ class Slider(_message.Message):
135
142
  disabled: _builtins.bool = ...,
136
143
  label_visibility: _LabelVisibilityMessage_pb2.LabelVisibilityMessage | None = ...,
137
144
  type: Global___Slider.Type.ValueType = ...,
145
+ raw_value: _abc.Iterable[_builtins.str] | None = ...,
138
146
  ) -> None: ...
139
147
  _HasFieldArgType: _TypeAlias = _typing.Literal["label_visibility", b"label_visibility"] # noqa: Y015
140
148
  def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
141
- _ClearFieldArgType: _TypeAlias = _typing.Literal["data_type", b"data_type", "default", b"default", "disabled", b"disabled", "form_id", b"form_id", "format", b"format", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility", "max", b"max", "min", b"min", "options", b"options", "set_value", b"set_value", "step", b"step", "type", b"type", "value", b"value"] # noqa: Y015
149
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["data_type", b"data_type", "default", b"default", "disabled", b"disabled", "form_id", b"form_id", "format", b"format", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility", "max", b"max", "min", b"min", "options", b"options", "raw_value", b"raw_value", "set_value", b"set_value", "step", b"step", "type", b"type", "value", b"value"] # noqa: Y015
142
150
  def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
143
151
 
144
152
  Global___Slider: _TypeAlias = Slider # noqa: Y015
@@ -1007,6 +1007,24 @@ def _get_toolbar_mode() -> Config.ToolbarMode.ValueType:
1007
1007
  return enum_value
1008
1008
 
1009
1009
 
1010
+ def _get_show_error_links() -> Config.ShowErrorLinks.ValueType:
1011
+ config_key = "client.showErrorLinks"
1012
+ allowed_values = ["auto", "true", "false"]
1013
+ value_to_enum = {
1014
+ "auto": Config.ShowErrorLinks.SHOW_ERROR_LINKS_AUTO,
1015
+ "true": Config.ShowErrorLinks.SHOW_ERROR_LINKS_TRUE,
1016
+ "false": Config.ShowErrorLinks.SHOW_ERROR_LINKS_FALSE,
1017
+ }
1018
+ config_value = config.get_option(config_key)
1019
+ if config_value not in allowed_values:
1020
+ raise ValueError(
1021
+ f"Config {config_key!r} expects to have one of "
1022
+ f"the following values: {', '.join(allowed_values)}. "
1023
+ f"Current value: {config_value}"
1024
+ )
1025
+ return value_to_enum[config_value]
1026
+
1027
+
1010
1028
  def _populate_config_msg(msg: Config) -> None:
1011
1029
  msg.gather_usage_stats = config.get_option("browser.gatherUsageStats")
1012
1030
  msg.max_cached_message_age = config.get_option("global.maxCachedMessageAge")
@@ -1015,6 +1033,7 @@ def _populate_config_msg(msg: Config) -> None:
1015
1033
  if config.get_option("client.showSidebarNavigation") is False:
1016
1034
  msg.hide_sidebar_nav = True
1017
1035
  msg.toolbar_mode = _get_toolbar_mode()
1036
+ msg.show_error_links = _get_show_error_links()
1018
1037
 
1019
1038
 
1020
1039
  def _parse_and_populate_chart_colors(
@@ -528,6 +528,23 @@ class ScriptRunner:
528
528
  and rerun_data.widget_states.widgets is not None
529
529
  ):
530
530
  widget_ids = {w.id for w in rerun_data.widget_states.widgets}
531
+
532
+ # For MPA page transitions: filter query params BEFORE cleanup.
533
+ # This uses existing bindings to remove params from other pages,
534
+ # ensuring st.query_params is accurate when the new page runs.
535
+ # (st.query_params in user code will reflect the correct params for the new page)
536
+ main_script_hash = self._pages_manager.main_script_hash
537
+ valid_script_hashes = {main_script_hash, page_script_hash}
538
+ with self._session_state.query_params() as qp:
539
+ qp.populate_from_query_string(
540
+ rerun_data.query_string, valid_script_hashes
541
+ )
542
+ # Set initial params from FILTERED state for widget seeding.
543
+ # This prevents stale params from previous pages from seeding
544
+ # widgets on the new page if keys collide.
545
+ qp.set_initial_query_params_from_current()
546
+
547
+ # Now safe to do normal cleanup - filtering already done
531
548
  self._session_state.on_script_finished(widget_ids)
532
549
 
533
550
  fragment_ids_this_run: list[str] | None = (
@@ -24,7 +24,6 @@ from typing import (
24
24
  Final,
25
25
  TypeAlias,
26
26
  )
27
- from urllib import parse
28
27
 
29
28
  from streamlit.errors import (
30
29
  NoSessionContext,
@@ -142,6 +141,9 @@ class ScriptRunContext:
142
141
  cached_message_hashes: set[str] | None = None,
143
142
  context_info: ContextInfo | None = None,
144
143
  ) -> None:
144
+ # Check if this is a same-page rerun BEFORE updating page_script_hash
145
+ is_same_page = self.page_script_hash == page_script_hash
146
+
145
147
  self.cursors = {}
146
148
  self.widget_ids_this_run = set()
147
149
  self.widget_user_keys_this_run = set()
@@ -163,16 +165,17 @@ class ScriptRunContext:
163
165
 
164
166
  in_cached_function.set(False)
165
167
 
166
- parsed_query_params = parse.parse_qs(query_string, keep_blank_values=True)
167
168
  with self.session_state.query_params() as qp:
168
- qp.clear_with_no_forward_msg()
169
- for key, val in parsed_query_params.items():
170
- if len(val) == 0:
171
- qp.set_with_no_forward_msg(key, val="")
172
- elif len(val) == 1:
173
- qp.set_with_no_forward_msg(key, val=val[-1])
174
- else:
175
- qp.set_with_no_forward_msg(key, val)
169
+ # For same-page reruns (widget interactions), populate _query_params from URL
170
+ # and set initial params for widget seeding.
171
+ # For page transitions, both populate_from_query_string() AND
172
+ # set_initial_query_params_from_current() are called in script_runner.py
173
+ # BEFORE reset() to ensure filtering is applied to both _query_params
174
+ # AND _initial_query_params, preventing stale params from previous pages
175
+ # from seeding widgets on the new page.
176
+ if is_same_page:
177
+ qp.set_initial_query_params(query_string)
178
+ qp.populate_from_query_string(query_string)
176
179
 
177
180
  def on_script_start(self) -> None:
178
181
  self._has_script_started = True
@@ -12,7 +12,12 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from streamlit.runtime.state.common import WidgetArgs, WidgetCallback, WidgetKwargs
15
+ from streamlit.runtime.state.common import (
16
+ BindOption,
17
+ WidgetArgs,
18
+ WidgetCallback,
19
+ WidgetKwargs,
20
+ )
16
21
  from streamlit.runtime.state.query_params_proxy import QueryParamsProxy
17
22
  from streamlit.runtime.state.safe_session_state import SafeSessionState
18
23
  from streamlit.runtime.state.session_state import (
@@ -28,6 +33,7 @@ from streamlit.runtime.state.widgets import register_widget
28
33
 
29
34
  __all__ = [
30
35
  "SCRIPT_RUN_WITHOUT_ERRORS_KEY",
36
+ "BindOption",
31
37
  "QueryParamsProxy",
32
38
  "SafeSessionState",
33
39
  "SessionState",
@@ -51,6 +51,10 @@ WidgetArgs: TypeAlias = tuple[Any, ...] | list[Any]
51
51
  WidgetKwargs: TypeAlias = dict[str, Any]
52
52
  WidgetCallback: TypeAlias = Callable[..., None]
53
53
 
54
+ # Type for the bind parameter on widgets
55
+ # Currently only supports binding to query params
56
+ BindOption: TypeAlias = Literal["query-params"] | None
57
+
54
58
  # A deserializer receives the value from whatever field is set on the
55
59
  # WidgetState proto, and returns a regular python value. A serializer
56
60
  # receives a regular python value, and returns something suitable for
@@ -147,6 +151,15 @@ class WidgetMetadata(Generic[T]):
147
151
  # multiple internal widget states.
148
152
  presenter: WidgetValuePresenter | None = None
149
153
 
154
+ # Optional binding for the widget's value to external state (e.g. query params)
155
+ bind: BindOption = None
156
+
157
+ # TODO(query-params): Remove formatted_options once all selection widgets use
158
+ # string-based wire formats (string_value/string_array_value).
159
+ # Currently used for query param binding to convert indices back to human-readable
160
+ # option strings in URLs when auto-correcting filtered values.
161
+ formatted_options: list[str] | None = None
162
+
150
163
  def __repr__(self) -> str:
151
164
  return util.repr_(self)
152
165