streamlit-nightly 1.21.1.dev20230423__tar.gz → 1.21.1.dev20230425__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/PKG-INFO +1 -1
  2. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/setup.py +1 -1
  3. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/__init__.py +0 -7
  4. streamlit-nightly-1.21.1.dev20230425/streamlit/elements/arrow.py +191 -0
  5. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/data_editor.py +109 -100
  6. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/file_uploader.py +17 -0
  7. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/layouts.py +0 -5
  8. streamlit-nightly-1.21.1.dev20230425/streamlit/elements/lib/column_config_utils.py +371 -0
  9. streamlit-nightly-1.21.1.dev20230423/streamlit/elements/arrow.py → streamlit-nightly-1.21.1.dev20230425/streamlit/elements/lib/pandas_styler_utils.py +7 -180
  10. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/connection_factory.py +5 -5
  11. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/asset-manifest.json +20 -20
  12. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/index.html +1 -1
  13. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/14.a19a6cd8.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/14.9399e424.chunk.js +1 -1
  14. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/227.087adf66.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/227.9ccac1d5.chunk.js +1 -1
  15. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/242.0daf8b47.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/242.1b3289e0.chunk.js +1 -1
  16. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/279.fdac58fc.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/279.35b01780.chunk.js +1 -1
  17. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/289.481fd42d.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/289.e6157e40.chunk.js +1 -1
  18. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/467.242e14ff.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/467.50ac84df.chunk.js +1 -1
  19. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/491.d0b710e9.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/491.5a33a8ce.chunk.js +1 -1
  20. streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/503.15864587.chunk.js +1 -0
  21. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/511.9f04ae9e.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/511.e6ca580f.chunk.js +1 -1
  22. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/578.ceaadcd5.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/578.a65fcea0.chunk.js +1 -1
  23. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/619.365611c8.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/619.0325af0e.chunk.js +1 -1
  24. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/628.7f41e2de.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/628.9c70196b.chunk.js +1 -1
  25. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/681.a2ba76c7.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/681.9e30a8cd.chunk.js +1 -1
  26. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/745.e2bcf16d.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/745.e75ba963.chunk.js +1 -1
  27. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/807.6789990f.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/807.122f8b05.chunk.js +1 -1
  28. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/828.096c1ad3.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/828.0fde3da8.chunk.js +1 -1
  29. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/871.ba625aee.chunk.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/871.90a7dbae.chunk.js +1 -1
  30. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/main.5e4731c6.js → streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/main.ff35bd72.js +2 -2
  31. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/testing/element_tree.py +426 -548
  32. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/type_util.py +19 -7
  33. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit_nightly.egg-info/PKG-INFO +1 -1
  34. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit_nightly.egg-info/SOURCES.txt +22 -21
  35. streamlit-nightly-1.21.1.dev20230423/streamlit/elements/show.py +0 -105
  36. streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/728.82770810.chunk.js +0 -1
  37. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/MANIFEST.in +0 -0
  38. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/bin/streamlit.cmd +0 -0
  39. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/setup.cfg +0 -0
  40. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/__main__.py +0 -0
  41. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/case_converters.py +0 -0
  42. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/code_util.py +0 -0
  43. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/commands/__init__.py +0 -0
  44. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/commands/execution_control.py +0 -0
  45. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/commands/page_config.py +0 -0
  46. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/commands/query_params.py +0 -0
  47. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/components/__init__.py +0 -0
  48. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/components/v1/__init__.py +0 -0
  49. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/components/v1/component_arrow.py +0 -0
  50. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/components/v1/components.py +0 -0
  51. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/config.py +0 -0
  52. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/config_option.py +0 -0
  53. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/config_util.py +0 -0
  54. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/connections/__init__.py +0 -0
  55. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/connections/base_connection.py +0 -0
  56. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/connections/snowpark_connection.py +0 -0
  57. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/connections/sql_connection.py +0 -0
  58. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/connections/util.py +0 -0
  59. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/cursor.py +0 -0
  60. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/delta_generator.py +0 -0
  61. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/deprecation_util.py +0 -0
  62. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/development.py +0 -0
  63. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/echo.py +0 -0
  64. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/__init__.py +0 -0
  65. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/alert.py +0 -0
  66. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/arrow_altair.py +0 -0
  67. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/arrow_vega_lite.py +0 -0
  68. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/balloons.py +0 -0
  69. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/bokeh_chart.py +0 -0
  70. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/button.py +0 -0
  71. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/camera_input.py +0 -0
  72. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/checkbox.py +0 -0
  73. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/code.py +0 -0
  74. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/color_picker.py +0 -0
  75. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/dataframe_selector.py +0 -0
  76. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/deck_gl_json_chart.py +0 -0
  77. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/doc_string.py +0 -0
  78. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/empty.py +0 -0
  79. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/exception.py +0 -0
  80. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/form.py +0 -0
  81. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/graphviz_chart.py +0 -0
  82. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/heading.py +0 -0
  83. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/iframe.py +0 -0
  84. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/image.py +0 -0
  85. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/json.py +0 -0
  86. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/legacy_altair.py +0 -0
  87. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/legacy_data_frame.py +0 -0
  88. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/legacy_vega_lite.py +0 -0
  89. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/lib/__init__.py +0 -0
  90. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/lib/dicttools.py +0 -0
  91. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/lib/streamlit_plotly_theme.py +0 -0
  92. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/map.py +0 -0
  93. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/markdown.py +0 -0
  94. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/media.py +0 -0
  95. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/metric.py +0 -0
  96. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/multiselect.py +0 -0
  97. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/number_input.py +0 -0
  98. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/plotly_chart.py +0 -0
  99. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/progress.py +0 -0
  100. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/pyplot.py +0 -0
  101. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/radio.py +0 -0
  102. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/select_slider.py +0 -0
  103. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/selectbox.py +0 -0
  104. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/slider.py +0 -0
  105. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/snow.py +0 -0
  106. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/spinner.py +0 -0
  107. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/text.py +0 -0
  108. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/text_widgets.py +0 -0
  109. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/time_widgets.py +0 -0
  110. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/utils.py +0 -0
  111. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/elements/write.py +0 -0
  112. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/emojis.py +0 -0
  113. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/env_util.py +0 -0
  114. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/error_util.py +0 -0
  115. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/errors.py +0 -0
  116. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/file_util.py +0 -0
  117. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/folder_black_list.py +0 -0
  118. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/git_util.py +0 -0
  119. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/hello/Hello.py +0 -0
  120. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/hello/__init__.py +0 -0
  121. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/hello/pages/0_Animation_Demo.py +0 -0
  122. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/hello/pages/1_Plotting_Demo.py +0 -0
  123. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/hello/pages/2_Mapping_Demo.py +0 -0
  124. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/hello/pages/3_DataFrame_Demo.py +0 -0
  125. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/hello/utils.py +0 -0
  126. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/js_number.py +0 -0
  127. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/logger.py +0 -0
  128. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/net_util.py +0 -0
  129. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Alert_pb2.py +0 -0
  130. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/AppPage_pb2.py +0 -0
  131. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/ArrowNamedDataSet_pb2.py +0 -0
  132. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/ArrowVegaLiteChart_pb2.py +0 -0
  133. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Arrow_pb2.py +0 -0
  134. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Audio_pb2.py +0 -0
  135. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/BackMsg_pb2.py +0 -0
  136. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Balloons_pb2.py +0 -0
  137. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Block_pb2.py +0 -0
  138. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/BokehChart_pb2.py +0 -0
  139. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Button_pb2.py +0 -0
  140. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/CameraInput_pb2.py +0 -0
  141. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Checkbox_pb2.py +0 -0
  142. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/ClientState_pb2.py +0 -0
  143. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Code_pb2.py +0 -0
  144. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/ColorPicker_pb2.py +0 -0
  145. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Common_pb2.py +0 -0
  146. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Components_pb2.py +0 -0
  147. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/DataFrame_pb2.py +0 -0
  148. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/DateInput_pb2.py +0 -0
  149. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/DeckGlJsonChart_pb2.py +0 -0
  150. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Delta_pb2.py +0 -0
  151. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/DocString_pb2.py +0 -0
  152. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/DownloadButton_pb2.py +0 -0
  153. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Element_pb2.py +0 -0
  154. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Empty_pb2.py +0 -0
  155. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Exception_pb2.py +0 -0
  156. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Favicon_pb2.py +0 -0
  157. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/FileUploader_pb2.py +0 -0
  158. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/ForwardMsg_pb2.py +0 -0
  159. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/GitInfo_pb2.py +0 -0
  160. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/GraphVizChart_pb2.py +0 -0
  161. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Heading_pb2.py +0 -0
  162. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/IFrame_pb2.py +0 -0
  163. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Image_pb2.py +0 -0
  164. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Json_pb2.py +0 -0
  165. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/LabelVisibilityMessage_pb2.py +0 -0
  166. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Markdown_pb2.py +0 -0
  167. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Metric_pb2.py +0 -0
  168. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/MultiSelect_pb2.py +0 -0
  169. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/NamedDataSet_pb2.py +0 -0
  170. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/NewSession_pb2.py +0 -0
  171. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/NumberInput_pb2.py +0 -0
  172. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/PageConfig_pb2.py +0 -0
  173. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/PageInfo_pb2.py +0 -0
  174. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/PageNotFound_pb2.py +0 -0
  175. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/PageProfile_pb2.py +0 -0
  176. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/PagesChanged_pb2.py +0 -0
  177. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/PlotlyChart_pb2.py +0 -0
  178. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Progress_pb2.py +0 -0
  179. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Radio_pb2.py +0 -0
  180. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/RootContainer_pb2.py +0 -0
  181. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Selectbox_pb2.py +0 -0
  182. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/SessionEvent_pb2.py +0 -0
  183. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/SessionStatus_pb2.py +0 -0
  184. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Slider_pb2.py +0 -0
  185. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Snow_pb2.py +0 -0
  186. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Spinner_pb2.py +0 -0
  187. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/TextArea_pb2.py +0 -0
  188. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/TextInput_pb2.py +0 -0
  189. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Text_pb2.py +0 -0
  190. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/TimeInput_pb2.py +0 -0
  191. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/VegaLiteChart_pb2.py +0 -0
  192. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/Video_pb2.py +0 -0
  193. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/WidgetStates_pb2.py +0 -0
  194. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/__init__.py +0 -0
  195. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/proto/openmetrics_data_model_pb2.py +0 -0
  196. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/py.typed +0 -0
  197. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/__init__.py +0 -0
  198. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/app_session.py +0 -0
  199. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/__init__.py +0 -0
  200. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/cache_data_api.py +0 -0
  201. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/cache_errors.py +0 -0
  202. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/cache_resource_api.py +0 -0
  203. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/cache_type.py +0 -0
  204. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/cache_utils.py +0 -0
  205. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/cached_message_replay.py +0 -0
  206. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/hashing.py +0 -0
  207. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/storage/__init__.py +0 -0
  208. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/storage/cache_storage_protocol.py +0 -0
  209. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/storage/dummy_cache_storage.py +0 -0
  210. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/storage/in_memory_cache_storage_wrapper.py +0 -0
  211. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/caching/storage/local_disk_cache_storage.py +0 -0
  212. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/credentials.py +0 -0
  213. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/forward_msg_cache.py +0 -0
  214. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/forward_msg_queue.py +0 -0
  215. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/legacy_caching/__init__.py +0 -0
  216. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/legacy_caching/caching.py +0 -0
  217. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/legacy_caching/hashing.py +0 -0
  218. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/media_file_manager.py +0 -0
  219. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/media_file_storage.py +0 -0
  220. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/memory_media_file_storage.py +0 -0
  221. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/memory_session_storage.py +0 -0
  222. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/metrics_util.py +0 -0
  223. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/runtime.py +0 -0
  224. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/runtime_util.py +0 -0
  225. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/script_data.py +0 -0
  226. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/scriptrunner/__init__.py +0 -0
  227. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/scriptrunner/magic.py +0 -0
  228. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/scriptrunner/magic_funcs.py +0 -0
  229. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/scriptrunner/script_requests.py +0 -0
  230. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/scriptrunner/script_run_context.py +0 -0
  231. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/scriptrunner/script_runner.py +0 -0
  232. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/secrets.py +0 -0
  233. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/session_manager.py +0 -0
  234. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/state/__init__.py +0 -0
  235. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/state/common.py +0 -0
  236. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/state/safe_session_state.py +0 -0
  237. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/state/session_state.py +0 -0
  238. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/state/session_state_proxy.py +0 -0
  239. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/state/widgets.py +0 -0
  240. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/stats.py +0 -0
  241. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/uploaded_file_manager.py +0 -0
  242. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/runtime/websocket_session_manager.py +0 -0
  243. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/source_util.py +0 -0
  244. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/assets/streamlit.css +0 -0
  245. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/favicon.png +0 -0
  246. /streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/css/728.23fa976d.chunk.css → /streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/css/503.23fa976d.chunk.css +0 -0
  247. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/css/623.af907718.chunk.css +0 -0
  248. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/css/main.f4a8738f.css +0 -0
  249. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/138.27cfe76e.chunk.js +0 -0
  250. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/157.ccd0341b.chunk.js +0 -0
  251. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/187.23c06ae4.chunk.js +0 -0
  252. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/197.df3c9e11.chunk.js +0 -0
  253. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/217.053016d7.chunk.js +0 -0
  254. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/248.1f4c1c4f.chunk.js +0 -0
  255. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/261.7064465b.chunk.js +0 -0
  256. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/261.7064465b.chunk.js.LICENSE.txt +0 -0
  257. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/272.c57ac0e4.chunk.js +0 -0
  258. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/274.dc861c12.chunk.js +0 -0
  259. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/292.ef38e7f6.chunk.js +0 -0
  260. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/314.8352dcf8.chunk.js +0 -0
  261. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/334.fc426162.chunk.js +0 -0
  262. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/390.6e5c8cf7.chunk.js +0 -0
  263. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/390.6e5c8cf7.chunk.js.LICENSE.txt +0 -0
  264. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/429.c723ecb4.chunk.js +0 -0
  265. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/432.fd437391.chunk.js +0 -0
  266. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/432.fd437391.chunk.js.LICENSE.txt +0 -0
  267. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/464.53a4cca5.chunk.js +0 -0
  268. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/483.dbda8eba.chunk.js +0 -0
  269. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/483.dbda8eba.chunk.js.LICENSE.txt +0 -0
  270. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/510.7a54dd75.chunk.js +0 -0
  271. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/538.96a6bf52.chunk.js +0 -0
  272. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/538.96a6bf52.chunk.js.LICENSE.txt +0 -0
  273. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/551.1570fa55.chunk.js +0 -0
  274. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/591.ff4692f4.chunk.js +0 -0
  275. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/623.be0c500d.chunk.js +0 -0
  276. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/623.be0c500d.chunk.js.LICENSE.txt +0 -0
  277. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/634.d0ee8e33.chunk.js +0 -0
  278. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/705.9a33d07f.chunk.js +0 -0
  279. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/713.a6d5d9bb.chunk.js +0 -0
  280. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/714.ba8c0399.chunk.js +0 -0
  281. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/784.21b8ebe2.chunk.js +0 -0
  282. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/787.35855372.chunk.js +0 -0
  283. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/800.6fb0fba3.chunk.js +0 -0
  284. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/830.7f4f1060.chunk.js +0 -0
  285. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/888.58eecc49.chunk.js +0 -0
  286. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/888.58eecc49.chunk.js.LICENSE.txt +0 -0
  287. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/js/998.983f28f4.chunk.js +0 -0
  288. /streamlit-nightly-1.21.1.dev20230423/streamlit/static/static/js/main.5e4731c6.js.LICENSE.txt → /streamlit-nightly-1.21.1.dev20230425/streamlit/static/static/js/main.ff35bd72.js.LICENSE.txt +0 -0
  289. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_AMS-Regular.73ea273a72f4aca30ca5.woff2 +0 -0
  290. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_AMS-Regular.853be92419a6c3766b9a.ttf +0 -0
  291. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_AMS-Regular.d562e886c52f12660a41.woff +0 -0
  292. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.7489a2fbfb9bfe704420.ttf +0 -0
  293. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.a1abf90dfd72792a577a.woff2 +0 -0
  294. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.d757c535a2e5902f1325.woff +0 -0
  295. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.7e873d3833eb108a0758.ttf +0 -0
  296. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.d6484fce1ef428d5bd94.woff2 +0 -0
  297. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.db074fa22cf224af93d7.woff +0 -0
  298. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Fraktur-Bold.354501bac435c3264834.woff +0 -0
  299. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Fraktur-Bold.4c761b3711973ab04edf.ttf +0 -0
  300. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Fraktur-Bold.931d67ea207ab37ee693.woff2 +0 -0
  301. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Fraktur-Regular.172d3529b26f8cedef6b.woff2 +0 -0
  302. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Fraktur-Regular.6fdf0ac577be0ba82a4c.woff +0 -0
  303. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Fraktur-Regular.ed305b5434865e06ffde.ttf +0 -0
  304. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Bold.0c3b8929d377c0e9b2f3.woff +0 -0
  305. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Bold.39890742bc957b368704.woff2 +0 -0
  306. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Bold.8169508bf58f8bd92ad8.ttf +0 -0
  307. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-BoldItalic.20f389c4120be058d80a.woff2 +0 -0
  308. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-BoldItalic.428978dc7837d46de091.woff +0 -0
  309. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-BoldItalic.828abcb200061cffbaae.ttf +0 -0
  310. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Italic.fa675e5e4bec9eb250b6.ttf +0 -0
  311. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Italic.fd947498bc16392e76c2.woff +0 -0
  312. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Italic.fe2176f79edaa716e621.woff2 +0 -0
  313. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Regular.4f35fbcc9ee8614c2bcc.woff +0 -0
  314. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Regular.9eba1d77abcf2aa6e94e.ttf +0 -0
  315. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Main-Regular.f650f111a3b890d116f1.woff2 +0 -0
  316. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Math-BoldItalic.3f07ed67f06c720120ce.woff +0 -0
  317. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Math-BoldItalic.bf2d440b3a42ea78a998.ttf +0 -0
  318. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Math-BoldItalic.dcbcbd93bac0470b462d.woff2 +0 -0
  319. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Math-Italic.6d3d25f4820d0da8f01f.woff2 +0 -0
  320. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Math-Italic.8a5f936332e8028c7278.ttf +0 -0
  321. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Math-Italic.96759856b4e70f3a8338.woff +0 -0
  322. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Bold.5b49f4993ae22d7975b4.ttf +0 -0
  323. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Bold.95591a929f0d32aa282a.woff2 +0 -0
  324. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Bold.b9cd458ac6d5889ff9c3.woff +0 -0
  325. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Italic.7d393d382f3e7fb1c637.woff2 +0 -0
  326. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Italic.8d593cfaa96238d5e2f8.woff +0 -0
  327. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Italic.b257a18c016f37ee4543.ttf +0 -0
  328. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Regular.02271ec5cb9f5b4588ac.woff +0 -0
  329. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Regular.2f7bc363fc5424ebda59.ttf +0 -0
  330. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_SansSerif-Regular.cd5e231e0cc53b2cb2c0.woff2 +0 -0
  331. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Script-Regular.073b3402d036714b4370.woff +0 -0
  332. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Script-Regular.c81d1b2a4b75d3eded60.woff2 +0 -0
  333. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Script-Regular.fc9ba5249878cd8f8d88.ttf +0 -0
  334. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size1-Regular.0108e89c9003e8c14ea3.woff +0 -0
  335. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size1-Regular.6de7d4b539221a49e9e2.ttf +0 -0
  336. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size1-Regular.6eec866c69313624be60.woff2 +0 -0
  337. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size2-Regular.2960900c4f271311eb36.woff2 +0 -0
  338. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size2-Regular.3a99e70aee4076660d38.woff +0 -0
  339. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size2-Regular.57f5c1837853986ea1db.ttf +0 -0
  340. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size3-Regular.7947224e8a9914fa332b.woff +0 -0
  341. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size3-Regular.8d6b6822586eea3d3b20.ttf +0 -0
  342. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size3-Regular.e1951519f6f0596f7356.woff2 +0 -0
  343. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size4-Regular.4ad7c7e8bb8d10a34bb7.ttf +0 -0
  344. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size4-Regular.aeffd8025cba3647f1a6.woff +0 -0
  345. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Size4-Regular.e418bf257af1052628d8.woff2 +0 -0
  346. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Typewriter-Regular.4c6b94fd1d07f8beff7c.woff +0 -0
  347. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Typewriter-Regular.c295e7f71970f03c0549.woff2 +0 -0
  348. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/KaTeX_Typewriter-Regular.c5c02d763c89380dcb4e.ttf +0 -0
  349. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceCodePro-Bold.52ac8f3034507f1d9e53.ttf +0 -0
  350. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceCodePro-BoldItalic.05b618077343fbbd92b7.ttf +0 -0
  351. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceCodePro-Italic.454577c22304619db035.ttf +0 -0
  352. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceCodePro-Regular.70cc7ff27245e82ad414.ttf +0 -0
  353. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceCodePro-SemiBold.4d4c53c06b5bebed1cf3.ttf +0 -0
  354. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceCodePro-SemiBoldItalic.2f5470bc8b2cd27a5c4b.ttf +0 -0
  355. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSansPro-Bold.12e6acd2589d00c9d0aa.ttf +0 -0
  356. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSansPro-BoldItalic.7c4f9b00300acb82f0f6.ttf +0 -0
  357. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSansPro-Italic.3c01996d38a55834ddcb.ttf +0 -0
  358. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSansPro-Regular.efa76f8326aa5cee3bdd.ttf +0 -0
  359. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSansPro-SemiBold.43cc81b496222dc9ce3c.ttf +0 -0
  360. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSansPro-SemiBoldItalic.c30987e28fc21daba1ae.ttf +0 -0
  361. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSerifPro-Bold.bada4fe17051c992f22f.ttf +0 -0
  362. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSerifPro-BoldItalic.9f9b1eb2d82e26bb2f4a.ttf +0 -0
  363. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSerifPro-Italic.90931d6ad253cd8de8e4.ttf +0 -0
  364. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSerifPro-Regular.6f22301c30206f4bad62.ttf +0 -0
  365. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSerifPro-SemiBold.b27cb117978bab2c80a3.ttf +0 -0
  366. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/SourceSerifPro-SemiBoldItalic.1266f2c17835efdcff7b.ttf +0 -0
  367. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/checkmark.29851c8e9e6ef0c3d6c1e4efe3c1bb9e.svg +0 -0
  368. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/fireworks.0906f02ea43f1018a6d2.gif +0 -0
  369. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/flake-0.beded754e8024c73d9d2.png +0 -0
  370. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/flake-1.8077dc154e0bf900aa73.png +0 -0
  371. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/flake-2.e3f07d06933dd0e84c24.png +0 -0
  372. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/index.0773f8d30492eff1644c.cjs +0 -0
  373. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/index.0e71a3ad51dd4f113b7c.cjs +0 -0
  374. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/index.1e3d64b0fcde879f0060.cjs +0 -0
  375. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/index.294a0edb7af7d19b781b.cjs +0 -0
  376. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/index.b599194a631d76b49328.cjs +0 -0
  377. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/logo.83ae4f2fb87e38be7cbb8a5d2beb64d2.svg +0 -0
  378. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/static/static/media/rocket.b75b17d2b0a063c6cea230d1a9d77f1e.svg +0 -0
  379. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/string_util.py +0 -0
  380. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/temporary_directory.py +0 -0
  381. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/testing/__init__.py +0 -0
  382. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/testing/local_script_runner.py +0 -0
  383. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/testing/script_interactions.py +0 -0
  384. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/url_util.py +0 -0
  385. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/user_info.py +0 -0
  386. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/util.py +0 -0
  387. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/vendor/__init__.py +0 -0
  388. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/vendor/ipython/__init__.py +0 -0
  389. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/vendor/ipython/modified_sys_path.py +0 -0
  390. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/version.py +0 -0
  391. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/watcher/__init__.py +0 -0
  392. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/watcher/event_based_path_watcher.py +0 -0
  393. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/watcher/local_sources_watcher.py +0 -0
  394. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/watcher/path_watcher.py +0 -0
  395. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/watcher/polling_path_watcher.py +0 -0
  396. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/watcher/util.py +0 -0
  397. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/__init__.py +0 -0
  398. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/bootstrap.py +0 -0
  399. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/cache_storage_manager_config.py +0 -0
  400. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/cli.py +0 -0
  401. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/__init__.py +0 -0
  402. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/app_static_file_handler.py +0 -0
  403. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/browser_websocket_handler.py +0 -0
  404. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/component_request_handler.py +0 -0
  405. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/media_file_handler.py +0 -0
  406. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/routes.py +0 -0
  407. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/server.py +0 -0
  408. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/server_util.py +0 -0
  409. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/stats_request_handler.py +0 -0
  410. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/upload_file_request_handler.py +0 -0
  411. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit/web/server/websocket_headers.py +0 -0
  412. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit_nightly.egg-info/dependency_links.txt +0 -0
  413. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit_nightly.egg-info/entry_points.txt +0 -0
  414. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit_nightly.egg-info/not-zip-safe +0 -0
  415. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit_nightly.egg-info/requires.txt +0 -0
  416. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/streamlit_nightly.egg-info/top_level.txt +0 -0
  417. {streamlit-nightly-1.21.1.dev20230423 → streamlit-nightly-1.21.1.dev20230425}/tests/testutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: streamlit-nightly
