streamlit-nightly 1.43.2.dev20250307__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. streamlit/__init__.py +306 -0
  2. streamlit/__main__.py +20 -0
  3. streamlit/auth_util.py +218 -0
  4. streamlit/cli_util.py +105 -0
  5. streamlit/column_config.py +56 -0
  6. streamlit/commands/__init__.py +13 -0
  7. streamlit/commands/echo.py +126 -0
  8. streamlit/commands/execution_control.py +238 -0
  9. streamlit/commands/experimental_query_params.py +169 -0
  10. streamlit/commands/logo.py +189 -0
  11. streamlit/commands/navigation.py +385 -0
  12. streamlit/commands/page_config.py +311 -0
  13. streamlit/components/__init__.py +13 -0
  14. streamlit/components/lib/__init__.py +13 -0
  15. streamlit/components/lib/local_component_registry.py +84 -0
  16. streamlit/components/types/__init__.py +13 -0
  17. streamlit/components/types/base_component_registry.py +99 -0
  18. streamlit/components/types/base_custom_component.py +150 -0
  19. streamlit/components/v1/__init__.py +31 -0
  20. streamlit/components/v1/component_arrow.py +141 -0
  21. streamlit/components/v1/component_registry.py +130 -0
  22. streamlit/components/v1/components.py +38 -0
  23. streamlit/components/v1/custom_component.py +243 -0
  24. streamlit/config.py +1513 -0
  25. streamlit/config_option.py +311 -0
  26. streamlit/config_util.py +177 -0
  27. streamlit/connections/__init__.py +28 -0
  28. streamlit/connections/base_connection.py +174 -0
  29. streamlit/connections/snowflake_connection.py +562 -0
  30. streamlit/connections/snowpark_connection.py +213 -0
  31. streamlit/connections/sql_connection.py +425 -0
  32. streamlit/connections/util.py +97 -0
  33. streamlit/cursor.py +210 -0
  34. streamlit/dataframe_util.py +1416 -0
  35. streamlit/delta_generator.py +602 -0
  36. streamlit/delta_generator_singletons.py +204 -0
  37. streamlit/deprecation_util.py +209 -0
  38. streamlit/development.py +21 -0
  39. streamlit/elements/__init__.py +13 -0
  40. streamlit/elements/alert.py +234 -0
  41. streamlit/elements/arrow.py +962 -0
  42. streamlit/elements/balloons.py +47 -0
  43. streamlit/elements/bokeh_chart.py +133 -0
  44. streamlit/elements/code.py +114 -0
  45. streamlit/elements/deck_gl_json_chart.py +546 -0
  46. streamlit/elements/dialog_decorator.py +267 -0
  47. streamlit/elements/doc_string.py +558 -0
  48. streamlit/elements/empty.py +130 -0
  49. streamlit/elements/exception.py +331 -0
  50. streamlit/elements/form.py +354 -0
  51. streamlit/elements/graphviz_chart.py +150 -0
  52. streamlit/elements/heading.py +302 -0
  53. streamlit/elements/html.py +105 -0
  54. streamlit/elements/iframe.py +191 -0
  55. streamlit/elements/image.py +196 -0
  56. streamlit/elements/json.py +139 -0
  57. streamlit/elements/layouts.py +879 -0
  58. streamlit/elements/lib/__init__.py +13 -0
  59. streamlit/elements/lib/built_in_chart_utils.py +1157 -0
  60. streamlit/elements/lib/color_util.py +263 -0
  61. streamlit/elements/lib/column_config_utils.py +542 -0
  62. streamlit/elements/lib/column_types.py +2188 -0
  63. streamlit/elements/lib/dialog.py +147 -0
  64. streamlit/elements/lib/dicttools.py +154 -0
  65. streamlit/elements/lib/event_utils.py +37 -0
  66. streamlit/elements/lib/file_uploader_utils.py +66 -0
  67. streamlit/elements/lib/form_utils.py +77 -0
  68. streamlit/elements/lib/image_utils.py +441 -0
  69. streamlit/elements/lib/js_number.py +105 -0
  70. streamlit/elements/lib/mutable_status_container.py +183 -0
  71. streamlit/elements/lib/options_selector_utils.py +250 -0
  72. streamlit/elements/lib/pandas_styler_utils.py +274 -0
  73. streamlit/elements/lib/policies.py +194 -0
  74. streamlit/elements/lib/streamlit_plotly_theme.py +207 -0
  75. streamlit/elements/lib/subtitle_utils.py +176 -0
  76. streamlit/elements/lib/utils.py +250 -0
  77. streamlit/elements/map.py +508 -0
  78. streamlit/elements/markdown.py +277 -0
  79. streamlit/elements/media.py +793 -0
  80. streamlit/elements/metric.py +301 -0
  81. streamlit/elements/plotly_chart.py +546 -0
  82. streamlit/elements/progress.py +156 -0
  83. streamlit/elements/pyplot.py +194 -0
  84. streamlit/elements/snow.py +47 -0
  85. streamlit/elements/spinner.py +113 -0
  86. streamlit/elements/text.py +76 -0
  87. streamlit/elements/toast.py +98 -0
  88. streamlit/elements/vega_charts.py +1984 -0
  89. streamlit/elements/widgets/__init__.py +13 -0
  90. streamlit/elements/widgets/audio_input.py +310 -0
  91. streamlit/elements/widgets/button.py +1123 -0
  92. streamlit/elements/widgets/button_group.py +1008 -0
  93. streamlit/elements/widgets/camera_input.py +263 -0
  94. streamlit/elements/widgets/chat.py +647 -0
  95. streamlit/elements/widgets/checkbox.py +352 -0
  96. streamlit/elements/widgets/color_picker.py +265 -0
  97. streamlit/elements/widgets/data_editor.py +983 -0
  98. streamlit/elements/widgets/file_uploader.py +486 -0
  99. streamlit/elements/widgets/multiselect.py +338 -0
  100. streamlit/elements/widgets/number_input.py +545 -0
  101. streamlit/elements/widgets/radio.py +407 -0
  102. streamlit/elements/widgets/select_slider.py +437 -0
  103. streamlit/elements/widgets/selectbox.py +366 -0
  104. streamlit/elements/widgets/slider.py +880 -0
  105. streamlit/elements/widgets/text_widgets.py +628 -0
  106. streamlit/elements/widgets/time_widgets.py +970 -0
  107. streamlit/elements/write.py +574 -0
  108. streamlit/emojis.py +34 -0
  109. streamlit/env_util.py +61 -0
  110. streamlit/error_util.py +105 -0
  111. streamlit/errors.py +452 -0
  112. streamlit/external/__init__.py +13 -0
  113. streamlit/external/langchain/__init__.py +23 -0
  114. streamlit/external/langchain/streamlit_callback_handler.py +406 -0
  115. streamlit/file_util.py +247 -0
  116. streamlit/git_util.py +173 -0
  117. streamlit/hello/__init__.py +13 -0
  118. streamlit/hello/animation_demo.py +82 -0
  119. streamlit/hello/dataframe_demo.py +71 -0
  120. streamlit/hello/hello.py +37 -0
  121. streamlit/hello/mapping_demo.py +114 -0
  122. streamlit/hello/plotting_demo.py +55 -0
  123. streamlit/hello/streamlit_app.py +55 -0
  124. streamlit/hello/utils.py +28 -0
  125. streamlit/logger.py +130 -0
  126. streamlit/material_icon_names.py +25 -0
  127. streamlit/navigation/__init__.py +13 -0
  128. streamlit/navigation/page.py +302 -0
  129. streamlit/net_util.py +125 -0
  130. streamlit/platform.py +33 -0
  131. streamlit/proto/Alert_pb2.py +29 -0
  132. streamlit/proto/Alert_pb2.pyi +90 -0
  133. streamlit/proto/AppPage_pb2.py +27 -0
  134. streamlit/proto/AppPage_pb2.pyi +64 -0
  135. streamlit/proto/ArrowNamedDataSet_pb2.py +28 -0
  136. streamlit/proto/ArrowNamedDataSet_pb2.pyi +57 -0
  137. streamlit/proto/ArrowVegaLiteChart_pb2.py +29 -0
  138. streamlit/proto/ArrowVegaLiteChart_pb2.pyi +84 -0
  139. streamlit/proto/Arrow_pb2.py +33 -0
  140. streamlit/proto/Arrow_pb2.pyi +188 -0
  141. streamlit/proto/AudioInput_pb2.py +28 -0
  142. streamlit/proto/AudioInput_pb2.pyi +58 -0
  143. streamlit/proto/Audio_pb2.py +27 -0
  144. streamlit/proto/Audio_pb2.pyi +58 -0
  145. streamlit/proto/AuthRedirect_pb2.py +27 -0
  146. streamlit/proto/AuthRedirect_pb2.pyi +41 -0
  147. streamlit/proto/AutoRerun_pb2.py +27 -0
  148. streamlit/proto/AutoRerun_pb2.pyi +45 -0
  149. streamlit/proto/BackMsg_pb2.py +29 -0
  150. streamlit/proto/BackMsg_pb2.pyi +105 -0
  151. streamlit/proto/Balloons_pb2.py +27 -0
  152. streamlit/proto/Balloons_pb2.pyi +43 -0
  153. streamlit/proto/Block_pb2.py +53 -0
  154. streamlit/proto/Block_pb2.pyi +322 -0
  155. streamlit/proto/BokehChart_pb2.py +27 -0
  156. streamlit/proto/BokehChart_pb2.pyi +49 -0
  157. streamlit/proto/ButtonGroup_pb2.py +36 -0
  158. streamlit/proto/ButtonGroup_pb2.pyi +169 -0
  159. streamlit/proto/Button_pb2.py +27 -0
  160. streamlit/proto/Button_pb2.pyi +71 -0
  161. streamlit/proto/CameraInput_pb2.py +28 -0
  162. streamlit/proto/CameraInput_pb2.pyi +58 -0
  163. streamlit/proto/ChatInput_pb2.py +31 -0
  164. streamlit/proto/ChatInput_pb2.pyi +111 -0
  165. streamlit/proto/Checkbox_pb2.py +30 -0
  166. streamlit/proto/Checkbox_pb2.pyi +90 -0
  167. streamlit/proto/ClientState_pb2.py +30 -0
  168. streamlit/proto/ClientState_pb2.pyi +90 -0
  169. streamlit/proto/Code_pb2.py +27 -0
  170. streamlit/proto/Code_pb2.pyi +55 -0
  171. streamlit/proto/ColorPicker_pb2.py +28 -0
  172. streamlit/proto/ColorPicker_pb2.pyi +67 -0
  173. streamlit/proto/Common_pb2.py +51 -0
  174. streamlit/proto/Common_pb2.pyi +293 -0
  175. streamlit/proto/Components_pb2.py +35 -0
  176. streamlit/proto/Components_pb2.pyi +172 -0
  177. streamlit/proto/DataFrame_pb2.py +56 -0
  178. streamlit/proto/DataFrame_pb2.pyi +397 -0
  179. streamlit/proto/DateInput_pb2.py +28 -0
  180. streamlit/proto/DateInput_pb2.pyi +83 -0
  181. streamlit/proto/DeckGlJsonChart_pb2.py +29 -0
  182. streamlit/proto/DeckGlJsonChart_pb2.pyi +102 -0
  183. streamlit/proto/Delta_pb2.py +31 -0
  184. streamlit/proto/Delta_pb2.pyi +74 -0
  185. streamlit/proto/DocString_pb2.py +29 -0
  186. streamlit/proto/DocString_pb2.pyi +93 -0
  187. streamlit/proto/DownloadButton_pb2.py +27 -0
  188. streamlit/proto/DownloadButton_pb2.pyi +70 -0
  189. streamlit/proto/Element_pb2.py +78 -0
  190. streamlit/proto/Element_pb2.pyi +312 -0
  191. streamlit/proto/Empty_pb2.py +27 -0
  192. streamlit/proto/Empty_pb2.pyi +36 -0
  193. streamlit/proto/Exception_pb2.py +27 -0
  194. streamlit/proto/Exception_pb2.pyi +72 -0
  195. streamlit/proto/Favicon_pb2.py +27 -0
  196. streamlit/proto/Favicon_pb2.pyi +40 -0
  197. streamlit/proto/FileUploader_pb2.py +28 -0
  198. streamlit/proto/FileUploader_pb2.pyi +78 -0
  199. streamlit/proto/ForwardMsg_pb2.py +53 -0
  200. streamlit/proto/ForwardMsg_pb2.pyi +293 -0
  201. streamlit/proto/GitInfo_pb2.py +29 -0
  202. streamlit/proto/GitInfo_pb2.pyi +83 -0
  203. streamlit/proto/GraphVizChart_pb2.py +27 -0
  204. streamlit/proto/GraphVizChart_pb2.pyi +53 -0
  205. streamlit/proto/Heading_pb2.py +27 -0
  206. streamlit/proto/Heading_pb2.pyi +56 -0
  207. streamlit/proto/Html_pb2.py +27 -0
  208. streamlit/proto/Html_pb2.pyi +42 -0
  209. streamlit/proto/IFrame_pb2.py +27 -0
  210. streamlit/proto/IFrame_pb2.pyi +59 -0
  211. streamlit/proto/Image_pb2.py +29 -0
  212. streamlit/proto/Image_pb2.pyi +84 -0
  213. streamlit/proto/Json_pb2.py +27 -0
  214. streamlit/proto/Json_pb2.pyi +53 -0
  215. streamlit/proto/LabelVisibilityMessage_pb2.py +29 -0
  216. streamlit/proto/LabelVisibilityMessage_pb2.pyi +68 -0
  217. streamlit/proto/LinkButton_pb2.py +27 -0
  218. streamlit/proto/LinkButton_pb2.pyi +58 -0
  219. streamlit/proto/Logo_pb2.py +27 -0
  220. streamlit/proto/Logo_pb2.pyi +51 -0
  221. streamlit/proto/Markdown_pb2.py +29 -0
  222. streamlit/proto/Markdown_pb2.pyi +86 -0
  223. streamlit/proto/Metric_pb2.py +32 -0
  224. streamlit/proto/Metric_pb2.pyi +101 -0
  225. streamlit/proto/MetricsEvent_pb2.py +30 -0
  226. streamlit/proto/MetricsEvent_pb2.pyi +200 -0
  227. streamlit/proto/MultiSelect_pb2.py +28 -0
  228. streamlit/proto/MultiSelect_pb2.pyi +81 -0
  229. streamlit/proto/NamedDataSet_pb2.py +28 -0
  230. streamlit/proto/NamedDataSet_pb2.pyi +59 -0
  231. streamlit/proto/Navigation_pb2.py +30 -0
  232. streamlit/proto/Navigation_pb2.pyi +84 -0
  233. streamlit/proto/NewSession_pb2.py +51 -0
  234. streamlit/proto/NewSession_pb2.pyi +481 -0
  235. streamlit/proto/NumberInput_pb2.py +30 -0
  236. streamlit/proto/NumberInput_pb2.pyi +121 -0
  237. streamlit/proto/PageConfig_pb2.py +33 -0
  238. streamlit/proto/PageConfig_pb2.pyi +126 -0
  239. streamlit/proto/PageInfo_pb2.py +27 -0
  240. streamlit/proto/PageInfo_pb2.pyi +43 -0
  241. streamlit/proto/PageLink_pb2.py +27 -0
  242. streamlit/proto/PageLink_pb2.pyi +63 -0
  243. streamlit/proto/PageNotFound_pb2.py +27 -0
  244. streamlit/proto/PageNotFound_pb2.pyi +42 -0
  245. streamlit/proto/PageProfile_pb2.py +31 -0
  246. streamlit/proto/PageProfile_pb2.pyi +127 -0
  247. streamlit/proto/PagesChanged_pb2.py +28 -0
  248. streamlit/proto/PagesChanged_pb2.pyi +48 -0
  249. streamlit/proto/ParentMessage_pb2.py +27 -0
  250. streamlit/proto/ParentMessage_pb2.pyi +46 -0
  251. streamlit/proto/PlotlyChart_pb2.py +31 -0
  252. streamlit/proto/PlotlyChart_pb2.pyi +131 -0
  253. streamlit/proto/Progress_pb2.py +27 -0
  254. streamlit/proto/Progress_pb2.pyi +43 -0
  255. streamlit/proto/Radio_pb2.py +28 -0
  256. streamlit/proto/Radio_pb2.pyi +84 -0
  257. streamlit/proto/RootContainer_pb2.py +27 -0
  258. streamlit/proto/RootContainer_pb2.pyi +56 -0
  259. streamlit/proto/Selectbox_pb2.py +28 -0
  260. streamlit/proto/Selectbox_pb2.pyi +80 -0
  261. streamlit/proto/SessionEvent_pb2.py +28 -0
  262. streamlit/proto/SessionEvent_pb2.pyi +62 -0
  263. streamlit/proto/SessionStatus_pb2.py +27 -0
  264. streamlit/proto/SessionStatus_pb2.pyi +57 -0
  265. streamlit/proto/Skeleton_pb2.py +29 -0
  266. streamlit/proto/Skeleton_pb2.pyi +71 -0
  267. streamlit/proto/Slider_pb2.py +32 -0
  268. streamlit/proto/Slider_pb2.pyi +142 -0
  269. streamlit/proto/Snow_pb2.py +27 -0
  270. streamlit/proto/Snow_pb2.pyi +43 -0
  271. streamlit/proto/Spinner_pb2.py +27 -0
  272. streamlit/proto/Spinner_pb2.pyi +49 -0
  273. streamlit/proto/TextArea_pb2.py +28 -0
  274. streamlit/proto/TextArea_pb2.pyi +80 -0
  275. streamlit/proto/TextInput_pb2.py +30 -0
  276. streamlit/proto/TextInput_pb2.pyi +107 -0
  277. streamlit/proto/Text_pb2.py +27 -0
  278. streamlit/proto/Text_pb2.pyi +46 -0
  279. streamlit/proto/TimeInput_pb2.py +28 -0
  280. streamlit/proto/TimeInput_pb2.pyi +74 -0
  281. streamlit/proto/Toast_pb2.py +27 -0
  282. streamlit/proto/Toast_pb2.pyi +45 -0
  283. streamlit/proto/VegaLiteChart_pb2.py +29 -0
  284. streamlit/proto/VegaLiteChart_pb2.pyi +71 -0
  285. streamlit/proto/Video_pb2.py +31 -0
  286. streamlit/proto/Video_pb2.pyi +117 -0
  287. streamlit/proto/WidgetStates_pb2.py +31 -0
  288. streamlit/proto/WidgetStates_pb2.pyi +126 -0
  289. streamlit/proto/__init__.py +15 -0
  290. streamlit/proto/openmetrics_data_model_pb2.py +60 -0
  291. streamlit/proto/openmetrics_data_model_pb2.pyi +522 -0
  292. streamlit/py.typed +0 -0
  293. streamlit/runtime/__init__.py +50 -0
  294. streamlit/runtime/app_session.py +982 -0
  295. streamlit/runtime/caching/__init__.py +98 -0
  296. streamlit/runtime/caching/cache_data_api.py +665 -0
  297. streamlit/runtime/caching/cache_errors.py +142 -0
  298. streamlit/runtime/caching/cache_resource_api.py +527 -0
  299. streamlit/runtime/caching/cache_type.py +33 -0
  300. streamlit/runtime/caching/cache_utils.py +523 -0
  301. streamlit/runtime/caching/cached_message_replay.py +290 -0
  302. streamlit/runtime/caching/hashing.py +637 -0
  303. streamlit/runtime/caching/legacy_cache_api.py +169 -0
  304. streamlit/runtime/caching/storage/__init__.py +29 -0
  305. streamlit/runtime/caching/storage/cache_storage_protocol.py +239 -0
  306. streamlit/runtime/caching/storage/dummy_cache_storage.py +60 -0
  307. streamlit/runtime/caching/storage/in_memory_cache_storage_wrapper.py +145 -0
  308. streamlit/runtime/caching/storage/local_disk_cache_storage.py +223 -0
  309. streamlit/runtime/connection_factory.py +436 -0
  310. streamlit/runtime/context.py +280 -0
  311. streamlit/runtime/credentials.py +364 -0
  312. streamlit/runtime/forward_msg_cache.py +296 -0
  313. streamlit/runtime/forward_msg_queue.py +240 -0
  314. streamlit/runtime/fragment.py +477 -0
  315. streamlit/runtime/media_file_manager.py +234 -0
  316. streamlit/runtime/media_file_storage.py +143 -0
  317. streamlit/runtime/memory_media_file_storage.py +181 -0
  318. streamlit/runtime/memory_session_storage.py +77 -0
  319. streamlit/runtime/memory_uploaded_file_manager.py +138 -0
  320. streamlit/runtime/metrics_util.py +486 -0
  321. streamlit/runtime/pages_manager.py +165 -0
  322. streamlit/runtime/runtime.py +792 -0
  323. streamlit/runtime/runtime_util.py +106 -0
  324. streamlit/runtime/script_data.py +46 -0
  325. streamlit/runtime/scriptrunner/__init__.py +38 -0
  326. streamlit/runtime/scriptrunner/exec_code.py +159 -0
  327. streamlit/runtime/scriptrunner/magic.py +273 -0
  328. streamlit/runtime/scriptrunner/magic_funcs.py +32 -0
  329. streamlit/runtime/scriptrunner/script_cache.py +89 -0
  330. streamlit/runtime/scriptrunner/script_runner.py +756 -0
  331. streamlit/runtime/scriptrunner_utils/__init__.py +19 -0
  332. streamlit/runtime/scriptrunner_utils/exceptions.py +48 -0
  333. streamlit/runtime/scriptrunner_utils/script_requests.py +307 -0
  334. streamlit/runtime/scriptrunner_utils/script_run_context.py +287 -0
  335. streamlit/runtime/secrets.py +534 -0
  336. streamlit/runtime/session_manager.py +394 -0
  337. streamlit/runtime/state/__init__.py +41 -0
  338. streamlit/runtime/state/common.py +191 -0
  339. streamlit/runtime/state/query_params.py +205 -0
  340. streamlit/runtime/state/query_params_proxy.py +218 -0
  341. streamlit/runtime/state/safe_session_state.py +138 -0
  342. streamlit/runtime/state/session_state.py +772 -0
  343. streamlit/runtime/state/session_state_proxy.py +153 -0
  344. streamlit/runtime/state/widgets.py +135 -0
  345. streamlit/runtime/stats.py +109 -0
  346. streamlit/runtime/uploaded_file_manager.py +148 -0
  347. streamlit/runtime/websocket_session_manager.py +167 -0
  348. streamlit/source_util.py +98 -0
  349. streamlit/static/favicon.png +0 -0
  350. streamlit/static/index.html +61 -0
  351. streamlit/static/static/css/index.Bmkmz40k.css +1 -0
  352. streamlit/static/static/css/index.DpJG_94W.css +1 -0
  353. streamlit/static/static/css/index.DzuxGC_t.css +1 -0
  354. streamlit/static/static/js/FileDownload.esm.Bp9m5jrx.js +1 -0
  355. streamlit/static/static/js/FileHelper.D_3pbilj.js +5 -0
  356. streamlit/static/static/js/FormClearHelper.Ct2rwLXo.js +1 -0
  357. streamlit/static/static/js/Hooks.BKdzj5MJ.js +1 -0
  358. streamlit/static/static/js/InputInstructions.DB3QGNJP.js +1 -0
  359. streamlit/static/static/js/ProgressBar.D40A5xc2.js +2 -0
  360. streamlit/static/static/js/RenderInPortalIfExists.DLUCooTN.js +1 -0
  361. streamlit/static/static/js/Toolbar.BiGGIQun.js +1 -0
  362. streamlit/static/static/js/UploadFileInfo.C-jY39rj.js +1 -0
  363. streamlit/static/static/js/base-input.CQBQT24M.js +4 -0
  364. streamlit/static/static/js/checkbox.Buj8gd_M.js +9 -0
  365. streamlit/static/static/js/createDownloadLinkElement.DZMwyjvU.js +1 -0
  366. streamlit/static/static/js/createSuper.CesK3I23.js +1 -0
  367. streamlit/static/static/js/data-grid-overlay-editor.B69OOFM4.js +1 -0
  368. streamlit/static/static/js/downloader.BZQhlBNT.js +1 -0
  369. streamlit/static/static/js/es6.D9Zhqujy.js +2 -0
  370. streamlit/static/static/js/iframeResizer.contentWindow.CAzcBpCC.js +1 -0
  371. streamlit/static/static/js/index.08vcOOvb.js +1 -0
  372. streamlit/static/static/js/index.0uqKfJUS.js +1 -0
  373. streamlit/static/static/js/index.B02M5u69.js +203 -0
  374. streamlit/static/static/js/index.B7mcZKMx.js +1 -0
  375. streamlit/static/static/js/index.BAQDHFA_.js +1 -0
  376. streamlit/static/static/js/index.BI60cMVr.js +2 -0
  377. streamlit/static/static/js/index.BLug2inK.js +1 -0
  378. streamlit/static/static/js/index.BM6TMY8g.js +2 -0
  379. streamlit/static/static/js/index.BZ9p1t7G.js +1 -0
  380. streamlit/static/static/js/index.BZqa87a1.js +2 -0
  381. streamlit/static/static/js/index.BcsRUzZZ.js +1 -0
  382. streamlit/static/static/js/index.BgVMiY_P.js +197 -0
  383. streamlit/static/static/js/index.BtuGy7By.js +6 -0
  384. streamlit/static/static/js/index.BuDuBmrs.js +1 -0
  385. streamlit/static/static/js/index.BvXU2oKV.js +1 -0
  386. streamlit/static/static/js/index.BxcwPacT.js +73 -0
  387. streamlit/static/static/js/index.CWX8KB81.js +1 -0
  388. streamlit/static/static/js/index.CXzZTo_q.js +1 -0
  389. streamlit/static/static/js/index.CcRWp_KL.js +1 -0
  390. streamlit/static/static/js/index.Cd-_xe55.js +3 -0
  391. streamlit/static/static/js/index.CdG2PXln.js +4537 -0
  392. streamlit/static/static/js/index.CjXvXmcP.js +1 -0
  393. streamlit/static/static/js/index.D1HZENZx.js +776 -0
  394. streamlit/static/static/js/index.D21Efo64.js +1617 -0
  395. streamlit/static/static/js/index.D9WgGVBx.js +7 -0
  396. streamlit/static/static/js/index.DEcsHtvb.js +12 -0
  397. streamlit/static/static/js/index.DFeMfr_K.js +1 -0
  398. streamlit/static/static/js/index.DHFBoItz.js +1 -0
  399. streamlit/static/static/js/index.D_PrBKnJ.js +3 -0
  400. streamlit/static/static/js/index.DmuRkekN.js +3855 -0
  401. streamlit/static/static/js/index.Do6eY8sf.js +1 -0
  402. streamlit/static/static/js/index.Dz3lP2P-.js +1 -0
  403. streamlit/static/static/js/index.Dz_UqF-s.js +1 -0
  404. streamlit/static/static/js/index.GkSUsPhJ.js +1 -0
  405. streamlit/static/static/js/index.H1U1IC_d.js +3 -0
  406. streamlit/static/static/js/index.g6p_4DPr.js +1 -0
  407. streamlit/static/static/js/index.g9x_GKss.js +1 -0
  408. streamlit/static/static/js/index.zo9jm08y.js +1 -0
  409. streamlit/static/static/js/input.DnaFglHq.js +2 -0
  410. streamlit/static/static/js/inputUtils.CQWz5UKz.js +1 -0
  411. streamlit/static/static/js/memory.Crb9x4-F.js +1 -0
  412. streamlit/static/static/js/mergeWith.ouAz0sK3.js +1 -0
  413. streamlit/static/static/js/number-overlay-editor._UaN-O48.js +9 -0
  414. streamlit/static/static/js/possibleConstructorReturn.CtGjGFHz.js +1 -0
  415. streamlit/static/static/js/sandbox.CBybYOhV.js +1 -0
  416. streamlit/static/static/js/sprintf.D7DtBTRn.js +1 -0
  417. streamlit/static/static/js/textarea.Cb_uJt5U.js +2 -0
  418. streamlit/static/static/js/threshold.DjX0wlsa.js +1 -0
  419. streamlit/static/static/js/timepicker.DKT7pfoF.js +4 -0
  420. streamlit/static/static/js/timer.CAwTRJ_g.js +1 -0
  421. streamlit/static/static/js/toConsumableArray.05Ikp13-.js +3 -0
  422. streamlit/static/static/js/uniqueId.D2FMWUEI.js +1 -0
  423. streamlit/static/static/js/useBasicWidgetState.urnZLANY.js +1 -0
  424. streamlit/static/static/js/useOnInputChange.BOKIIdJ1.js +1 -0
  425. streamlit/static/static/js/value.CgPGBV_l.js +1 -0
  426. streamlit/static/static/js/withFullScreenWrapper.C_N8J0Xx.js +1 -0
  427. streamlit/static/static/media/KaTeX_AMS-Regular.BQhdFMY1.woff2 +0 -0
  428. streamlit/static/static/media/KaTeX_AMS-Regular.DMm9YOAa.woff +0 -0
  429. streamlit/static/static/media/KaTeX_AMS-Regular.DRggAlZN.ttf +0 -0
  430. streamlit/static/static/media/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf +0 -0
  431. streamlit/static/static/media/KaTeX_Caligraphic-Bold.BEiXGLvX.woff +0 -0
  432. streamlit/static/static/media/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 +0 -0
  433. streamlit/static/static/media/KaTeX_Caligraphic-Regular.CTRA-rTL.woff +0 -0
  434. streamlit/static/static/media/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 +0 -0
  435. streamlit/static/static/media/KaTeX_Caligraphic-Regular.wX97UBjC.ttf +0 -0
  436. streamlit/static/static/media/KaTeX_Fraktur-Bold.BdnERNNW.ttf +0 -0
  437. streamlit/static/static/media/KaTeX_Fraktur-Bold.BsDP51OF.woff +0 -0
  438. streamlit/static/static/media/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 +0 -0
  439. streamlit/static/static/media/KaTeX_Fraktur-Regular.CB_wures.ttf +0 -0
  440. streamlit/static/static/media/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 +0 -0
  441. streamlit/static/static/media/KaTeX_Fraktur-Regular.Dxdc4cR9.woff +0 -0
  442. streamlit/static/static/media/KaTeX_Main-Bold.Cx986IdX.woff2 +0 -0
  443. streamlit/static/static/media/KaTeX_Main-Bold.Jm3AIy58.woff +0 -0
  444. streamlit/static/static/media/KaTeX_Main-Bold.waoOVXN0.ttf +0 -0
  445. streamlit/static/static/media/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 +0 -0
  446. streamlit/static/static/media/KaTeX_Main-BoldItalic.DzxPMmG6.ttf +0 -0
  447. streamlit/static/static/media/KaTeX_Main-BoldItalic.SpSLRI95.woff +0 -0
  448. streamlit/static/static/media/KaTeX_Main-Italic.3WenGoN9.ttf +0 -0
  449. streamlit/static/static/media/KaTeX_Main-Italic.BMLOBm91.woff +0 -0
  450. streamlit/static/static/media/KaTeX_Main-Italic.NWA7e6Wa.woff2 +0 -0
  451. streamlit/static/static/media/KaTeX_Main-Regular.B22Nviop.woff2 +0 -0
  452. streamlit/static/static/media/KaTeX_Main-Regular.Dr94JaBh.woff +0 -0
  453. streamlit/static/static/media/KaTeX_Main-Regular.ypZvNtVU.ttf +0 -0
  454. streamlit/static/static/media/KaTeX_Math-BoldItalic.B3XSjfu4.ttf +0 -0
  455. streamlit/static/static/media/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 +0 -0
  456. streamlit/static/static/media/KaTeX_Math-BoldItalic.iY-2wyZ7.woff +0 -0
  457. streamlit/static/static/media/KaTeX_Math-Italic.DA0__PXp.woff +0 -0
  458. streamlit/static/static/media/KaTeX_Math-Italic.flOr_0UB.ttf +0 -0
  459. streamlit/static/static/media/KaTeX_Math-Italic.t53AETM-.woff2 +0 -0
  460. streamlit/static/static/media/KaTeX_SansSerif-Bold.CFMepnvq.ttf +0 -0
  461. streamlit/static/static/media/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 +0 -0
  462. streamlit/static/static/media/KaTeX_SansSerif-Bold.DbIhKOiC.woff +0 -0
  463. streamlit/static/static/media/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 +0 -0
  464. streamlit/static/static/media/KaTeX_SansSerif-Italic.DN2j7dab.woff +0 -0
  465. streamlit/static/static/media/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf +0 -0
  466. streamlit/static/static/media/KaTeX_SansSerif-Regular.BNo7hRIc.ttf +0 -0
  467. streamlit/static/static/media/KaTeX_SansSerif-Regular.CS6fqUqJ.woff +0 -0
  468. streamlit/static/static/media/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 +0 -0
  469. streamlit/static/static/media/KaTeX_Script-Regular.C5JkGWo-.ttf +0 -0
  470. streamlit/static/static/media/KaTeX_Script-Regular.D3wIWfF6.woff2 +0 -0
  471. streamlit/static/static/media/KaTeX_Script-Regular.D5yQViql.woff +0 -0
  472. streamlit/static/static/media/KaTeX_Size1-Regular.C195tn64.woff +0 -0
  473. streamlit/static/static/media/KaTeX_Size1-Regular.Dbsnue_I.ttf +0 -0
  474. streamlit/static/static/media/KaTeX_Size1-Regular.mCD8mA8B.woff2 +0 -0
  475. streamlit/static/static/media/KaTeX_Size2-Regular.B7gKUWhC.ttf +0 -0
  476. streamlit/static/static/media/KaTeX_Size2-Regular.Dy4dx90m.woff2 +0 -0
  477. streamlit/static/static/media/KaTeX_Size2-Regular.oD1tc_U0.woff +0 -0
  478. streamlit/static/static/media/KaTeX_Size3-Regular.CTq5MqoE.woff +0 -0
  479. streamlit/static/static/media/KaTeX_Size3-Regular.DgpXs0kz.ttf +0 -0
  480. streamlit/static/static/media/KaTeX_Size4-Regular.BF-4gkZK.woff +0 -0
  481. streamlit/static/static/media/KaTeX_Size4-Regular.DWFBv043.ttf +0 -0
  482. streamlit/static/static/media/KaTeX_Size4-Regular.Dl5lxZxV.woff2 +0 -0
  483. streamlit/static/static/media/KaTeX_Typewriter-Regular.C0xS9mPB.woff +0 -0
  484. streamlit/static/static/media/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 +0 -0
  485. streamlit/static/static/media/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf +0 -0
  486. streamlit/static/static/media/MaterialSymbols-Rounded.DcZbplWk.woff2 +0 -0
  487. streamlit/static/static/media/SourceCodePro-Bold.CFEfr7-q.woff2 +0 -0
  488. streamlit/static/static/media/SourceCodePro-BoldItalic.C-LkFXxa.woff2 +0 -0
  489. streamlit/static/static/media/SourceCodePro-Italic.CxFOx7N-.woff2 +0 -0
  490. streamlit/static/static/media/SourceCodePro-Regular.CBOlD63d.woff2 +0 -0
  491. streamlit/static/static/media/SourceCodePro-SemiBold.CFHwW3Wd.woff2 +0 -0
  492. streamlit/static/static/media/SourceCodePro-SemiBoldItalic.Cg2yRu82.woff2 +0 -0
  493. streamlit/static/static/media/SourceSansPro-Bold.-6c9oR8J.woff2 +0 -0
  494. streamlit/static/static/media/SourceSansPro-BoldItalic.DmM_grLY.woff2 +0 -0
  495. streamlit/static/static/media/SourceSansPro-Italic.I1ipWe7Q.woff2 +0 -0
  496. streamlit/static/static/media/SourceSansPro-Regular.DZLUzqI4.woff2 +0 -0
  497. streamlit/static/static/media/SourceSansPro-SemiBold.sKQIyTMz.woff2 +0 -0
  498. streamlit/static/static/media/SourceSansPro-SemiBoldItalic.C0wP0icr.woff2 +0 -0
  499. streamlit/static/static/media/SourceSerifPro-Bold.8TUnKj4x.woff2 +0 -0
  500. streamlit/static/static/media/SourceSerifPro-BoldItalic.CBVO7Ve7.woff2 +0 -0
  501. streamlit/static/static/media/SourceSerifPro-Italic.DkFgL2HZ.woff2 +0 -0
  502. streamlit/static/static/media/SourceSerifPro-Regular.CNJNET2S.woff2 +0 -0
  503. streamlit/static/static/media/SourceSerifPro-SemiBold.CHyh9GC5.woff2 +0 -0
  504. streamlit/static/static/media/SourceSerifPro-SemiBoldItalic.CBtz8sWN.woff2 +0 -0
  505. streamlit/static/static/media/balloon-0.Czj7AKwE.png +0 -0
  506. streamlit/static/static/media/balloon-1.CNvFFrND.png +0 -0
  507. streamlit/static/static/media/balloon-2.DTvC6B1t.png +0 -0
  508. streamlit/static/static/media/balloon-3.CgSk4tbL.png +0 -0
  509. streamlit/static/static/media/balloon-4.mbtFrzxf.png +0 -0
  510. streamlit/static/static/media/balloon-5.CSwkUfRA.png +0 -0
  511. streamlit/static/static/media/fireworks.B4d-_KUe.gif +0 -0
  512. streamlit/static/static/media/flake-0.DgWaVvm5.png +0 -0
  513. streamlit/static/static/media/flake-1.B2r5AHMK.png +0 -0
  514. streamlit/static/static/media/flake-2.BnWSExPC.png +0 -0
  515. streamlit/static/static/media/snowflake.JU2jBHL8.svg +11 -0
  516. streamlit/string_util.py +203 -0
  517. streamlit/temporary_directory.py +56 -0
  518. streamlit/testing/__init__.py +13 -0
  519. streamlit/testing/v1/__init__.py +17 -0
  520. streamlit/testing/v1/app_test.py +1050 -0
  521. streamlit/testing/v1/element_tree.py +2083 -0
  522. streamlit/testing/v1/local_script_runner.py +180 -0
  523. streamlit/testing/v1/util.py +53 -0
  524. streamlit/time_util.py +75 -0
  525. streamlit/type_util.py +460 -0
  526. streamlit/url_util.py +122 -0
  527. streamlit/user_info.py +519 -0
  528. streamlit/util.py +72 -0
  529. streamlit/vendor/__init__.py +0 -0
  530. streamlit/vendor/pympler/__init__.py +0 -0
  531. streamlit/vendor/pympler/asizeof.py +2869 -0
  532. streamlit/version.py +18 -0
  533. streamlit/watcher/__init__.py +28 -0
  534. streamlit/watcher/event_based_path_watcher.py +406 -0
  535. streamlit/watcher/folder_black_list.py +82 -0
  536. streamlit/watcher/local_sources_watcher.py +233 -0
  537. streamlit/watcher/path_watcher.py +185 -0
  538. streamlit/watcher/polling_path_watcher.py +124 -0
  539. streamlit/watcher/util.py +207 -0
  540. streamlit/web/__init__.py +13 -0
  541. streamlit/web/bootstrap.py +353 -0
  542. streamlit/web/cache_storage_manager_config.py +38 -0
  543. streamlit/web/cli.py +369 -0
  544. streamlit/web/server/__init__.py +26 -0
  545. streamlit/web/server/app_static_file_handler.py +93 -0
  546. streamlit/web/server/authlib_tornado_integration.py +60 -0
  547. streamlit/web/server/browser_websocket_handler.py +246 -0
  548. streamlit/web/server/component_request_handler.py +116 -0
  549. streamlit/web/server/media_file_handler.py +141 -0
  550. streamlit/web/server/oauth_authlib_routes.py +176 -0
  551. streamlit/web/server/oidc_mixin.py +108 -0
  552. streamlit/web/server/routes.py +295 -0
  553. streamlit/web/server/server.py +479 -0
  554. streamlit/web/server/server_util.py +161 -0
  555. streamlit/web/server/stats_request_handler.py +95 -0
  556. streamlit/web/server/upload_file_request_handler.py +137 -0
  557. streamlit/web/server/websocket_headers.py +56 -0
  558. streamlit_nightly-1.43.2.dev20250307.data/scripts/streamlit.cmd +16 -0
  559. streamlit_nightly-1.43.2.dev20250307.dist-info/METADATA +207 -0
  560. streamlit_nightly-1.43.2.dev20250307.dist-info/RECORD +563 -0
  561. streamlit_nightly-1.43.2.dev20250307.dist-info/WHEEL +5 -0
  562. streamlit_nightly-1.43.2.dev20250307.dist-info/entry_points.txt +2 -0
  563. streamlit_nightly-1.43.2.dev20250307.dist-info/top_level.txt +1 -0
