streamlit-nightly 1.41.2.dev20250109__py2.py3-none-any.whl → 1.41.2.dev20250110__py2.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.
- streamlit/config.py +3 -2
- streamlit/config_option.py +9 -18
- streamlit/dataframe_util.py +2 -2
- streamlit/delta_generator.py +6 -2
- streamlit/elements/exception.py +7 -9
- streamlit/elements/widgets/button_group.py +5 -3
- streamlit/elements/widgets/data_editor.py +4 -1
- streamlit/emojis.py +1 -1
- streamlit/runtime/app_session.py +23 -1
- streamlit/runtime/caching/cache_data_api.py +2 -2
- streamlit/runtime/caching/cache_utils.py +4 -3
- streamlit/runtime/caching/storage/local_disk_cache_storage.py +4 -4
- streamlit/runtime/credentials.py +4 -4
- streamlit/runtime/forward_msg_cache.py +3 -1
- streamlit/runtime/pages_manager.py +3 -1
- streamlit/runtime/scriptrunner/script_runner.py +1 -1
- streamlit/static/index.html +1 -1
- streamlit/static/static/js/{FileDownload.esm.C6kraHI_.js → FileDownload.esm.DgMBFvxE.js} +1 -1
- streamlit/static/static/js/{FormClearHelper.Tmz_sTQ8.js → FormClearHelper.C-kz8EZa.js} +1 -1
- streamlit/static/static/js/{Hooks.ChcK58kV.js → Hooks.BaEjlpBt.js} +1 -1
- streamlit/static/static/js/{InputInstructions.CWlmC2Qh.js → InputInstructions.2kJ3lLP5.js} +1 -1
- streamlit/static/static/js/{ProgressBar.C2LLZx-o.js → ProgressBar.BmX5Bd8z.js} +2 -2
- streamlit/static/static/js/{RenderInPortalIfExists.BFB9tinI.js → RenderInPortalIfExists.DvbHx6rz.js} +1 -1
- streamlit/static/static/js/{Toolbar.DVKl5Ty9.js → Toolbar.Cs7p2Lp9.js} +1 -1
- streamlit/static/static/js/{base-input.C7heAUz7.js → base-input.CmWUWSJc.js} +4 -4
- streamlit/static/static/js/{createSuper.BGkH3lYW.js → createSuper.D46anxnG.js} +1 -1
- streamlit/static/static/js/{data-grid-overlay-editor.Cuw9mHAA.js → data-grid-overlay-editor.BspRPTtu.js} +1 -1
- streamlit/static/static/js/{downloader.Dt0tCM6a.js → downloader.BX0QN5eD.js} +1 -1
- streamlit/static/static/js/{es6.DEWLLkEJ.js → es6.BlW--gnF.js} +2 -2
- streamlit/static/static/js/{getPrototypeOf.BobjvJFE.js → getPrototypeOf.BYTPPQIp.js} +1 -1
- streamlit/static/static/js/{iframeResizer.contentWindow.Cb2nEQV3.js → iframeResizer.contentWindow.CNHQyyTg.js} +1 -1
- streamlit/static/static/js/{index.C4ggakh6.js → index.-JIbeXZC.js} +11 -11
- streamlit/static/static/js/{index.BbullfwT.js → index.2kexLuIU.js} +62 -62
- streamlit/static/static/js/{index.DTQeyNXN.js → index.5f81IBZP.js} +1 -1
- streamlit/static/static/js/{index.BU-BMiNz.js → index.7441r-sL.js} +1 -1
- streamlit/static/static/js/index.AzFWl1A_.js +3 -0
- streamlit/static/static/js/{index.BhvVhqgM.js → index.B1RTO67W.js} +1 -1
- streamlit/static/static/js/{index.b1jbiVGt.js → index.B2lUWG_g.js} +1 -1
- streamlit/static/static/js/{index.BBm-I8-2.js → index.B3F-o9ex.js} +1 -1
- streamlit/static/static/js/{index.8LNY4OIb.js → index.BBK0SZBc.js} +3 -3
- streamlit/static/static/js/{index.CKpkbBQ4.js → index.BBQgDj4i.js} +16 -16
- streamlit/static/static/js/{index.CsnZSzHc.js → index.BHVs7_wn.js} +1 -1
- streamlit/static/static/js/{index.BSITpAz8.js → index.BRwmGBP4.js} +9 -9
- streamlit/static/static/js/{index.CKyzSK7k.js → index.BSabhp-S.js} +2 -2
- streamlit/static/static/js/{index.C6zLaEWH.js → index.BX4DPcrq.js} +1 -1
- streamlit/static/static/js/{index.IRVXqVyf.js → index.BhQrqdv2.js} +1 -1
- streamlit/static/static/js/index.BhRQ3Irc.js +1 -0
- streamlit/static/static/js/index.BqCCfwZM.js +1 -0
- streamlit/static/static/js/{index.CksJdg_n.js → index.BtaWfSZN.js} +1 -1
- streamlit/static/static/js/{index.CWzMR4Qn.js → index.BwvnBWfd.js} +2 -2
- streamlit/static/static/js/{index.Caaf3Sch.js → index.CAmkSLgk.js} +1 -1
- streamlit/static/static/js/{index.De91xhMb.js → index.CKhEFCMB.js} +1 -1
- streamlit/static/static/js/index.CdjxQOw-.js +1 -0
- streamlit/static/static/js/index.ClU6Toj3.js +1 -0
- streamlit/static/static/js/{index.n7L72_oq.js → index.D4cEoG-b.js} +3 -3
- streamlit/static/static/js/{index.DSOFf22B.js → index.D7zDVCSD.js} +1 -1
- streamlit/static/static/js/{index.B59J81FK.js → index.D8V0ZERG.js} +1 -1
- streamlit/static/static/js/{index.kz_FxQ30.js → index.DAlH7XAu.js} +1 -1
- streamlit/static/static/js/index.DGXjFinj.js +1 -0
- streamlit/static/static/js/{index.BAlqqBcw.js → index.DKFY5Ha1.js} +3 -3
- streamlit/static/static/js/{index.2xRq6cMk.js → index.DRm6hoq7.js} +1 -1
- streamlit/static/static/js/index.DhCGDinQ.js +2 -0
- streamlit/static/static/js/index.Drqk1Tqs.js +1 -0
- streamlit/static/static/js/{index.DeX4c3dx.js → index.DuEIfrbC.js} +1 -1
- streamlit/static/static/js/{index.D2_ysKuQ.js → index.a4u3c2yA.js} +1 -1
- streamlit/static/static/js/{index.DA-jgmvJ.js → index.d1dU1FHw.js} +1 -1
- streamlit/static/static/js/{index.BwUNY-jU.js → index.tQ3BfkaX.js} +1 -1
- streamlit/static/static/js/{index.CJrSPe9e.js → index.y-VLJ65m.js} +1 -1
- streamlit/static/static/js/{input.qSadM7Tx.js → input.C7wSNGte.js} +2 -2
- streamlit/static/static/js/{memory.CROZv0Mn.js → memory.BF0Xc-rJ.js} +1 -1
- streamlit/static/static/js/{mergeWith.CO-Rv2Zo.js → mergeWith.CHIovAKI.js} +1 -1
- streamlit/static/static/js/{number-overlay-editor.BRQhYKOF.js → number-overlay-editor.DfAWep9y.js} +1 -1
- streamlit/static/static/js/{sandbox.CZKLDBgs.js → sandbox.CM0H2h0v.js} +1 -1
- streamlit/static/static/js/{slicedToArray.D36w_Bc8.js → slicedToArray.BOBOh4VJ.js} +1 -1
- streamlit/static/static/js/{textarea.DvzSPS_8.js → textarea.CINkGDSQ.js} +2 -2
- streamlit/static/static/js/{timepicker.FNAmrJ96.js → timepicker.eZuQgQCF.js} +1 -1
- streamlit/static/static/js/{uniqueId.BNjI9ROI.js → uniqueId.vdNgUDff.js} +1 -1
- streamlit/static/static/js/{useBasicWidgetState.B8IH-5cn.js → useBasicWidgetState.De0NYf9Y.js} +1 -1
- streamlit/static/static/js/{useOnInputChange.B1QB2TNw.js → useOnInputChange.cRNtiNHf.js} +1 -1
- streamlit/static/static/js/{withFullScreenWrapper.BT91IT4-.js → withFullScreenWrapper.D4HXFzaF.js} +1 -1
- streamlit/watcher/local_sources_watcher.py +4 -2
- streamlit/web/server/browser_websocket_handler.py +1 -1
- {streamlit_nightly-1.41.2.dev20250109.dist-info → streamlit_nightly-1.41.2.dev20250110.dist-info}/METADATA +1 -1
- {streamlit_nightly-1.41.2.dev20250109.dist-info → streamlit_nightly-1.41.2.dev20250110.dist-info}/RECORD +88 -88
- streamlit/static/static/js/index.3dqlv1Xq.js +0 -2
- streamlit/static/static/js/index.4hESrvbj.js +0 -1
- streamlit/static/static/js/index.BEEgvyV0.js +0 -1
- streamlit/static/static/js/index.Bo2RO7c-.js +0 -1
- streamlit/static/static/js/index.CJKd6KIo.js +0 -1
- streamlit/static/static/js/index.CdNirCmM.js +0 -1
- streamlit/static/static/js/index.Cq6-Dj2J.js +0 -1
- streamlit/static/static/js/index.bQJeNN28.js +0 -3
- {streamlit_nightly-1.41.2.dev20250109.data → streamlit_nightly-1.41.2.dev20250110.data}/scripts/streamlit.cmd +0 -0
- {streamlit_nightly-1.41.2.dev20250109.dist-info → streamlit_nightly-1.41.2.dev20250110.dist-info}/WHEEL +0 -0
- {streamlit_nightly-1.41.2.dev20250109.dist-info → streamlit_nightly-1.41.2.dev20250110.dist-info}/entry_points.txt +0 -0
- {streamlit_nightly-1.41.2.dev20250109.dist-info → streamlit_nightly-1.41.2.dev20250110.dist-info}/top_level.txt +0 -0
streamlit/config.py
CHANGED
@@ -1126,7 +1126,8 @@ def _set_option(key: str, value: Any, where_defined: str) -> None:
|
|
1126
1126
|
LOGGER = get_logger(__name__)
|
1127
1127
|
|
1128
1128
|
LOGGER.warning(
|
1129
|
-
f'"{key}" is not a valid config option. If you previously had this config
|
1129
|
+
f'"{key}" is not a valid config option. If you previously had this config '
|
1130
|
+
"option set, it may have been removed."
|
1130
1131
|
)
|
1131
1132
|
|
1132
1133
|
else:
|
@@ -1197,7 +1198,7 @@ def _maybe_read_env_variable(value: Any) -> Any:
|
|
1197
1198
|
|
1198
1199
|
LOGGER = get_logger(__name__)
|
1199
1200
|
|
1200
|
-
LOGGER.error("No environment variable called %s"
|
1201
|
+
LOGGER.error("No environment variable called %s", var_name)
|
1201
1202
|
else:
|
1202
1203
|
return _maybe_convert_to_number(env_var)
|
1203
1204
|
|
streamlit/config_option.py
CHANGED
@@ -250,13 +250,6 @@ class ConfigOption:
|
|
250
250
|
self.is_default = value == self.default_val
|
251
251
|
|
252
252
|
if self.deprecated and self.where_defined != ConfigOption.DEFAULT_DEFINITION:
|
253
|
-
details = {
|
254
|
-
"key": self.key,
|
255
|
-
"file": self.where_defined,
|
256
|
-
"explanation": self.deprecation_text,
|
257
|
-
"date": self.expiration_date,
|
258
|
-
}
|
259
|
-
|
260
253
|
if self.is_expired():
|
261
254
|
# Import here to avoid circular imports
|
262
255
|
from streamlit.logger import get_logger
|
@@ -264,17 +257,16 @@ class ConfigOption:
|
|
264
257
|
LOGGER = get_logger(__name__)
|
265
258
|
LOGGER.error(
|
266
259
|
textwrap.dedent(
|
267
|
-
"""
|
260
|
+
f"""
|
268
261
|
════════════════════════════════════════════════
|
269
|
-
|
262
|
+
{self.key} IS NO LONGER SUPPORTED.
|
270
263
|
|
271
|
-
|
264
|
+
{self.deprecation_text}
|
272
265
|
|
273
|
-
Please update
|
266
|
+
Please update {self.where_defined}.
|
274
267
|
════════════════════════════════════════════════
|
275
268
|
"""
|
276
269
|
)
|
277
|
-
% details
|
278
270
|
)
|
279
271
|
else:
|
280
272
|
# Import here to avoid circular imports
|
@@ -283,18 +275,17 @@ class ConfigOption:
|
|
283
275
|
LOGGER = get_logger(__name__)
|
284
276
|
LOGGER.warning(
|
285
277
|
textwrap.dedent(
|
286
|
-
"""
|
278
|
+
f"""s
|
287
279
|
════════════════════════════════════════════════
|
288
|
-
|
289
|
-
|
280
|
+
{self.key} IS DEPRECATED.
|
281
|
+
{self.deprecation_text}
|
290
282
|
|
291
|
-
This option will be removed on or after
|
283
|
+
This option will be removed on or after {self.expiration_date}.
|
292
284
|
|
293
|
-
Please update
|
285
|
+
Please update {self.where_defined}.
|
294
286
|
════════════════════════════════════════════════
|
295
287
|
"""
|
296
288
|
)
|
297
|
-
% details
|
298
289
|
)
|
299
290
|
|
300
291
|
def is_expired(self) -> bool:
|
streamlit/dataframe_util.py
CHANGED
@@ -818,10 +818,10 @@ def convert_pandas_df_to_arrow_bytes(df: DataFrame) -> bytes:
|
|
818
818
|
table = pa.Table.from_pandas(df)
|
819
819
|
except (pa.ArrowTypeError, pa.ArrowInvalid, pa.ArrowNotImplementedError) as ex:
|
820
820
|
_LOGGER.info(
|
821
|
-
"Serialization of dataframe to Arrow table was unsuccessful
|
821
|
+
"Serialization of dataframe to Arrow table was unsuccessful. "
|
822
822
|
"Applying automatic fixes for column types to make the dataframe "
|
823
823
|
"Arrow-compatible.",
|
824
|
-
ex,
|
824
|
+
exc_info=ex,
|
825
825
|
)
|
826
826
|
df = fix_arrow_incompatible_column_types(df)
|
827
827
|
table = pa.Table.from_pandas(df)
|
streamlit/delta_generator.py
CHANGED
@@ -130,7 +130,9 @@ def _maybe_print_use_warning() -> None:
|
|
130
130
|
|
131
131
|
if env_util.is_repl():
|
132
132
|
logger.get_logger("root").warning(
|
133
|
-
f"\n {warning} to view a Streamlit app on a browser, use Streamlit in
|
133
|
+
f"\n {warning} to view a Streamlit app on a browser, use Streamlit in "
|
134
|
+
"a file and\n run it with the following command:\n\n streamlit run "
|
135
|
+
"[FILE_NAME] [ARGUMENTS]"
|
134
136
|
)
|
135
137
|
|
136
138
|
elif not runtime.exists() and config.get_option(
|
@@ -139,7 +141,9 @@ def _maybe_print_use_warning() -> None:
|
|
139
141
|
script_name = sys.argv[0]
|
140
142
|
|
141
143
|
logger.get_logger("root").warning(
|
142
|
-
f"\n {warning} to view this Streamlit app on a browser, run it with
|
144
|
+
f"\n {warning} to view this Streamlit app on a browser, run it with "
|
145
|
+
f"the following\n command:\n\n streamlit run {script_name} "
|
146
|
+
"[ARGUMENTS]"
|
143
147
|
)
|
144
148
|
|
145
149
|
|
streamlit/elements/exception.py
CHANGED
@@ -130,20 +130,18 @@ This is usually due to a bug in the Exception object itself. Here is some info
|
|
130
130
|
about that Exception object, so you can report a bug to the original author:
|
131
131
|
|
132
132
|
Exception type:
|
133
|
-
%
|
133
|
+
%s
|
134
134
|
|
135
135
|
Problem:
|
136
|
-
%
|
136
|
+
%s
|
137
137
|
|
138
138
|
Traceback:
|
139
|
-
%
|
139
|
+
%s
|
140
140
|
|
141
|
-
"""
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
"str_exception_tb": "\n".join(_get_stack_trace_str_list(str_exception)),
|
146
|
-
}
|
141
|
+
""",
|
142
|
+
type(exception).__name__,
|
143
|
+
str_exception,
|
144
|
+
"\n".join(_get_stack_trace_str_list(str_exception)),
|
147
145
|
)
|
148
146
|
|
149
147
|
if is_uncaught_app_exception:
|
@@ -52,7 +52,7 @@ from streamlit.proto.ButtonGroup_pb2 import ButtonGroup as ButtonGroupProto
|
|
52
52
|
from streamlit.runtime.metrics_util import gather_metrics
|
53
53
|
from streamlit.runtime.scriptrunner_utils.script_run_context import get_script_run_ctx
|
54
54
|
from streamlit.runtime.state import register_widget
|
55
|
-
from streamlit.string_util import validate_material_icon
|
55
|
+
from streamlit.string_util import is_emoji, validate_material_icon
|
56
56
|
from streamlit.type_util import T
|
57
57
|
|
58
58
|
if TYPE_CHECKING:
|
@@ -822,10 +822,12 @@ class ButtonGroupMixin:
|
|
822
822
|
if len(transformed_parts) > 0:
|
823
823
|
maybe_icon = transformed_parts[0].strip()
|
824
824
|
try:
|
825
|
-
# we only want to extract material icons because we treat them
|
826
|
-
# differently than emojis visually
|
827
825
|
if maybe_icon.startswith(":material"):
|
828
826
|
icon = validate_material_icon(maybe_icon)
|
827
|
+
elif is_emoji(maybe_icon):
|
828
|
+
icon = maybe_icon
|
829
|
+
|
830
|
+
if icon:
|
829
831
|
# reassamble the option string without the icon - also
|
830
832
|
# works if len(transformed_parts) == 1
|
831
833
|
transformed = " ".join(transformed_parts[1:])
|
@@ -237,7 +237,10 @@ def _parse_value(
|
|
237
237
|
|
238
238
|
except (ValueError, pd.errors.ParserError) as ex:
|
239
239
|
_LOGGER.warning(
|
240
|
-
"Failed to parse value %s as %s.
|
240
|
+
"Failed to parse value %s as %s.",
|
241
|
+
value,
|
242
|
+
column_data_kind,
|
243
|
+
exc_info=ex,
|
241
244
|
)
|
242
245
|
return None
|
243
246
|
return value
|