3
- Version: 1.21.1.dev20230423
3
+ Version: 1.21.1.dev20230425
4
4
  Summary: A faster way to build and share data apps
5
5
  Home-page: https://streamlit.io
6
6
  Author: Snowflake Inc
@@ -21,7 +21,7 @@ from setuptools.command.install import install
21
21
 
22
22
  THIS_DIRECTORY = Path(__file__).parent
23
23
 
24
- VERSION = "1.21.1.dev20230423" # PEP-440
24
+ VERSION = "1.21.1.dev20230425" # PEP-440
25
25
 
26
26
  NAME = "streamlit-nightly"
27
27
 
@@ -71,7 +71,6 @@ from streamlit.commands.query_params import (
71
71
  get_query_params as _get_query_params,
72
72
  set_query_params as _set_query_params,
73
73
  )
74
- from streamlit.elements.show import show as _show
75
74
 
76
75
  # Modules that the user should have access to. These are imported with "as"
77
76
  # syntax pass mypy checking with implicit_reexport disabled.
@@ -201,18 +200,12 @@ session_state = _SessionStateProxy()
201
200
  cache_data = _cache_data
202
201
  cache_resource = _cache_resource
203
202
 
204
- # Beta APIs
205
- beta_container = _gather_metrics("beta_container", _main.beta_container)
206
- beta_expander = _gather_metrics("beta_expander", _main.beta_expander)
207
- beta_columns = _gather_metrics("beta_columns", _main.beta_columns)
208
-
209
203
  # Experimental APIs