@@ -0,0 +1,352 @@
1
+ # Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
17
+ from dataclasses import dataclass
18
+ from textwrap import dedent
19
+ from typing import TYPE_CHECKING, cast
20
+
21
+ from streamlit.elements.lib.form_utils import current_form_id
22
+ from streamlit.elements.lib.policies import (
23
+ check_widget_policies,
24
+ maybe_raise_label_warnings,
25
+ )
26
+ from streamlit.elements.lib.utils import (
27
+ Key,
28
+ LabelVisibility,
29
+ compute_and_register_element_id,
30
+ get_label_visibility_proto_value,
31
+ to_key,
32
+ )
33
+ from streamlit.proto.Checkbox_pb2 import Checkbox as CheckboxProto
34
+ from streamlit.runtime.metrics_util import gather_metrics
35
+ from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
36
+ from streamlit.runtime.state import (
37
+ WidgetArgs,
38
+ WidgetCallback,
39
+ WidgetKwargs,
40
+ register_widget,
41
+ )
42
+
43
+ if TYPE_CHECKING:
44
+ from streamlit.delta_generator import DeltaGenerator
45
+
46
+
47
+ @dataclass
48
+ class CheckboxSerde:
49
+ value: bool
50
+
51
+ def serialize(self, v: bool) -> bool:
52
+ return bool(v)
53
+
54
+ def deserialize(self, ui_value: bool | None, widget_id: str = "") -> bool:
55
+ return bool(ui_value if ui_value is not None else self.value)
56
+
57
+
58
+ class CheckboxMixin:
59
+ @gather_metrics("checkbox")
60
+ def checkbox(
61
+ self,
62
+ label: str,
63
+ value: bool = False,
64
+ key: Key | None = None,
65
+ help: str | None = None,
66
+ on_change: WidgetCallback | None = None,
67
+ args: WidgetArgs | None = None,
68
+ kwargs: WidgetKwargs | None = None,
69
+ *, # keyword-only arguments:
70
+ disabled: bool = False,
71
+ label_visibility: LabelVisibility = "visible",
72
+ ) -> bool:
73
+ r"""Display a checkbox widget.
74
+
75
+ Parameters
76
+ ----------
77
+ label : str
78
+ A short label explaining to the user what this checkbox is for.
79
+ The label can optionally contain GitHub-flavored Markdown of the
80
+ following types: Bold, Italics, Strikethroughs, Inline Code, Links,
81
+ and Images. Images display like icons, with a max height equal to
82
+ the font height.
83
+
84
+ Unsupported Markdown elements are unwrapped so only their children
85
+ (text contents) render. Display unsupported elements as literal
86
+ characters by backslash-escaping them. E.g.,
87
+ ``"1\. Not an ordered list"``.
88
+
89
+ See the ``body`` parameter of |st.markdown|_ for additional,
90
+ supported Markdown directives.
91
+
92
+ For accessibility reasons, you should never set an empty label, but
93
+ you can hide it with ``label_visibility`` if needed. In the future,
94
+ we may disallow empty labels by raising an exception.
95
+
96
+ .. |st.markdown| replace:: ``st.markdown``
97
+ .. _st.markdown: https://docs.streamlit.io/develop/api-reference/text/st.markdown
98
+
99
+ value : bool
100
+ Preselect the checkbox when it first renders. This will be
101
+ cast to bool internally.
102
+
103
+ key : str or int
104
+ An optional string or integer to use as the unique key for the widget.
105
+ If this is omitted, a key will be generated for the widget
106
+ based on its content. No two widgets may have the same key.
107
+
108
+ help : str or None
109
+ A tooltip that gets displayed next to the widget label. Streamlit
110
+ only displays the tooltip when ``label_visibility="visible"``. If
111
+ this is ``None`` (default), no tooltip is displayed.
112
+
113
+ The tooltip can optionally contain GitHub-flavored Markdown,
114
+ including the Markdown directives described in the ``body``
115
+ parameter of ``st.markdown``.
116
+
117
+ on_change : callable
118
+ An optional callback invoked when this checkbox's value changes.
119
+
120
+ args : tuple
121
+ An optional tuple of args to pass to the callback.
122
+
123
+ kwargs : dict
124
+ An optional dict of kwargs to pass to the callback.
125
+
126
+ disabled : bool
127
+ An optional boolean that disables the checkbox if set to ``True``.
128
+ The default is ``False``.
129
+
130
+ label_visibility : "visible", "hidden", or "collapsed"
131
+ The visibility of the label. The default is ``"visible"``. If this
132
+ is ``"hidden"``, Streamlit displays an empty spacer instead of the
133
+ label, which can help keep the widget alligned with other widgets.
134
+ If this is ``"collapsed"``, Streamlit displays no label or spacer.
135
+
136
+ Returns
137
+ -------
138
+ bool
139
+ Whether or not the checkbox is checked.
140
+
141
+ Example
142
+ -------
143
+ >>> import streamlit as st
144
+ >>>
145
+ >>> agree = st.checkbox("I agree")
146
+ >>>
147
+ >>> if agree:
148
+ ... st.write("Great!")
149
+
150
+ .. output::
151
+ https://doc-checkbox.streamlit.app/
152
+ height: 220px
153
+
154
+ """
155
+ ctx = get_script_run_ctx()
156
+ return self._checkbox(
157
+ label=label,
158
+ value=value,
159
+ key=key,
160
+ help=help,
161
+ on_change=on_change,
162
+ args=args,
163
+ kwargs=kwargs,
164
+ disabled=disabled,
165
+ label_visibility=label_visibility,
166
+ type=CheckboxProto.StyleType.DEFAULT,
167
+ ctx=ctx,
168
+ )
169
+
170
+ @gather_metrics("toggle")
171
+ def toggle(
172
+ self,
173
+ label: str,
174
+ value: bool = False,
175
+ key: Key | None = None,
176
+ help: str | None = None,
177
+ on_change: WidgetCallback | None = None,
178
+ args: WidgetArgs | None = None,
179
+ kwargs: WidgetKwargs | None = None,
180
+ *, # keyword-only arguments:
181
+ disabled: bool = False,
182
+ label_visibility: LabelVisibility = "visible",
183
+ ) -> bool:
184
+ r"""Display a toggle widget.
185
+
186
+ Parameters
187
+ ----------
188
+ label : str
189
+ A short label explaining to the user what this toggle is for.
190
+ The label can optionally contain GitHub-flavored Markdown of the
191
+ following types: Bold, Italics, Strikethroughs, Inline Code, Links,
192
+ and Images. Images display like icons, with a max height equal to
193
+ the font height.
194
+
195
+ Unsupported Markdown elements are unwrapped so only their children
196
+ (text contents) render. Display unsupported elements as literal
197
+ characters by backslash-escaping them. E.g.,
198
+ ``"1\. Not an ordered list"``.
199
+
200
+ See the ``body`` parameter of |st.markdown|_ for additional,
201
+ supported Markdown directives.
202
+
203
+ For accessibility reasons, you should never set an empty label, but
204
+ you can hide it with ``label_visibility`` if needed. In the future,
205
+ we may disallow empty labels by raising an exception.
206
+
207
+ .. |st.markdown| replace:: ``st.markdown``
208
+ .. _st.markdown: https://docs.streamlit.io/develop/api-reference/text/st.markdown
209
+
210
+ value : bool
211
+ Preselect the toggle when it first renders. This will be
212
+ cast to bool internally.
213
+
214
+ key : str or int
215
+ An optional string or integer to use as the unique key for the widget.
216
+ If this is omitted, a key will be generated for the widget
217
+ based on its content. No two widgets may have the same key.
218
+
219
+ help : str or None
220
+ A tooltip that gets displayed next to the widget label. Streamlit
221
+ only displays the tooltip when ``label_visibility="visible"``. If
222
+ this is ``None`` (default), no tooltip is displayed.
223
+
224
+ The tooltip can optionally contain GitHub-flavored Markdown,
225
+ including the Markdown directives described in the ``body``
226
+ parameter of ``st.markdown``.
227
+
228
+ on_change : callable
229
+ An optional callback invoked when this toggle's value changes.
230
+
231
+ args : tuple
232
+ An optional tuple of args to pass to the callback.
233
+
234
+ kwargs : dict
235
+ An optional dict of kwargs to pass to the callback.
236
+
237
+ disabled : bool
238
+ An optional boolean that disables the toggle if set to ``True``.
239
+ The default is ``False``.
240
+
241
+ label_visibility : "visible", "hidden", or "collapsed"
242
+ The visibility of the label. The default is ``"visible"``. If this
243
+ is ``"hidden"``, Streamlit displays an empty spacer instead of the
244
+ label, which can help keep the widget alligned with other widgets.
245
+ If this is ``"collapsed"``, Streamlit displays no label or spacer.
246
+
247
+ Returns
248
+ -------
249
+ bool
250
+ Whether or not the toggle is checked.
251
+
252
+ Example
253
+ -------
254
+ >>> import streamlit as st
255
+ >>>
256
+ >>> on = st.toggle("Activate feature")
257
+ >>>
258
+ >>> if on:
259
+ ... st.write("Feature activated!")
260
+
261
+ .. output::
262
+ https://doc-toggle.streamlit.app/
263
+ height: 220px
264
+
265
+ """
266
+ ctx = get_script_run_ctx()
267
+ return self._checkbox(
268
+ label=label,
269
+ value=value,
270
+ key=key,
271
+ help=help,
272
+ on_change=on_change,
273
+ args=args,
274
+ kwargs=kwargs,
275
+ disabled=disabled,
276
+ label_visibility=label_visibility,
277
+ type=CheckboxProto.StyleType.TOGGLE,
278
+ ctx=ctx,
279
+ )
280
+
281
+ def _checkbox(
282
+ self,
283
+ label: str,
284
+ value: bool = False,
285
+ key: Key | None = None,
286
+ help: str | None = None,
287
+ on_change: WidgetCallback | None = None,
288
+ args: WidgetArgs | None = None,
289
+ kwargs: WidgetKwargs | None = None,
290
+ *, # keyword-only arguments:
291
+ disabled: bool = False,
292
+ label_visibility: LabelVisibility = "visible",
293
+ type: CheckboxProto.StyleType.ValueType = CheckboxProto.StyleType.DEFAULT,
294
+ ctx: ScriptRunContext | None = None,
295
+ ) -> bool:
296
+ key = to_key(key)
297
+
298
+ check_widget_policies(
299
+ self.dg,
300
+ key,
301
+ on_change,
302
+ default_value=None if value is False else value,
303
+ )
304
+ maybe_raise_label_warnings(label, label_visibility)
305
+
306
+ element_id = compute_and_register_element_id(
307
+ "toggle" if type == CheckboxProto.StyleType.TOGGLE else "checkbox",
308
+ user_key=key,
309
+ form_id=current_form_id(self.dg),
310
+ label=label,
311
+ value=bool(value),
312
+ help=help,
313
+ )
314
+
315
+ checkbox_proto = CheckboxProto()
316
+ checkbox_proto.id = element_id
317
+ checkbox_proto.label = label
318
+ checkbox_proto.default = bool(value)
319
+ checkbox_proto.type = type
320
+ checkbox_proto.form_id = current_form_id(self.dg)
321
+ checkbox_proto.disabled = disabled
322
+ checkbox_proto.label_visibility.value = get_label_visibility_proto_value(
323
+ label_visibility
324
+ )
325
+
326
+ if help is not None:
327
+ checkbox_proto.help = dedent(help)
328
+
329
+ serde = CheckboxSerde(value)
330
+
331
+ checkbox_state = register_widget(
332
+ checkbox_proto.id,
333
+ on_change_handler=on_change,
334
+ args=args,
335
+ kwargs=kwargs,
336
+ deserializer=serde.deserialize,
337
+ serializer=serde.serialize,
338
+ ctx=ctx,
339
+ value_type="bool_value",
340
+ )
341
+
342
+ if checkbox_state.value_changed:
343
+ checkbox_proto.value = checkbox_state.value
344
+ checkbox_proto.set_value = True
345
+
346
+ self.dg._enqueue("checkbox", checkbox_proto)
347
+ return checkbox_state.value
348
+
349
+ @property
350
+ def dg(self) -> DeltaGenerator:
351
+ """Get our DeltaGenerator."""
352
+ return cast("DeltaGenerator", self)
@@ -0,0 +1,265 @@
1
+ # Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
17
+ import re
18
+ from dataclasses import dataclass
19
+ from textwrap import dedent
20
+ from typing import TYPE_CHECKING, cast
21
+
22
+ from streamlit.elements.lib.form_utils import current_form_id
23
+ from streamlit.elements.lib.policies import (
24
+ check_widget_policies,
25
+ maybe_raise_label_warnings,
26
+ )
27
+ from streamlit.elements.lib.utils import (
28
+ Key,
29
+ LabelVisibility,
30
+ compute_and_register_element_id,
31
+ get_label_visibility_proto_value,
32
+ to_key,
33
+ )
34
+ from streamlit.errors import StreamlitAPIException
35
+ from streamlit.proto.ColorPicker_pb2 import ColorPicker as ColorPickerProto
36
+ from streamlit.runtime.metrics_util import gather_metrics
37
+ from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
38
+ from streamlit.runtime.state import (
39
+ WidgetArgs,
40
+ WidgetCallback,
41
+ WidgetKwargs,
42
+ register_widget,
43
+ )
44
+
45
+ if TYPE_CHECKING:
46
+ from streamlit.delta_generator import DeltaGenerator
47
+
48
+
49
+ @dataclass
50
+ class ColorPickerSerde:
51
+ value: str
52
+
53
+ def serialize(self, v: str) -> str:
54
+ return str(v)
55
+
56
+ def deserialize(self, ui_value: str | None, widget_id: str = "") -> str:
57
+ return str(ui_value if ui_value is not None else self.value)
58
+
59
+
60
+ class ColorPickerMixin:
61
+ @gather_metrics("color_picker")
62
+ def color_picker(
63
+ self,
64
+ label: str,
65
+ value: str | None = None,
66
+ key: Key | None = None,
67
+ help: str | None = None,
68
+ on_change: WidgetCallback | None = None,
69
+ args: WidgetArgs | None = None,
70
+ kwargs: WidgetKwargs | None = None,
71
+ *, # keyword-only arguments:
72
+ disabled: bool = False,
73
+ label_visibility: LabelVisibility = "visible",
74
+ ) -> str:
75
+ r"""Display a color picker widget.
76
+
77
+ Parameters
78
+ ----------
79
+ label : str
80
+ A short label explaining to the user what this input is for.
81
+ The label can optionally contain GitHub-flavored Markdown of the
82
+ following types: Bold, Italics, Strikethroughs, Inline Code, Links,
83
+ and Images. Images display like icons, with a max height equal to
84
+ the font height.
85
+
86
+ Unsupported Markdown elements are unwrapped so only their children
87
+ (text contents) render. Display unsupported elements as literal
88
+ characters by backslash-escaping them. E.g.,
89
+ ``"1\. Not an ordered list"``.
90
+
91
+ See the ``body`` parameter of |st.markdown|_ for additional,
92
+ supported Markdown directives.
93
+
94
+ For accessibility reasons, you should never set an empty label, but
95
+ you can hide it with ``label_visibility`` if needed. In the future,
96
+ we may disallow empty labels by raising an exception.
97
+
98
+ .. |st.markdown| replace:: ``st.markdown``
99
+ .. _st.markdown: https://docs.streamlit.io/develop/api-reference/text/st.markdown
100
+
101
+ value : str
102
+ The hex value of this widget when it first renders. If None,
103
+ defaults to black.
104
+
105
+ key : str or int
106
+ An optional string or integer to use as the unique key for the widget.
107
+ If this is omitted, a key will be generated for the widget
108
+ based on its content. No two widgets may have the same key.
109
+
110
+ help : str or None
111
+ A tooltip that gets displayed next to the widget label. Streamlit
112
+ only displays the tooltip when ``label_visibility="visible"``. If
113
+ this is ``None`` (default), no tooltip is displayed.
114
+
115
+ The tooltip can optionally contain GitHub-flavored Markdown,
116
+ including the Markdown directives described in the ``body``
117
+ parameter of ``st.markdown``.
118
+
119
+ on_change : callable
120
+ An optional callback invoked when this color_picker's value
121
+ changes.
122
+
123
+ args : tuple
124
+ An optional tuple of args to pass to the callback.
125
+
126
+ kwargs : dict
127
+ An optional dict of kwargs to pass to the callback.
128
+
129
+ disabled : bool
130
+ An optional boolean that disables the color picker if set to
131
+ ``True``. The default is ``False``.
132
+
133
+ label_visibility : "visible", "hidden", or "collapsed"
134
+ The visibility of the label. The default is ``"visible"``. If this
135
+ is ``"hidden"``, Streamlit displays an empty spacer instead of the
136
+ label, which can help keep the widget alligned with other widgets.
137
+ If this is ``"collapsed"``, Streamlit displays no label or spacer.
138
+
139
+ Returns
140
+ -------
141
+ str
142
+ The selected color as a hex string.
143
+
144
+ Example
145
+ -------
146
+ >>> import streamlit as st
147
+ >>>
148
+ >>> color = st.color_picker("Pick A Color", "#00f900")
149
+ >>> st.write("The current color is", color)
150
+
151
+ .. output::
152
+ https://doc-color-picker.streamlit.app/
153
+ height: 335px
154
+
155
+ """
156
+ ctx = get_script_run_ctx()
157
+ return self._color_picker(
158
+ label=label,
159
+ value=value,
160
+ key=key,
161
+ help=help,
162
+ on_change=on_change,
163
+ args=args,
164
+ kwargs=kwargs,
165
+ disabled=disabled,
166
+ label_visibility=label_visibility,
167
+ ctx=ctx,
168
+ )
169
+
170
+ def _color_picker(
171
+ self,
172
+ label: str,
173
+ value: str | None = None,
174
+ key: Key | None = None,
175
+ help: str | None = None,
176
+ on_change: WidgetCallback | None = None,
177
+ args: WidgetArgs | None = None,
178
+ kwargs: WidgetKwargs | None = None,
179
+ *, # keyword-only arguments:
180
+ disabled: bool = False,
181
+ label_visibility: LabelVisibility = "visible",
182
+ ctx: ScriptRunContext | None = None,
183
+ ) -> str:
184
+ key = to_key(key)
185
+
186
+ check_widget_policies(
187
+ self.dg,
188
+ key,
189
+ on_change,
190
+ default_value=value,
191
+ )
192
+ maybe_raise_label_warnings(label, label_visibility)
193
+
194
+ element_id = compute_and_register_element_id(
195
+ "color_picker",
196
+ user_key=key,
197
+ form_id=current_form_id(self.dg),
198
+ label=label,
199
+ value=str(value),
200
+ help=help,
201
+ )
202
+
203
+ # set value default
204
+ if value is None:
205
+ value = "#000000"
206
+
207
+ # make sure the value is a string
208
+ if not isinstance(value, str):
209
+ raise StreamlitAPIException(
210
+ """
211
+ Color Picker Value has invalid type: %s. Expects a hex string
212
+ like '#00FFAA' or '#000'.
213
+ """
214
+ % type(value).__name__
215
+ )
216
+
217
+ # validate the value and expects a hex string
218
+ match = re.match(r"^#(?:[0-9a-fA-F]{3}){1,2}$", value)
219
+
220
+ if not match:
221
+ raise StreamlitAPIException(
222
+ """
223
+ '%s' is not a valid hex code for colors. Valid ones are like
224
+ '#00FFAA' or '#000'.
225
+ """
226
+ % value
227
+ )
228
+
229
+ color_picker_proto = ColorPickerProto()
230
+ color_picker_proto.id = element_id
231
+ color_picker_proto.label = label
232
+ color_picker_proto.default = str(value)
233
+ color_picker_proto.form_id = current_form_id(self.dg)
234
+ color_picker_proto.disabled = disabled
235
+ color_picker_proto.label_visibility.value = get_label_visibility_proto_value(
236
+ label_visibility
237
+ )
238
+
239
+ if help is not None:
240
+ color_picker_proto.help = dedent(help)
241
+
242
+ serde = ColorPickerSerde(value)
243
+
244
+ widget_state = register_widget(
245
+ color_picker_proto.id,
246
+ on_change_handler=on_change,
247
+ args=args,
248
+ kwargs=kwargs,
249
+ deserializer=serde.deserialize,
250
+ serializer=serde.serialize,
251
+ ctx=ctx,
252
+ value_type="string_value",
253
+ )
254
+
255
+ if widget_state.value_changed:
256
+ color_picker_proto.value = widget_state.value
257
+ color_picker_proto.set_value = True
258
+
259
+ self.dg._enqueue("color_picker", color_picker_proto)
260
+ return widget_state.value
261
+
262
+ @property
263
+ def dg(self) -> DeltaGenerator:
264
+ """Get our DeltaGenerator."""
265
+ return cast("DeltaGenerator", self)