210
204
  experimental_user = _UserInfoProxy()
211
205
  experimental_singleton = _experimental_singleton
212
206
  experimental_memo = _experimental_memo
213
207
  experimental_get_query_params = _get_query_params
214
208
  experimental_set_query_params = _set_query_params
215
- experimental_show = _show
216
209
  experimental_rerun = _rerun
217
210
  experimental_data_editor = _main.experimental_data_editor
218
211
  experimental_connection = _connection_factory
@@ -0,0 +1,191 @@
1
+ # Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022)
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 collections.abc import Iterable
16
+ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, cast
17
+
18
+ import pyarrow as pa
19
+ from numpy import ndarray
20
+ from pandas import DataFrame
21
+
22
+ from streamlit import type_util
23
+ from streamlit.elements.lib.pandas_styler_utils import marshall_styler
24
+ from streamlit.proto.Arrow_pb2 import Arrow as ArrowProto
25
+ from streamlit.runtime.metrics_util import gather_metrics
26
+
27
+ if TYPE_CHECKING:
28
+ from pandas.io.formats.style import Styler
29
+
30
+ from streamlit.delta_generator import DeltaGenerator
31
+
32
+ Data = Union[
33
+ DataFrame, "Styler", pa.Table, ndarray, Iterable, Dict[str, List[Any]], None
34
+ ]
35
+
36
+
37
+ class ArrowMixin:
38
+ @gather_metrics("_arrow_dataframe")
39
+ def _arrow_dataframe(
40
+ self,
41
+ data: Data = None,
42
+ width: Optional[int] = None,
43
+ height: Optional[int] = None,
44
+ *,
45
+ use_container_width: bool = False,
46
+ ) -> "DeltaGenerator":
47
+ """Display a dataframe as an interactive table.
48
+
49
+ Parameters
50
+ ----------
51
+ data : pandas.DataFrame, pandas.Styler, pyarrow.Table, numpy.ndarray, pyspark.sql.DataFrame, snowflake.snowpark.DataFrame, Iterable, dict, or None
52
+ The data to display.
53
+
54
+ If 'data' is a pandas.Styler, it will be used to style its
55
+ underlying DataFrame.
56
+
57
+ width : int or None
58
+ Desired width of the dataframe element expressed in pixels. If None, the
59
+ width will be automatically determined.
60
+
61
+ height : int or None
62
+ Desired height of the dataframe element expressed in pixels. If None, the
63
+ height will be automatically determined.
64
+
65
+ use_container_width : bool
66
+ If True, set the dataframe width to the width of the parent container.
67
+ This takes precedence over the width argument.
68
+ This argument can only be supplied by keyword.
69
+
70
+ Examples
71
+ --------
72
+ >>> import streamlit as st
73
+ >>> import pandas as pd
74
+ >>> import numpy as np
75
+ >>>
76
+ >>> df = pd.DataFrame(
77
+ ... np.random.randn(50, 20),
78
+ ... columns=('col %d' % i for i in range(20)))
79
+ ...
80
+ >>> st._arrow_dataframe(df)
81
+
82
+ >>> st._arrow_dataframe(df, 200, 100)
83
+
84
+ You can also pass a Pandas Styler object to change the style of
85
+ the rendered DataFrame:
86
+
87
+ >>> df = pd.DataFrame(
88
+ ... np.random.randn(10, 20),
89
+ ... columns=('col %d' % i for i in range(20)))
90
+ ...
91
+ >>> st._arrow_dataframe(df.style.highlight_max(axis=0))
92
+
93
+ """
94
+
95
+ # If pandas.Styler uuid is not provided, a hash of the position
96
+ # of the element will be used. This will cause a rerender of the table
97
+ # when the position of the element is changed.
98
+ delta_path = self.dg._get_delta_path_str()
99
+ default_uuid = str(hash(delta_path))
100
+
101
+ proto = ArrowProto()
102
+ proto.use_container_width = use_container_width
103
+ if width:
104
+ proto.width = width
105
+ if height:
106
+ proto.height = height
107
+ proto.editing_mode = ArrowProto.EditingMode.READ_ONLY
108
+
109
+ marshall(proto, data, default_uuid)
110
+
111
+ return self.dg._enqueue("arrow_data_frame", proto)
112
+
113
+ @gather_metrics("_arrow_table")
114
+ def _arrow_table(self, data: Data = None) -> "DeltaGenerator":
115
+ """Display a static table.
116
+
117
+ This differs from `st._arrow_dataframe` in that the table in this case is
118
+ static: its entire contents are laid out directly on the page.
119
+
120
+ Parameters
121
+ ----------
122
+ data : pandas.DataFrame, pandas.Styler, pyarrow.Table, numpy.ndarray, pyspark.sql.DataFrame, snowflake.snowpark.DataFrame, Iterable, dict, or None
123
+ The table data.
124
+
125
+ Example
126
+ -------
127
+ >>> import streamlit as st
128
+ >>> import pandas as pd
129
+ >>> import numpy as np
130
+ >>>
131
+ >>> df = pd.DataFrame(
132
+ ... np.random.randn(10, 5),
133
+ ... columns=("col %d" % i for i in range(5)))
134
+ ...
135
+ >>> st._arrow_table(df)
136
+
137
+ """
138
+
139
+ # Check if data is uncollected, and collect it but with 100 rows max, instead of 10k rows, which is done in all other cases.
140
+ # Avoid this and use 100 rows in st.table, because large tables render slowly, take too much screen space, and can crush the app.
141
+ if type_util.is_snowpark_data_object(data) or type_util.is_type(
142
+ data, type_util._PYSPARK_DF_TYPE_STR
143
+ ):
144
+ data = type_util.convert_anything_to_df(data, max_unevaluated_rows=100)
145
+
146
+ # If pandas.Styler uuid is not provided, a hash of the position
147
+ # of the element will be used. This will cause a rerender of the table
148
+ # when the position of the element is changed.
149
+ delta_path = self.dg._get_delta_path_str()
150
+ default_uuid = str(hash(delta_path))
151
+
152
+ proto = ArrowProto()
153
+ marshall(proto, data, default_uuid)
154
+ return self.dg._enqueue("arrow_table", proto)
155
+
156
+ @property
157
+ def dg(self) -> "DeltaGenerator":
158
+ """Get our DeltaGenerator."""
159
+ return cast("DeltaGenerator", self)
160
+
161
+
162
+ def marshall(proto: ArrowProto, data: Data, default_uuid: Optional[str] = None) -> None:
163
+ """Marshall pandas.DataFrame into an Arrow proto.
164
+
165
+ Parameters
166
+ ----------
167
+ proto : proto.Arrow
168
+ Output. The protobuf for Streamlit Arrow proto.
169
+
170
+ data : pandas.DataFrame, pandas.Styler, pyarrow.Table, numpy.ndarray, pyspark.sql.DataFrame, snowflake.snowpark.DataFrame, Iterable, dict, or None
171
+ Something that is or can be converted to a dataframe.
172
+
173
+ default_uuid : Optional[str]
174
+ If pandas.Styler UUID is not provided, this value will be used.
175
+ This attribute is optional and only used for pandas.Styler, other elements
176
+ (e.g. charts) can ignore it.
177
+
178
+ """
179
+ if type_util.is_pandas_styler(data):
180
+ # default_uuid is a string only if the data is a `Styler`,
181
+ # and `None` otherwise.
182
+ assert isinstance(
183
+ default_uuid, str
184
+ ), "Default UUID must be a string for Styler data."
185
+ marshall_styler(proto, data, default_uuid)
186
+
187
+ if isinstance(data, pa.Table):
188
+ proto.data = type_util.pyarrow_table_to_bytes(data)
189
+ else:
190
+ df = type_util.convert_anything_to_df(data)
191
+ proto.data = type_util.data_frame_to_bytes(df)
@@ -14,7 +14,6 @@
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
- import contextlib
18
17
  import json
19
18
  from dataclasses import dataclass
20
19
  from typing import (
@@ -34,13 +33,20 @@ from typing import (
34
33
 
35
34
  import pandas as pd
36
35
  import pyarrow as pa
37
- from pandas.api.types import is_datetime64_any_dtype, is_float_dtype, is_integer_dtype
38
- from pandas.io.formats.style import Styler
39
- from typing_extensions import Final, Literal, TypeAlias, TypedDict
36
+ from typing_extensions import Literal, TypeAlias, TypedDict
40
37
 
38
+ from streamlit import logger as _logger
41
39
  from streamlit import type_util
42
- from streamlit.elements.arrow import marshall_styler
43
40
  from streamlit.elements.form import current_form_id
41
+ from streamlit.elements.lib.column_config_utils import (
42
+ INDEX_IDENTIFIER,
43
+ ColumnConfigMapping,
44
+ ColumnDataKind,
45
+ DataframeSchema,
46
+ determine_dataframe_schema,
47
+ marshall_column_config,
48
+ )
49
+ from streamlit.elements.lib.pandas_styler_utils import marshall_styler
44
50
  from streamlit.errors import StreamlitAPIException
45
51
  from streamlit.proto.Arrow_pb2 import Arrow as ArrowProto
46
52
  from streamlit.runtime.metrics_util import gather_metrics
@@ -55,10 +61,11 @@ from streamlit.type_util import DataFormat, DataFrameGenericAlias, Key, is_type,
55
61
 
56
62
  if TYPE_CHECKING:
57
63
  import numpy as np
64
+ from pandas.io.formats.style import Styler
58
65
 
59
66
  from streamlit.delta_generator import DeltaGenerator
60
67
 
61
- _INDEX_IDENTIFIER: Final = "index"
68
+ _LOGGER = _logger.get_logger("root")
62
69
 
63
70
  # All formats that support direct editing, meaning that these
64
71
  # formats will be returned with the same type when used with data_editor.
@@ -81,7 +88,7 @@ EditableData = TypeVar(
81
88
  DataTypes: TypeAlias = Union[
82
89
  pd.DataFrame,
83
90
  pd.Index,
84
- Styler,
91
+ "Styler",
85
92
  pa.Table,
86
93
  "np.ndarray[Any, np.dtype[np.float64]]",
87
94
  Tuple[Any],
@@ -91,25 +98,6 @@ DataTypes: TypeAlias = Union[
91
98
  ]
92
99
 
93
100
 
94
- class ColumnConfig(TypedDict, total=False):
95
- width: Optional[int]
96
- title: Optional[str]
97
- type: Optional[
98
- Literal[
99
- "text",
100
- "number",
101
- "boolean",
102
- "list",
103
- "categorical",
104
- ]
105
- ]
106
- hidden: Optional[bool]
107
- editable: Optional[bool]
108
- alignment: Optional[Literal["left", "center", "right"]]
109
- metadata: Optional[Dict[str, Any]]
110
- column: Optional[Union[str, int]]
111
-
112
-
113
101
  class EditingState(TypedDict, total=False):
114
102
  """
115
103
  A dictionary representing the current state of the data editor.
@@ -133,44 +121,6 @@ class EditingState(TypedDict, total=False):
133
121
  deleted_rows: List[int]
134
122
 
135
123
 
136
- # A mapping of column names/IDs to column configs.
137
- ColumnConfigMapping: TypeAlias = Dict[Union[int, str], ColumnConfig]
138
-
139
-
140
- def _marshall_column_config(
141
- proto: ArrowProto, columns: Optional[Dict[Union[int, str], ColumnConfig]] = None
142
- ) -> None:
143
- """Marshall the column config into the proto.
144
-
145
- Parameters
146
- ----------
147
- proto : ArrowProto
148
- The proto to marshall into.
149
-
150
- columns : Optional[ColumnConfigMapping]
151
- The column config to marshall.
152
- """
153
- if columns is None:
154
- columns = {}
155
-
156
- # Ignore all None values and prefix columns specified by index
157
- def remove_none_values(input_dict: Dict[Any, Any]) -> Dict[Any, Any]:
158
- new_dict = {}
159
- for key, val in input_dict.items():
160
- if isinstance(val, dict):
161
- val = remove_none_values(val)
162
- if val is not None:
163
- new_dict[key] = val
164
- return new_dict
165
-
166
- proto.columns = json.dumps(
167
- {
168
- (f"col:{str(k)}" if isinstance(k, int) else k): v
169
- for (k, v) in remove_none_values(columns).items()
170
- }
171
- )
172
-
173
-
174
124
  @dataclass
175
125
  class DataEditorSerde:
176
126
  """DataEditorSerde is used to serialize and deserialize the data editor state."""
@@ -190,7 +140,10 @@ class DataEditorSerde:
190
140
  return json.dumps(editing_state, default=str)
191
141
 
192
142
 
193
- def _parse_value(value: Union[str, int, float, bool, None], dtype) -> Any:
143
+ def _parse_value(
144
+ value: str | int | float | bool | None,
145
+ column_data_kind: ColumnDataKind,
146
+ ) -> Any:
194
147
  """Convert a value to the correct type.
195
148
 
196
149
  Parameters
@@ -198,8 +151,9 @@ def _parse_value(value: Union[str, int, float, bool, None], dtype) -> Any:
198
151
  value : str | int | float | bool | None
199
152
  The value to convert.
200
153
 
201
- dtype
202
- The type of the value.
154
+ column_data_kind : ColumnDataKind
155
+ The determined data kind of the column. The column data kind refers to the
156
+ shared data type of the values in the column (e.g. integer, float, string).
203
157
 
204
158
  Returns
205
159
  -------
@@ -208,23 +162,53 @@ def _parse_value(value: Union[str, int, float, bool, None], dtype) -> Any:
208
162
  if value is None:
209
163
  return None
210
164
 
211
- # TODO(lukasmasuch): how to deal with date & time columns?
165
+ try:
166
+ if column_data_kind == ColumnDataKind.STRING:
167
+ return str(value)
212
168
 
213
- # Datetime values try to parse the value to datetime:
214
- # The value is expected to be a ISO 8601 string
215
- if is_datetime64_any_dtype(dtype):
216
- return pd.to_datetime(value, errors="ignore")
217
- elif is_integer_dtype(dtype):
218
- with contextlib.suppress(ValueError):
169
+ if column_data_kind == ColumnDataKind.INTEGER:
219
170
  return int(value)
220
- elif is_float_dtype(dtype):
221
- with contextlib.suppress(ValueError):
171
+
172
+ if column_data_kind == ColumnDataKind.FLOAT:
222
173
  return float(value)
174
+
175
+ if column_data_kind == ColumnDataKind.BOOLEAN:
176
+ return bool(value)
177
+
178
+ if column_data_kind in [
179
+ ColumnDataKind.DATETIME,
180
+ ColumnDataKind.DATE,
181
+ ColumnDataKind.TIME,
182
+ ]:
183
+ datetime_value = pd.to_datetime(value, utc=False)
184
+
185
+ if datetime_value is pd.NaT:
186
+ return None
187
+
188
+ if isinstance(datetime_value, pd.Timestamp):
189
+ datetime_value = datetime_value.to_pydatetime()
190
+
191
+ if column_data_kind == ColumnDataKind.DATETIME:
192
+ return datetime_value
193
+
194
+ if column_data_kind == ColumnDataKind.DATE:
195
+ return datetime_value.date()
196
+
197
+ if column_data_kind == ColumnDataKind.TIME:
198
+ return datetime_value.time()
199
+
200
+ except (ValueError, pd.errors.ParserError) as ex:
201
+ _LOGGER.warning(
202
+ "Failed to parse value %s as %s. Exception: %s", value, column_data_kind, ex
203
+ )
204
+ return None
223
205
  return value
224
206
 
225
207
 
226
208
  def _apply_cell_edits(
227
- df: pd.DataFrame, edited_cells: Mapping[str, str | int | float | bool | None]
209
+ df: pd.DataFrame,
210
+ edited_cells: Mapping[str, str | int | float | bool | None],
211
+ dataframe_schema: DataframeSchema,
228
212
  ) -> None:
229
213
  """Apply cell edits to the provided dataframe (inplace).
230
214
 
@@ -237,6 +221,8 @@ def _apply_cell_edits(
237
221
  A dictionary of cell edits. The keys are the cell ids in the format
238
222
  "row:column" and the values are the new cell values.
239
223
 
224
+ dataframe_schema: DataframeSchema
225
+ The schema of the dataframe.
240
226
  """
241
227
  index_count = df.index.nlevels or 0
242
228
 
@@ -247,17 +233,21 @@ def _apply_cell_edits(
247
233
  # The edited cell is part of the index
248
234
  # To support multi-index in the future: use a tuple of values here
249
235
  # instead of a single value
250
- df.index.values[row_pos] = _parse_value(value, df.index.dtype)
236
+ df.index.values[row_pos] = _parse_value(value, dataframe_schema[col_pos])
251
237
  else:
252
238
  # We need to subtract the number of index levels from col_pos
253
239
  # to get the correct column position for Pandas DataFrames
254
240
  mapped_column = col_pos - index_count
255
241
  df.iat[row_pos, mapped_column] = _parse_value(
256
- value, df.iloc[:, mapped_column].dtype
242
+ value, dataframe_schema[col_pos]
257
243
  )
258
244
 
259
245
 
260
- def _apply_row_additions(df: pd.DataFrame, added_rows: List[Dict[str, Any]]) -> None:
246
+ def _apply_row_additions(
247
+ df: pd.DataFrame,
248
+ added_rows: List[Dict[str, Any]],
249
+ dataframe_schema: DataframeSchema,
250
+ ) -> None:
261
251
  """Apply row additions to the provided dataframe (inplace).
262
252
 
263
253
  Parameters
@@ -268,6 +258,9 @@ def _apply_row_additions(df: pd.DataFrame, added_rows: List[Dict[str, Any]]) ->
268
258
  added_rows : List[Dict[str, Any]]
269
259
  A list of row additions. Each row addition is a dictionary with the
270
260
  column position as key and the new cell value as value.
261
+
262
+ dataframe_schema: DataframeSchema
263
+ The schema of the dataframe.
271
264
  """
272
265
  if not added_rows:
273
266
  return
@@ -279,7 +272,7 @@ def _apply_row_additions(df: pd.DataFrame, added_rows: List[Dict[str, Any]]) ->
279
272
  # combination with loc. As a workaround, we manually track the values here:
280
273
  range_index_stop = None
281
274
  range_index_step = None
282
- if type(df.index) == pd.RangeIndex:
275
+ if isinstance(df.index, pd.RangeIndex):
283
276
  range_index_stop = df.index.stop
284
277
  range_index_step = df.index.step
285
278
 
@@ -292,14 +285,12 @@ def _apply_row_additions(df: pd.DataFrame, added_rows: List[Dict[str, Any]]) ->
292
285
  if col_pos < index_count:
293
286
  # To support multi-index in the future: use a tuple of values here
294
287
  # instead of a single value
295
- index_value = _parse_value(value, df.index.dtype)
288
+ index_value = _parse_value(value, dataframe_schema[col_pos])
296
289
  else:
297
290
  # We need to subtract the number of index levels from the col_pos
298
291
  # to get the correct column position for Pandas DataFrames
299
292
  mapped_column = col_pos - index_count
300
- new_row[mapped_column] = _parse_value(
301
- value, df.iloc[:, mapped_column].dtype
302
- )
293
+ new_row[mapped_column] = _parse_value(value, dataframe_schema[col_pos])
303
294
  # Append the new row to the dataframe
304
295
  if range_index_stop is not None:
305
296
  df.loc[range_index_stop, :] = new_row
@@ -329,7 +320,11 @@ def _apply_row_deletions(df: pd.DataFrame, deleted_rows: List[int]) -> None:
329
320
  df.drop(df.index[deleted_rows], inplace=True)
330
321
 
331
322
 
332
- def _apply_dataframe_edits(df: pd.DataFrame, data_editor_state: EditingState) -> None:
323
+ def _apply_dataframe_edits(
324
+ df: pd.DataFrame,
325
+ data_editor_state: EditingState,
326
+ dataframe_schema: DataframeSchema,
327
+ ) -> None:
333
328
  """Apply edits to the provided dataframe (inplace).
334
329
 
335
330
  This includes cell edits, row additions and row deletions.
@@ -341,12 +336,15 @@ def _apply_dataframe_edits(df: pd.DataFrame, data_editor_state: EditingState) ->
341
336
 
342
337
  data_editor_state : EditingState
343
338
  The editing state of the data editor component.
339
+
340
+ dataframe_schema: DataframeSchema
341
+ The schema of the dataframe.
344
342
  """
345
343
  if data_editor_state.get("edited_cells"):
346
- _apply_cell_edits(df, data_editor_state["edited_cells"])
344
+ _apply_cell_edits(df, data_editor_state["edited_cells"], dataframe_schema)
347
345
 
348
346
  if data_editor_state.get("added_rows"):
349
- _apply_row_additions(df, data_editor_state["added_rows"])
347
+ _apply_row_additions(df, data_editor_state["added_rows"], dataframe_schema)
350
348
 
351
349
  if data_editor_state.get("deleted_rows"):
352
350
  _apply_row_deletions(df, data_editor_state["deleted_rows"])
@@ -376,7 +374,7 @@ def _apply_data_specific_configs(
376
374
  if type_util.is_colum_type_arrow_incompatible(column_data):
377
375
  if column_name not in columns_config:
378
376
  columns_config[column_name] = {}
379
- columns_config[column_name]["editable"] = False
377
+ columns_config[column_name]["disabled"] = True
380
378
  # Convert incompatible type to string
381
379
  data_df[column_name] = column_data.astype(str)
382
380
 
@@ -393,9 +391,9 @@ def _apply_data_specific_configs(
393
391
  DataFormat.LIST_OF_ROWS,
394
392
  DataFormat.COLUMN_VALUE_MAPPING,
395
393
  ]:
396
- if _INDEX_IDENTIFIER not in columns_config:
397
- columns_config[_INDEX_IDENTIFIER] = {}
398
- columns_config[_INDEX_IDENTIFIER]["hidden"] = True
394
+ if INDEX_IDENTIFIER not in columns_config:
395
+ columns_config[INDEX_IDENTIFIER] = {}
396
+ columns_config[INDEX_IDENTIFIER]["hidden"] = True
399
397
 
400
398
  # Rename the first column to "value" for some of the data formats
401
399
  if data_format in [
@@ -593,13 +591,24 @@ class DataEditorMixin:
593
591
 
594
592
  # Temporary workaround: We hide range indices if num_rows is dynamic.
595
593
  # since the current way of handling this index during editing is a bit confusing.
596
- if type(data_df.index) is pd.RangeIndex and num_rows == "dynamic":
597
- if _INDEX_IDENTIFIER not in columns_config:
598
- columns_config[_INDEX_IDENTIFIER] = {}
599
- columns_config[_INDEX_IDENTIFIER]["hidden"] = True
594
+ if isinstance(data_df.index, pd.RangeIndex) and num_rows == "dynamic":
595
+ if INDEX_IDENTIFIER not in columns_config:
596
+ columns_config[INDEX_IDENTIFIER] = {}
597
+ columns_config[INDEX_IDENTIFIER]["hidden"] = True
598
+
599
+ # Convert the dataframe to an arrow table which is used as the main
600
+ # serialization format for sending the data to the frontend.
601
+ # We also utilize the arrow schema to determine the data kinds of every column.
602
+ arrow_table = pa.Table.from_pandas(data_df)
603
+
604
+ # Determine the dataframe schema which is required for parsing edited values
605
+ # and for checking type compatibilities.
606
+ dataframe_schema = determine_dataframe_schema(data_df, arrow_table.schema)
600
607
 
601
608
  proto = ArrowProto()
609
+
602
610
  proto.use_container_width = use_container_width
611
+
603
612
  if width:
604
613
  proto.width = width
605
614
  if height:
@@ -614,14 +623,14 @@ class DataEditorMixin:
614
623
  proto.form_id = current_form_id(self.dg)
615
624
 
616
625
  if type_util.is_pandas_styler(data):
626
+ # Pandas styler will only work for non-editable/disabled columns.
617
627
  delta_path = self.dg._get_delta_path_str()
618
628
  default_uuid = str(hash(delta_path))
619
629
  marshall_styler(proto, data, default_uuid)
620
630
 
621
- table = pa.Table.from_pandas(data_df)
622
- proto.data = type_util.pyarrow_table_to_bytes(table)
631
+ proto.data = type_util.pyarrow_table_to_bytes(arrow_table)
623
632
 
624
- _marshall_column_config(proto, columns_config)
633
+ marshall_column_config(proto, columns_config)
625
634
 
626
635
  serde = DataEditorSerde()
627
636
 
@@ -637,7 +646,7 @@ class DataEditorMixin:
637
646
  ctx=get_script_run_ctx(),
638
647
  )
639
648
 
640
- _apply_dataframe_edits(data_df, widget_state.value)
649
+ _apply_dataframe_edits(data_df, widget_state.value, dataframe_schema)
641
650
  self.dg._enqueue("arrow_data_frame", proto)
642
651
  return type_util.convert_df_to_data_format(data_df, data_format)
643
652
 
@@ -43,6 +43,15 @@ from streamlit.type_util import Key, LabelVisibility, maybe_raise_label_warnings
43
43
  SomeUploadedFiles = Optional[Union[UploadedFile, List[UploadedFile]]]
44
44
 
45
45
 
46
+ TYPE_PAIRS = [
47
+ (".jpg", ".jpeg"),
48
+ (".mpg", ".mpeg"),
49
+ (".mp4", ".mpeg4"),
50
+ (".tif", ".tiff"),
51
+ (".htm", ".html"),
52
+ ]
53
+
54
+
46
55
  def _get_file_recs(
47
56
  widget_id: str, widget_value: Optional[FileUploaderStateProto]
48
57
  ) -> List[UploadedFileRec]:
@@ -390,6 +399,14 @@ class FileUploaderMixin:
390
399
  for file_type in type
391
400
  ]
392
401
 
402
+ type = [t.lower() for t in type]
403
+
404
+ for x, y in TYPE_PAIRS:
405
+ if x in type and y not in type:
406
+ type.append(y)
407
+ if y in type and x not in type:
408
+ type.append(x)
409
+
393
410
  file_uploader_proto = FileUploaderProto()
394
411
  file_uploader_proto.label = label
395
412
  file_uploader_proto.type[:] = type if type is not None else []
@@ -416,8 +416,3 @@ class LayoutsMixin:
416
416
  def dg(self) -> "DeltaGenerator":
417
417
  """Get our DeltaGenerator."""
418
418
  return cast("DeltaGenerator", self)
419
-
420
- # Deprecated beta_ functions
421
- beta_container = deprecate_func_name(container, "beta_container", "2021-11-02")
422
- beta_expander = deprecate_func_name(expander, "beta_expander", "2021-11-02")
423
- beta_columns = deprecate_func_name(columns, "beta_columns", "2021-11-02")