streamlit-nightly 1.31.1.dev20240210__py2.py3-none-any.whl → 1.31.2.dev20240212__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/cli_util.py +44 -0
- streamlit/config.py +36 -34
- streamlit/config_util.py +18 -16
- streamlit/delta_generator.py +20 -16
- streamlit/elements/image.py +30 -18
- streamlit/elements/write.py +5 -6
- streamlit/runtime/credentials.py +67 -55
- streamlit/runtime/secrets.py +6 -4
- streamlit/static/asset-manifest.json +3 -3
- streamlit/static/index.html +1 -1
- streamlit/static/static/js/4666.ad225eae.chunk.js +1 -0
- streamlit/static/static/js/{main.603949f7.js → main.043d802e.js} +2 -2
- streamlit/url_util.py +0 -8
- streamlit/watcher/path_watcher.py +3 -6
- streamlit/web/bootstrap.py +48 -46
- streamlit/web/cli.py +8 -5
- streamlit/web/server/routes.py +8 -0
- streamlit/web/server/server.py +2 -3
- {streamlit_nightly-1.31.1.dev20240210.dist-info → streamlit_nightly-1.31.2.dev20240212.dist-info}/METADATA +1 -1
- {streamlit_nightly-1.31.1.dev20240210.dist-info → streamlit_nightly-1.31.2.dev20240212.dist-info}/RECORD +25 -24
- streamlit/static/static/js/4666.3a6efd97.chunk.js +0 -1
- /streamlit/static/static/js/{main.603949f7.js.LICENSE.txt → main.043d802e.js.LICENSE.txt} +0 -0
- {streamlit_nightly-1.31.1.dev20240210.data → streamlit_nightly-1.31.2.dev20240212.data}/scripts/streamlit.cmd +0 -0
- {streamlit_nightly-1.31.1.dev20240210.dist-info → streamlit_nightly-1.31.2.dev20240212.dist-info}/WHEEL +0 -0
- {streamlit_nightly-1.31.1.dev20240210.dist-info → streamlit_nightly-1.31.2.dev20240212.dist-info}/entry_points.txt +0 -0
- {streamlit_nightly-1.31.1.dev20240210.dist-info → streamlit_nightly-1.31.2.dev20240212.dist-info}/top_level.txt +0 -0
streamlit/url_util.py
CHANGED
@@ -66,14 +66,6 @@ def get_hostname(url: str) -> Optional[str]:
|
|
66
66
|
return parsed.hostname
|
67
67
|
|
68
68
|
|
69
|
-
def print_url(title, url):
|
70
|
-
"""Pretty-print a URL on the terminal."""
|
71
|
-
import click
|
72
|
-
|
73
|
-
click.secho(f" {title}: ", nl=False, fg="blue")
|
74
|
-
click.secho(url, bold=True)
|
75
|
-
|
76
|
-
|
77
69
|
def is_url(
|
78
70
|
url: str,
|
79
71
|
allowed_schemas: Tuple[UrlSchema, ...] = ("http", "https"),
|
@@ -17,7 +17,7 @@ from __future__ import annotations
|
|
17
17
|
from typing import Callable, Type, Union
|
18
18
|
|
19
19
|
import streamlit.watcher
|
20
|
-
from streamlit import config, env_util
|
20
|
+
from streamlit import cli_util, config, env_util
|
21
21
|
from streamlit.logger import get_logger
|
22
22
|
from streamlit.watcher.polling_path_watcher import PollingPathWatcher
|
23
23
|
|
@@ -70,17 +70,14 @@ def report_watchdog_availability():
|
|
70
70
|
and config.get_option("server.fileWatcherType") not in ["poll", "none"]
|
71
71
|
and not _is_watchdog_available()
|
72
72
|
):
|
73
|
-
import click
|
74
|
-
|
75
73
|
msg = "\n $ xcode-select --install" if env_util.IS_DARWIN else ""
|
76
74
|
|
77
|
-
|
78
|
-
click.secho(
|
75
|
+
cli_util.print_to_cli(
|
79
76
|
" %s" % "For better performance, install the Watchdog module:",
|
80
77
|
fg="blue",
|
81
78
|
bold=True,
|
82
79
|
)
|
83
|
-
|
80
|
+
cli_util.print_to_cli(
|
84
81
|
"""%s
|
85
82
|
$ pip install watchdog
|
86
83
|
"""
|
streamlit/web/bootstrap.py
CHANGED
@@ -19,18 +19,15 @@ import os
|
|
19
19
|
import signal
|
20
20
|
import sys
|
21
21
|
from pathlib import Path
|
22
|
-
from typing import Any,
|
23
|
-
|
24
|
-
# TODO(lukasmasuch): Lazy-load this module:
|
25
|
-
import click
|
22
|
+
from typing import Any, Final
|
26
23
|
|
27
24
|
from streamlit import (
|
25
|
+
cli_util,
|
28
26
|
config,
|
29
27
|
env_util,
|
30
28
|
file_util,
|
31
29
|
net_util,
|
32
30
|
secrets,
|
33
|
-
url_util,
|
34
31
|
util,
|
35
32
|
version,
|
36
33
|
)
|
@@ -43,20 +40,6 @@ from streamlit.web.server import Server, server_address_is_unix_socket, server_u
|
|
43
40
|
|
44
41
|
_LOGGER: Final = get_logger(__name__)
|
45
42
|
|
46
|
-
NEW_VERSION_TEXT: Final = """
|
47
|
-
%(new_version)s
|
48
|
-
|
49
|
-
See what's new at https://discuss.streamlit.io/c/announcements
|
50
|
-
|
51
|
-
Enter the following command to upgrade:
|
52
|
-
%(prompt)s %(command)s
|
53
|
-
""" % {
|
54
|
-
"new_version": click.style(
|
55
|
-
"A new version of Streamlit is available.", fg="blue", bold=True
|
56
|
-
),
|
57
|
-
"prompt": click.style("$", fg="blue"),
|
58
|
-
"command": click.style("pip install streamlit --upgrade", bold=True),
|
59
|
-
}
|
60
43
|
|
61
44
|
# The maximum possible total size of a static directory.
|
62
45
|
# We agreed on these limitations for the initial release of static file sharing,
|
@@ -120,7 +103,7 @@ def _fix_tornado_crash() -> None:
|
|
120
103
|
asyncio.set_event_loop_policy(WindowsSelectorEventLoopPolicy())
|
121
104
|
|
122
105
|
|
123
|
-
def _fix_sys_argv(main_script_path: str, args:
|
106
|
+
def _fix_sys_argv(main_script_path: str, args: list[str]) -> None:
|
124
107
|
"""sys.argv needs to exclude streamlit arguments and parameters
|
125
108
|
and be set to what a user's script may expect.
|
126
109
|
"""
|
@@ -198,7 +181,23 @@ def _fix_pydantic_duplicate_validators_error():
|
|
198
181
|
|
199
182
|
def _print_new_version_message() -> None:
|
200
183
|
if version.should_show_new_version_notice():
|
201
|
-
|
184
|
+
NEW_VERSION_TEXT: Final = """
|
185
|
+
%(new_version)s
|
186
|
+
|
187
|
+
See what's new at https://discuss.streamlit.io/c/announcements
|
188
|
+
|
189
|
+
Enter the following command to upgrade:
|
190
|
+
%(prompt)s %(command)s
|
191
|
+
""" % {
|
192
|
+
"new_version": cli_util.style_for_cli(
|
193
|
+
"A new version of Streamlit is available.", fg="blue", bold=True
|
194
|
+
),
|
195
|
+
"prompt": cli_util.style_for_cli("$", fg="blue"),
|
196
|
+
"command": cli_util.style_for_cli(
|
197
|
+
"pip install streamlit --upgrade", bold=True
|
198
|
+
),
|
199
|
+
}
|
200
|
+
cli_util.print_to_cli(NEW_VERSION_TEXT)
|
202
201
|
|
203
202
|
|
204
203
|
def _maybe_print_static_folder_warning(main_script_path: str) -> None:
|
@@ -207,7 +206,7 @@ def _maybe_print_static_folder_warning(main_script_path: str) -> None:
|
|
207
206
|
if config.get_option("server.enableStaticServing"):
|
208
207
|
static_folder_path = file_util.get_app_static_dir(main_script_path)
|
209
208
|
if not os.path.isdir(static_folder_path):
|
210
|
-
|
209
|
+
cli_util.print_to_cli(
|
211
210
|
f"WARNING: Static file serving is enabled, but no static folder found "
|
212
211
|
f"at {static_folder_path}. To disable static file serving, "
|
213
212
|
f"set server.enableStaticServing to false.",
|
@@ -219,7 +218,7 @@ def _maybe_print_static_folder_warning(main_script_path: str) -> None:
|
|
219
218
|
|
220
219
|
if static_folder_size > MAX_APP_STATIC_FOLDER_SIZE:
|
221
220
|
config.set_option("server.enableStaticServing", False)
|
222
|
-
|
221
|
+
cli_util.print_to_cli(
|
223
222
|
"WARNING: Static folder size is larger than 1GB. "
|
224
223
|
"Static file serving has been disabled.",
|
225
224
|
fg="yellow",
|
@@ -269,23 +268,24 @@ def _print_url(is_running_hello: bool) -> None:
|
|
269
268
|
if internal_ip:
|
270
269
|
named_urls.append(("Network URL", server_util.get_url(internal_ip)))
|
271
270
|
|
272
|
-
|
273
|
-
|
274
|
-
|
271
|
+
cli_util.print_to_cli("")
|
272
|
+
cli_util.print_to_cli(" %s" % title_message, fg="blue", bold=True)
|
273
|
+
cli_util.print_to_cli("")
|
275
274
|
|
276
275
|
for url_name, url in named_urls:
|
277
|
-
|
276
|
+
cli_util.print_to_cli(f" {url_name}: ", nl=False, fg="blue")
|
277
|
+
cli_util.print_to_cli(url, bold=True)
|
278
278
|
|
279
|
-
|
279
|
+
cli_util.print_to_cli("")
|
280
280
|
|
281
281
|
if is_running_hello:
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
282
|
+
cli_util.print_to_cli(" Ready to create your own Python apps super quickly?")
|
283
|
+
cli_util.print_to_cli(" Head over to ", nl=False)
|
284
|
+
cli_util.print_to_cli("https://docs.streamlit.io", bold=True)
|
285
|
+
cli_util.print_to_cli("")
|
286
|
+
cli_util.print_to_cli(" May you create awesome apps!")
|
287
|
+
cli_util.print_to_cli("")
|
288
|
+
cli_util.print_to_cli("")
|
289
289
|
|
290
290
|
|
291
291
|
def _maybe_print_old_git_warning(main_script_path: str) -> None:
|
@@ -300,22 +300,24 @@ def _maybe_print_old_git_warning(main_script_path: str) -> None:
|
|
300
300
|
):
|
301
301
|
git_version_string = ".".join(str(val) for val in repo.git_version)
|
302
302
|
min_version_string = ".".join(str(val) for val in MIN_GIT_VERSION)
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
303
|
+
cli_util.print_to_cli("")
|
304
|
+
cli_util.print_to_cli(" Git integration is disabled.", fg="yellow", bold=True)
|
305
|
+
cli_util.print_to_cli("")
|
306
|
+
cli_util.print_to_cli(
|
307
307
|
f" Streamlit requires Git {min_version_string} or later, "
|
308
308
|
f"but you have {git_version_string}.",
|
309
309
|
fg="yellow",
|
310
310
|
)
|
311
|
-
|
311
|
+
cli_util.print_to_cli(
|
312
312
|
" Git is used by Streamlit Cloud (https://streamlit.io/cloud).",
|
313
313
|
fg="yellow",
|
314
314
|
)
|
315
|
-
|
315
|
+
cli_util.print_to_cli(
|
316
|
+
" To enable this feature, please update Git.", fg="yellow"
|
317
|
+
)
|
316
318
|
|
317
319
|
|
318
|
-
def load_config_options(flag_options:
|
320
|
+
def load_config_options(flag_options: dict[str, Any]) -> None:
|
319
321
|
"""Load config options from config.toml files, then overlay the ones set by
|
320
322
|
flag_options.
|
321
323
|
|
@@ -326,7 +328,7 @@ def load_config_options(flag_options: Dict[str, Any]) -> None:
|
|
326
328
|
|
327
329
|
Parameters
|
328
330
|
----------
|
329
|
-
flag_options :
|
331
|
+
flag_options : dict[str, Any]
|
330
332
|
A dict of config options where the keys are the CLI flag version of the
|
331
333
|
config option names.
|
332
334
|
"""
|
@@ -341,7 +343,7 @@ def load_config_options(flag_options: Dict[str, Any]) -> None:
|
|
341
343
|
config.get_config_options(force_reparse=True, options_from_flags=options_from_flags)
|
342
344
|
|
343
345
|
|
344
|
-
def _install_config_watchers(flag_options:
|
346
|
+
def _install_config_watchers(flag_options: dict[str, Any]) -> None:
|
345
347
|
def on_config_changed(_path):
|
346
348
|
load_config_options(flag_options)
|
347
349
|
|
@@ -368,8 +370,8 @@ def _install_pages_watcher(main_script_path_str: str) -> None:
|
|
368
370
|
def run(
|
369
371
|
main_script_path: str,
|
370
372
|
is_hello: bool,
|
371
|
-
args:
|
372
|
-
flag_options:
|
373
|
+
args: list[str],
|
374
|
+
flag_options: dict[str, Any],
|
373
375
|
) -> None:
|
374
376
|
"""Run a script in a separate thread and start a server for the app.
|
375
377
|
|
streamlit/web/cli.py
CHANGED
@@ -14,10 +14,13 @@
|
|
14
14
|
|
15
15
|
"""A script which is run when the Streamlit package is executed."""
|
16
16
|
|
17
|
+
from __future__ import annotations
|
18
|
+
|
17
19
|
import os
|
18
20
|
import sys
|
19
|
-
from typing import Any
|
21
|
+
from typing import Any
|
20
22
|
|
23
|
+
# We cannot lazy-load click here because its used via decorators.
|
21
24
|
import click
|
22
25
|
|
23
26
|
import streamlit.runtime.caching as caching
|
@@ -37,7 +40,7 @@ LOG_LEVELS = ("error", "warning", "info", "debug")
|
|
37
40
|
|
38
41
|
def _convert_config_option_to_click_option(
|
39
42
|
config_option: ConfigOption,
|
40
|
-
) ->
|
43
|
+
) -> dict[str, Any]:
|
41
44
|
"""Composes given config option options as options for click lib."""
|
42
45
|
option = f"--{config_option.key}"
|
43
46
|
param = config_option.key.replace(".", "_")
|
@@ -231,7 +234,7 @@ def main_run(target: str, args=None, **kwargs):
|
|
231
234
|
_main_run(target, args, flag_options=kwargs)
|
232
235
|
|
233
236
|
|
234
|
-
def _get_command_line_as_string() ->
|
237
|
+
def _get_command_line_as_string() -> str | None:
|
235
238
|
import subprocess
|
236
239
|
|
237
240
|
parent = click.get_current_context().parent
|
@@ -251,8 +254,8 @@ def _get_command_line_as_string() -> Optional[str]:
|
|
251
254
|
|
252
255
|
def _main_run(
|
253
256
|
file,
|
254
|
-
args:
|
255
|
-
flag_options:
|
257
|
+
args: list[str] | None = None,
|
258
|
+
flag_options: dict[str, Any] | None = None,
|
256
259
|
) -> None:
|
257
260
|
if args is None:
|
258
261
|
args = []
|
streamlit/web/server/routes.py
CHANGED
@@ -135,6 +135,14 @@ class HealthHandler(_SpecialRequestHandler):
|
|
135
135
|
self._callback = callback
|
136
136
|
|
137
137
|
async def get(self):
|
138
|
+
await self.handle_request()
|
139
|
+
|
140
|
+
# Some monitoring services only support the HTTP HEAD method for requests to
|
141
|
+
# healthcheck endpoints, so we support HEAD as well to play nicely with them.
|
142
|
+
async def head(self):
|
143
|
+
await self.handle_request()
|
144
|
+
|
145
|
+
async def handle_request(self):
|
138
146
|
if self.request.uri and "_stcore/" not in self.request.uri:
|
139
147
|
new_path = (
|
140
148
|
"/_stcore/script-health-check"
|
streamlit/web/server/server.py
CHANGED
@@ -21,7 +21,6 @@ import sys
|
|
21
21
|
from pathlib import Path
|
22
22
|
from typing import Any, Awaitable, List, Optional, Union
|
23
23
|
|
24
|
-
import click
|
25
24
|
import tornado.concurrent
|
26
25
|
import tornado.locks
|
27
26
|
import tornado.netutil
|
@@ -30,7 +29,7 @@ import tornado.websocket
|
|
30
29
|
from tornado.httpserver import HTTPServer
|
31
30
|
from typing_extensions import Final
|
32
31
|
|
33
|
-
from streamlit import config, file_util, source_util, util
|
32
|
+
from streamlit import cli_util, config, file_util, source_util, util
|
34
33
|
from streamlit.components.v1.components import ComponentRegistry
|
35
34
|
from streamlit.config_option import ConfigOption
|
36
35
|
from streamlit.logger import get_logger
|
@@ -395,7 +394,7 @@ class Server:
|
|
395
394
|
return self._main_script_path == Hello.__file__
|
396
395
|
|
397
396
|
def stop(self) -> None:
|
398
|
-
|
397
|
+
cli_util.print_to_cli(" Stopping...", fg="blue")
|
399
398
|
self._runtime.stop()
|
400
399
|
|
401
400
|
|
@@ -1,15 +1,16 @@
|
|
1
1
|
streamlit/__init__.py,sha256=PROUOxEowtwgMmTm53K_WDnz7Q_5pA-GSt80L7NHCus,7997
|
2
2
|
streamlit/__main__.py,sha256=8vHowjccJfFMwrA22IEe3ynE9F670mkspbo9rYdM0ks,868
|
3
3
|
streamlit/case_converters.py,sha256=sWUCbzmHi5C1pg7rz72zh1hgM-oQIUJyzpsRo7kumrQ,2301
|
4
|
+
streamlit/cli_util.py,sha256=PZb9adX9_8ml9GP6YxnLL263IUDolzUL7VWZK-rD0gs,1371
|
4
5
|
streamlit/code_util.py,sha256=Kh-3btXs--zaB26hhOyZ1rgIn-tstpQPxSYawxobjSA,2289
|
5
6
|
streamlit/color_util.py,sha256=EqghD4UGKVhvuvtgadZw44qaxXZGtrqID068M8CYcrI,9294
|
6
7
|
streamlit/column_config.py,sha256=mu7BZNKfvRa9i1VDdCg5L9aPTc6Ou7iVaB3zPOIxIdk,1334
|
7
|
-
streamlit/config.py,sha256=
|
8
|
+
streamlit/config.py,sha256=69NqrUGKsno11sWKgKMhqJRaCmwtWJe_Jj7I_viIavA,43730
|
8
9
|
streamlit/config_option.py,sha256=DVyW--G7La2OYu7cyddQybKn21pZPhsWkq8kbSIb_Vo,11512
|
9
|
-
streamlit/config_util.py,sha256
|
10
|
+
streamlit/config_util.py,sha256=-MGb5eBrsZvNmqywmiBmo27ll1F9OmCDX4toGWglv2c,6015
|
10
11
|
streamlit/constants.py,sha256=p_h2r6uLsH6dK9L7hjyCkaQJxpG3U2k8CQqXWJAGutw,762
|
11
12
|
streamlit/cursor.py,sha256=DmsbFc1rVnqMB42N7VfpOA8yc6EF4Z-KKMtJr2rN1lQ,6002
|
12
|
-
streamlit/delta_generator.py,sha256=
|
13
|
+
streamlit/delta_generator.py,sha256=oOCdMduU8HZKdkWVXyJCkyedesJDmwONF3IvvP8OA-U,31493
|
13
14
|
streamlit/deprecation_util.py,sha256=biYcvN42E7QSXYLW8YSQ31fri5GbyS4Ng23ecgtiAmc,6507
|
14
15
|
streamlit/development.py,sha256=iO-KQc62Do9uSwoa5vV2tfImqz3QPhJ1Md6DETcnHkc,813
|
15
16
|
streamlit/echo.py,sha256=e7ajxD6vLb4fgxQU8HLSL0CoXZtOLLMhe-Kj9aCjfDI,4060
|
@@ -29,7 +30,7 @@ streamlit/source_util.py,sha256=Fhh5hF2jQHa73_-7op5PIh_90wxf8lF4YVezb1W_aNE,5693
|
|
29
30
|
streamlit/string_util.py,sha256=e0B0aDWAhPk_D7PIzM3lg5yTlh7DSNgBGkPutsyCBes,4986
|
30
31
|
streamlit/temporary_directory.py,sha256=5TIFR3vnycZcg--i8KWBFit0Sekj9n8-ELR86QWpehM,1599
|
31
32
|
streamlit/type_util.py,sha256=T_vSCd0QTKdERHLJhLpcXC5Ej2j94HdsSjBTdYXPhpM,44255
|
32
|
-
streamlit/url_util.py,sha256=
|
33
|
+
streamlit/url_util.py,sha256=cUF46T3ireuy8e-xZ3_Hp9dw9D0kWqK2IdsqfiyxpLQ,2989
|
33
34
|
streamlit/user_info.py,sha256=HRgLsioCbUP2DNhTDXDyOvWL7i2c65RwFHvF4_WO3hY,3448
|
34
35
|
streamlit/util.py,sha256=p7TFFVV6f7MgV1i7Avyv_e80VMai7Nd9ZfEHfSqK61E,7515
|
35
36
|
streamlit/version.py,sha256=Fhz_UwW47O6ygs8GRjNYjO1r-0IRZmeViaV3Rgg9hN8,3365
|
@@ -64,7 +65,7 @@ streamlit/elements/form.py,sha256=1u03-OX1ohxmBXG4WIHWbmdfY8hhYDHhXcXy51yLOOY,11
|
|
64
65
|
streamlit/elements/graphviz_chart.py,sha256=lYbZui-dxwUiKjUU0NbjN-1mh8p9wm6EfPcI03cs90w,4610
|
65
66
|
streamlit/elements/heading.py,sha256=1Q0qqKlkyIOi_ve-LTTwtYC-Kx-2eeXfwHwZvpNKtaU,10559
|
66
67
|
streamlit/elements/iframe.py,sha256=6bW5gPQt5-2FwnlFwjB2JHFOVZ-SOCT5x8VIg7skAC4,4387
|
67
|
-
streamlit/elements/image.py,sha256=
|
68
|
+
streamlit/elements/image.py,sha256=suSAkewW3W6Sb0vuKO0H_4jOTqH1GeXmIDJN_TjAs0o,20099
|
68
69
|
streamlit/elements/json.py,sha256=fMLeA9FcvV1n-SOWaO5XrAI41HoXNo5qY6u7hMVsLFM,3352
|
69
70
|
streamlit/elements/layouts.py,sha256=_G160lkugcbxv0lsvWMZCeJxXzXZXyv54H9j13Mu7y8,22464
|
70
71
|
streamlit/elements/map.py,sha256=F8Hij5e519eOglorpiSSf9f8Lhd4s782KapZU8Kt3n4,16404
|
@@ -79,7 +80,7 @@ streamlit/elements/spinner.py,sha256=bT5DY0cagbBBcKA8ujj0J77mHgJ3_H2U1hHUYgp17Mo
|
|
79
80
|
streamlit/elements/text.py,sha256=GTzMlGZrIiqNWsNQMvxQTK33C7iItDOeMNtMjQKlM80,1839
|
80
81
|
streamlit/elements/toast.py,sha256=Ao68WuCe8BRzHEVyFTuEFLN-RVyeT-RYH0oVcrEt1To,3528
|
81
82
|
streamlit/elements/utils.py,sha256=7CFZKIEvB4N0CHkGnkCpQp-w_GAbXEeCkXOYMN63o5A,7133
|
82
|
-
streamlit/elements/write.py,sha256=
|
83
|
+
streamlit/elements/write.py,sha256=poCNevJ4DZy9z_t0oJDvMKYI8CsbaumNdUQKj8FxYas,18698
|
83
84
|
streamlit/elements/lib/__init__.py,sha256=Vrf1yVMOcTyhUPnYvsfyeL96Vpd5z8KoSV5ZzTcTQgU,616
|
84
85
|
streamlit/elements/lib/column_config_utils.py,sha256=3fr4bb1rPX2pOd32obmxMk9a5lo1riGVNpN3B_I0Y2A,17232
|
85
86
|
streamlit/elements/lib/column_types.py,sha256=QOOl3XTJeQYaPhMd_5xzyzYgYrGpkCvxNqLvRjekbd4,48401
|
@@ -261,7 +262,7 @@ streamlit/proto/openmetrics_data_model_pb2.pyi,sha256=cDrO3xOwEF6iy1BZa-PHqmVKTc
|
|
261
262
|
streamlit/runtime/__init__.py,sha256=pQebv8cw2I9zj1KQ6DGXSS2HffaorePN22ON_ttY1jw,1487
|
262
263
|
streamlit/runtime/app_session.py,sha256=cLoCjSRAjaOe1jiKeKjZDq5r2Dk0DQTDyjaBkOdJBvg,34846
|
263
264
|
streamlit/runtime/connection_factory.py,sha256=0RTg9yj3LcSi_tWjk_QyL6bq0NIR7rvGi4X58s8w0JI,12442
|
264
|
-
streamlit/runtime/credentials.py,sha256=
|
265
|
+
streamlit/runtime/credentials.py,sha256=3wwe6U0lounnjPqQFjfOA4xswTJcoLT8-Yg7p2l8NIc,11500
|
265
266
|
streamlit/runtime/forward_msg_cache.py,sha256=SHwwtnQHISNyQogi2g6RUyPy8FQU9dn8A2RWMmFBSa4,9800
|
266
267
|
streamlit/runtime/forward_msg_queue.py,sha256=VEHPHRAr8dhP80nUweq75xGpoU9ujr_BuzHIdJrzXnQ,5554
|
267
268
|
streamlit/runtime/media_file_manager.py,sha256=Mdrcq3mPJx4ZIDYISUyL744Uk54Eggi7GhTaRLDGzhA,8494
|
@@ -273,7 +274,7 @@ streamlit/runtime/metrics_util.py,sha256=4I1TrALnVn7Pl0a3bNQfjqL_45jsTic8nTsBf7B
|
|
273
274
|
streamlit/runtime/runtime.py,sha256=8OPZabSDWAKmFhA7KWPeCUB7KqHgGRV0uVexBUxpOGI,28146
|
274
275
|
streamlit/runtime/runtime_util.py,sha256=rnwpKXKXyOJtghLOPC7Ct95Hylqi1Pgz4DnWoytbwco,3795
|
275
276
|
streamlit/runtime/script_data.py,sha256=zLLxR1rw6CNV0nXerHMenk8ZkpFPmHlpQviE3uE2_Mg,1713
|
276
|
-
streamlit/runtime/secrets.py,sha256=
|
277
|
+
streamlit/runtime/secrets.py,sha256=WYKxFJybhX1AeOabH6WD0d6dAoozUWz6j2E6svqD0fM,12315
|
277
278
|
streamlit/runtime/session_manager.py,sha256=tLAWbl0hwV8LgWCVCymQHgHG2URrmFxpBl95wCyr4I8,13057
|
278
279
|
streamlit/runtime/stats.py,sha256=JtF1hsE5zeahSfOjqiexUKrcNXRa3THC1bd8JTf3zsU,3822
|
279
280
|
streamlit/runtime/uploaded_file_manager.py,sha256=TKZZ08zJryBHRzO8fV8_ALNdAdlGRFj0YwSBWeG8vFY,4783
|
@@ -309,9 +310,9 @@ streamlit/runtime/state/safe_session_state.py,sha256=UIhqIDtpqP9sX7n3xo1o6X1ft-x
|
|
309
310
|
streamlit/runtime/state/session_state.py,sha256=B2oRkA-uxFAWVlDZUhHzreTI-Kyln-W3xUgR_e-YHl4,26224
|
310
311
|
streamlit/runtime/state/session_state_proxy.py,sha256=cQBtnC1S2awdXlKPKHPJxdQiL5bjObCjYnhyAGkep6g,5117
|
311
312
|
streamlit/runtime/state/widgets.py,sha256=ll32bOSRCA0eGq8JKWUfhsxBHBGRN8HZo00oFlWh68o,10998
|
312
|
-
streamlit/static/asset-manifest.json,sha256=
|
313
|
+
streamlit/static/asset-manifest.json,sha256=5I96evwUEuLkkWyBg2BcdLwPGDA7DFCrpA3cdwBZ3IQ,14229
|
313
314
|
streamlit/static/favicon.png,sha256=if5cVgw7azxKOvV5FpGixga7JLn23rfnHcy1CdWI1-E,1019
|
314
|
-
streamlit/static/index.html,sha256=
|
315
|
+
streamlit/static/index.html,sha256=4pVUlIZ7dkI2mzUlQalR4DxF3D2jk0bxPOtHrFRb2NE,891
|
315
316
|
streamlit/static/static/css/3075.81b3d18f.chunk.css,sha256=7WxsSsC_REs_rrfQTODJt34QZfNePqEv_fc-KFLcOz4,33375
|
316
317
|
streamlit/static/static/css/43.c24b25fa.chunk.css,sha256=oOQFf_CH_DqXNsgcLiXOIk4uuluqNRMkobp8p6uc3y4,2666
|
317
318
|
streamlit/static/static/css/6692.bb444a79.chunk.css,sha256=ijmz-LAYHqKIdoIHza8bHgz1KJvBN6s8MGnh0yloK1A,11157
|
@@ -345,7 +346,7 @@ streamlit/static/static/js/43.8ca4bc8a.chunk.js,sha256=a-W12RvWnLnFx8oP2vbHWyVFk
|
|
345
346
|
streamlit/static/static/js/4319.213fc321.chunk.js,sha256=aHGW0HyWTEwz55b0PKJj8n99lZQdKPnJK9mMjLdg4mg,2393
|
346
347
|
streamlit/static/static/js/4477.2555c11a.chunk.js,sha256=0BL08NofHfBWogbfkBPRPBigPSgCGTkAZ_jLaSJurA0,20642
|
347
348
|
streamlit/static/static/js/4500.d1151e3d.chunk.js,sha256=hsu7OiWETXMJ0mG6_YkorT3KVbXZwRk5VIvPnb45Nuw,591
|
348
|
-
streamlit/static/static/js/4666.
|
349
|
+
streamlit/static/static/js/4666.ad225eae.chunk.js,sha256=LRAm0bS1ifeo71_lJGI4LofMZZXlyqiXQj41lN-z-Kk,14660
|
349
350
|
streamlit/static/static/js/474.87506447.chunk.js,sha256=53UXid5OtcopEqbX4i70AszYcQruFauTq2NjP-_5fsY,4800
|
350
351
|
streamlit/static/static/js/5106.22187bfc.chunk.js,sha256=TiIgWIzYEA-emj-p_6hGmGIkqOdpU1Yq6N7xhIXsRU4,7142
|
351
352
|
streamlit/static/static/js/5117.6a701db1.chunk.js,sha256=2uQ5ZntKaf8wpSVyMX1CSnp9P28pw4TdY7MrlnKe-ag,21681
|
@@ -378,8 +379,8 @@ streamlit/static/static/js/9330.c0dd1723.chunk.js,sha256=GhnPu6wiRJ-Lf8CAPKlEbAk
|
|
378
379
|
streamlit/static/static/js/9336.2d95d840.chunk.js,sha256=6nGdXfPdjgSauDXzdPVqijnQB2ErTgkzwfoinHGt484,13482
|
379
380
|
streamlit/static/static/js/9656.8c935274.chunk.js,sha256=3VB6NT0EQErJUX2SYLQpmNAp19sWI45AbNOQLVjcvII,22113
|
380
381
|
streamlit/static/static/js/9758.6e6d8662.chunk.js,sha256=3Gtwgkru2xQTl1mCxFjILQ_Ppb8DMKySHY5YVhm9ihY,2119
|
381
|
-
streamlit/static/static/js/main.
|
382
|
-
streamlit/static/static/js/main.
|
382
|
+
streamlit/static/static/js/main.043d802e.js,sha256=L3f6_yYB__NHMWqhcXW013N2sZQd07SmgRHDhmBo9fI,4353035
|
383
|
+
streamlit/static/static/js/main.043d802e.js.LICENSE.txt,sha256=8SubmK0oyED9GvrGcKN3O5o2iXWv6SguzCVuy12KUBc,3256
|
383
384
|
streamlit/static/static/media/KaTeX_AMS-Regular.73ea273a72f4aca30ca5.woff2,sha256=DN04fJWQoan5eUVgAi27WWVKfYbxh6oMgUla1C06cwg,28076
|
384
385
|
streamlit/static/static/media/KaTeX_AMS-Regular.853be92419a6c3766b9a.ttf,sha256=aFNIQLz90r_7bw6N60hoTdAefwTqKBMmdXevuQbeHRM,63632
|
385
386
|
streamlit/static/static/media/KaTeX_AMS-Regular.d562e886c52f12660a41.woff,sha256=MNqR6EyJP4deJSaJ-uvcWQsocRReitx_mp1NvYzgslE,33516
|
@@ -484,27 +485,27 @@ streamlit/vendor/pympler/asizeof.py,sha256=noLIqizkYzTkYtA4k8fyvKeiIh8fW9ipW27YP
|
|
484
485
|
streamlit/watcher/__init__.py,sha256=Tn9E295dBAPIF38TAiWdfIoCsJWXU6rgY1FlxNmLqUU,915
|
485
486
|
streamlit/watcher/event_based_path_watcher.py,sha256=c9xWFVbKTXP9BZVMQJwYzu1MEDNFYwvL70dWfz8DP_0,14055
|
486
487
|
streamlit/watcher/local_sources_watcher.py,sha256=HLcCVQaqNuFYfFicltV6qOFf2nh6KB5sf7XO1KDs8qw,8169
|
487
|
-
streamlit/watcher/path_watcher.py,sha256=
|
488
|
+
streamlit/watcher/path_watcher.py,sha256=jXemvrwA6KrEKvv2O-J6-7SAyZ67Y_Kiuk7m5mu5F-s,5725
|
488
489
|
streamlit/watcher/polling_path_watcher.py,sha256=de4I5qb9tVy1npLllTiW3z5Ij9QC47robSbfGXlwy8I,3769
|
489
490
|
streamlit/watcher/util.py,sha256=cGNY2hmlk3K_i4VBQQ0yTZ49G1TE9zjNz3pBpAF4FOA,5198
|
490
491
|
streamlit/web/__init__.py,sha256=Vrf1yVMOcTyhUPnYvsfyeL96Vpd5z8KoSV5ZzTcTQgU,616
|
491
|
-
streamlit/web/bootstrap.py,sha256=
|
492
|
+
streamlit/web/bootstrap.py,sha256=Pf44qREmcdVeAcNMVae0wOhAC-C53dha3K1fs92o9p0,14374
|
492
493
|
streamlit/web/cache_storage_manager_config.py,sha256=IRAK6bOircT-_gS6DOyr3NaVDMAL_qXx79dAHDTXlco,1122
|
493
|
-
streamlit/web/cli.py,sha256=
|
494
|
+
streamlit/web/cli.py,sha256=3r4ZMQSQnqk9X4guReFXl5i9lS62L4v8TGT9lFgkuEE,11321
|
494
495
|
streamlit/web/server/__init__.py,sha256=w4TFcV0OjM5zx8ej7oThRIyB6gq3kqdt45XBk1zkRWo,1080
|
495
496
|
streamlit/web/server/app_static_file_handler.py,sha256=zvR_Skw9ejzbLqqgXNNzjf1P6swtHeIHwBTj0RmiTSg,3043
|
496
497
|
streamlit/web/server/browser_websocket_handler.py,sha256=dWJYf_M2QDysig3PZYyltJKK0petJOcDuHJzx3oS47U,7845
|
497
498
|
streamlit/web/server/component_request_handler.py,sha256=gJESMGin22tJp5tu6PG9NXPOEx4HlljU1wIzcSDV1uE,4026
|
498
499
|
streamlit/web/server/media_file_handler.py,sha256=_gpGuhCn7wkfg8Lc2uFNDQeTDE4nqqU5Rss6259Ep-k,5284
|
499
|
-
streamlit/web/server/routes.py,sha256=
|
500
|
-
streamlit/web/server/server.py,sha256=
|
500
|
+
streamlit/web/server/routes.py,sha256=BXGzuwN2F5cuXonFShZfxnWufhUUsZ7Xiqap4grDlcQ,9833
|
501
|
+
streamlit/web/server/server.py,sha256=yYXYGUQcoxAePxN0JeWnVq8VZw3YupMKEgyrDD7RfeM,14679
|
501
502
|
streamlit/web/server/server_util.py,sha256=_-RaGl6LU3gebVlW1W6VTAK_6G1S7Zv9ioSW20RyxnM,4038
|
502
503
|
streamlit/web/server/stats_request_handler.py,sha256=namo6XxyEeACPbKlA9UjnXsJX8pMgVAQDmd7l1iUQvA,3410
|
503
504
|
streamlit/web/server/upload_file_request_handler.py,sha256=WT7SnV6O6hmaK6K2R0smAvvf6LAL-UIMj1ucm5I7514,5034
|
504
505
|
streamlit/web/server/websocket_headers.py,sha256=wZOcWCOZWIfn_omo6ymuy_HaMKa2MMHgri9I2aOggYw,1872
|
505
|
-
streamlit_nightly-1.31.
|
506
|
-
streamlit_nightly-1.31.
|
507
|
-
streamlit_nightly-1.31.
|
508
|
-
streamlit_nightly-1.31.
|
509
|
-
streamlit_nightly-1.31.
|
510
|
-
streamlit_nightly-1.31.
|
506
|
+
streamlit_nightly-1.31.2.dev20240212.data/scripts/streamlit.cmd,sha256=ZEYM3vBJSp-k7vwSJ3ba5NzEk9-qHdSeLvGYAAe1mMw,676
|
507
|
+
streamlit_nightly-1.31.2.dev20240212.dist-info/METADATA,sha256=Fwrqls7X2eJGR2aZ5X_STjJDHJPvxdoClNKJCaRfeWM,8528
|
508
|
+
streamlit_nightly-1.31.2.dev20240212.dist-info/WHEEL,sha256=-G_t0oGuE7UD0DrSpVZnq1hHMBV9DD2XkS5v7XpmTnk,110
|
509
|
+
streamlit_nightly-1.31.2.dev20240212.dist-info/entry_points.txt,sha256=uNJ4DwGNXEhOK0USwSNanjkYyR-Bk7eYQbJFDrWyOgY,53
|
510
|
+
streamlit_nightly-1.31.2.dev20240212.dist-info/top_level.txt,sha256=V3FhKbm7G2LnR0s4SytavrjIPNIhvcsAGXfYHAwtQzw,10
|
511
|
+
streamlit_nightly-1.31.2.dev20240212.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_streamlit_app=self.webpackChunk_streamlit_app||[]).push([[4666],{90186:(e,t,i)=>{i.d(t,{$:()=>c,Z:()=>p});var s=i(66845),n=i(25621),l=i(66694),a=i(27466),r=i(38570),o=i(80318),d=i(40864);let c;!function(e){e.EXTRASMALL="xs",e.SMALL="sm",e.MEDIUM="md",e.LARGE="lg",e.EXTRALARGE="xl"}(c||(c={}));const p=function(e){let{value:t,width:i,size:p=c.SMALL,overrides:g}=e;const h=(0,n.u)(),u={xs:h.spacing.twoXS,sm:h.spacing.sm,md:h.spacing.lg,lg:h.spacing.xl,xl:h.spacing.twoXL},{activeTheme:m}=s.useContext(l.E),f=!(0,a.MJ)(m),x={BarContainer:{style:{marginTop:h.spacing.none,marginBottom:h.spacing.none,marginRight:h.spacing.none,marginLeft:h.spacing.none}},Bar:{style:e=>{let{$theme:t}=e;return{width:i?i.toString():void 0,marginTop:h.spacing.none,marginBottom:h.spacing.none,marginRight:h.spacing.none,marginLeft:h.spacing.none,height:u[p],backgroundColor:t.colors.progressbarTrackFill,borderTopLeftRadius:h.spacing.twoXS,borderTopRightRadius:h.spacing.twoXS,borderBottomLeftRadius:h.spacing.twoXS,borderBottomRightRadius:h.spacing.twoXS}}},BarProgress:{style:()=>({backgroundColor:f?h.colors.primary:h.colors.blue70,borderTopLeftRadius:h.spacing.twoXS,borderTopRightRadius:h.spacing.twoXS,borderBottomLeftRadius:h.spacing.twoXS,borderBottomRightRadius:h.spacing.twoXS})}};return(0,d.jsx)(r.Z,{value:t,overrides:(0,o.aO)(x,g)})}},77367:(e,t,i)=>{i.d(t,{R:()=>s});class s{setStatus(e){return new s(this.name,this.size,this.id,e)}constructor(e,t,i,s){this.name=void 0,this.size=void 0,this.status=void 0,this.id=void 0,this.name=e,this.size=t,this.id=i,this.status=s}}},14666:(e,t,i)=>{i.r(t),i.d(t,{default:()=>he});var s=i(23183),n=i(62813),l=i.n(n),a=i(84693),r=i.n(a),o=i(66845),d=i(16295),c=i(87814),p=i(50641);let g;!function(e){e.Gigabyte="gb",e.Megabyte="mb",e.Kilobyte="kb",e.Byte="b"}(g||(g={}));const h=(0,p.rA)()?1024:1e3,u=[g.Gigabyte,g.Megabyte,g.Kilobyte,g.Byte],m=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(t||(t=g.Byte),i<0&&(i=0),e<0)throw new Error("Size must be greater than or equal to 0");const s=u.indexOf(t);return s&&e>h/2?m(e/h,u[s-1],i):"".concat(e.toFixed(i)).concat(t.toUpperCase())};var f=i(98478),x=i(86659),w=i(8879),y=i(68411),b=i(51622),S=i(9003),F=i(81354),v=i(1515);const j=(0,v.Z)("section",{target:"e1b2p2ww15"})((e=>{let{isDisabled:t,theme:i}=e;return{display:"flex",alignItems:"center",padding:i.spacing.lg,backgroundColor:i.colors.secondaryBg,borderRadius:i.radii.lg,":focus":{outline:"none"},":focus-visible":{boxShadow:"0 0 0 1px ".concat(i.colors.primary)},color:t?i.colors.gray:i.colors.bodyText}}),""),I=(0,v.Z)("div",{target:"e1b2p2ww14"})((()=>({marginRight:"auto",alignItems:"center",display:"flex"})),""),M=(0,v.Z)("span",{target:"e1b2p2ww13"})((e=>{let{theme:t}=e;return{color:t.colors.darkenedBgMix100,marginRight:t.spacing.lg}}),""),z=(0,v.Z)("span",{target:"e1b2p2ww12"})((e=>{let{theme:t}=e;return{marginBottom:t.spacing.twoXS}}),""),L=(0,v.Z)("div",{target:"e1b2p2ww11"})({name:"1fttcpj",styles:"display:flex;flex-direction:column"}),U=(0,v.Z)("div",{target:"e1b2p2ww10"})((e=>{let{theme:t}=e;return{left:0,right:0,lineHeight:t.lineHeights.tight,paddingTop:t.spacing.md,paddingLeft:t.spacing.lg,paddingRight:t.spacing.lg}}),""),C=(0,v.Z)("ul",{target:"e1b2p2ww9"})((()=>({listStyleType:"none",marginBottom:0})),""),B=(0,v.Z)("li",{target:"e1b2p2ww8"})((e=>{let{theme:t}=e;return{margin:t.spacing.none,padding:t.spacing.none}}),""),Z=(0,v.Z)("div",{target:"e1b2p2ww7"})((e=>{let{theme:t}=e;return{display:"flex",alignItems:"baseline",flex:1,paddingLeft:t.spacing.lg,overflow:"hidden"}}),""),R=(0,v.Z)("div",{target:"e1b2p2ww6"})((e=>{let{theme:t}=e;return{marginRight:t.spacing.sm,marginBottom:t.spacing.twoXS,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}),""),k=(0,v.Z)("div",{target:"e1b2p2ww5"})((e=>{let{theme:t}=e;return{display:"flex",alignItems:"center",marginBottom:t.spacing.twoXS}}),""),T=(0,v.Z)("span",{target:"e1b2p2ww4"})((e=>{let{theme:t}=e;return{marginRight:t.spacing.twoXS}}),""),D=(0,v.Z)("div",{target:"e1b2p2ww3"})((e=>{let{theme:t}=e;return{display:"flex",padding:t.spacing.twoXS,color:t.colors.darkenedBgMix100}}),""),X=(0,v.Z)("small",{target:"e1b2p2ww2"})((e=>{let{theme:t}=e;return{color:t.colors.danger,fontSize:t.fontSizes.sm,height:t.fontSizes.sm,lineHeight:t.fontSizes.sm,display:"flex",alignItems:"center",whiteSpace:"nowrap"}}),""),P=(0,v.Z)("span",{target:"e1b2p2ww1"})({name:"0",styles:""}),E=e=>({[j]:{display:"flex",flexDirection:"column",alignItems:"flex-start"},[I]:{marginBottom:e.spacing.lg},[M]:{display:"none"},[U]:{paddingRight:e.spacing.lg},[k]:{maxWidth:"inherit",flex:1,alignItems:"flex-start",marginBottom:e.spacing.sm},[R]:{width:e.sizes.full},[Z]:{flexDirection:"column"},[X]:{height:"auto",whiteSpace:"initial"},[P]:{display:"none"},[B]:{margin:e.spacing.none,padding:e.spacing.none}}),A=(0,v.Z)("div",{target:"e1b2p2ww0"})((e=>{let{theme:t}=e;return t.inSidebar?E(t):{["@media (max-width: ".concat(t.breakpoints.sm,")")]:E(t)}}),"");var V=i(74529),W=i(46927),N=i(33746),O=i(40864);const H=e=>{let{multiple:t,acceptedExtensions:i,maxSizeBytes:s}=e;return(0,O.jsxs)(I,{"data-testid":"stFileDropzoneInstructions",children:[(0,O.jsx)(M,{children:(0,O.jsx)(W.Z,{content:V.n,size:"threeXL"})}),(0,O.jsxs)(L,{children:[(0,O.jsxs)(z,{children:["Drag and drop file",t?"s":""," here"]}),(0,O.jsxs)(N.x,{children:["Limit ".concat(m(s,g.Byte,0)," per file"),i.length?" \u2022 ".concat(i.map((e=>e.replace(/^\./,"").toUpperCase())).join(", ")):null]})]})]})},_=e=>{let{onDrop:t,multiple:i,acceptedExtensions:s,maxSizeBytes:n,disabled:l,label:a}=e;return(0,O.jsx)(b.ZP,{onDrop:t,multiple:i,accept:s.length?s:void 0,maxSize:n,disabled:l,useFsAccessApi:!1,children:e=>{let{getRootProps:t,getInputProps:r}=e;return(0,O.jsxs)(j,{...t(),"data-testid":"stFileUploadDropzone",isDisabled:l,"aria-label":a,children:[(0,O.jsx)("input",{"data-testid":"stDropzoneInput",...r()}),(0,O.jsx)(H,{multiple:i,acceptedExtensions:s,maxSizeBytes:n}),(0,O.jsx)(S.ZP,{kind:F.nW.SECONDARY,disabled:l,size:F.V5.SMALL,children:"Browse files"})]})}})};var G=i(13005),K=i.n(G),$=i(30351),q=i(14609);const J=(0,v.Z)("div",{target:"e16k0npc1"})((e=>{let{theme:t}=e;return{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:t.spacing.twoXS,marginBottom:t.spacing.twoXS}}),""),Y=(0,v.Z)("div",{target:"e16k0npc0"})((e=>{let{theme:t}=e;return{display:"flex",alignItems:"center",justifyContent:"center",color:t.colors.fadedText40}}),""),Q=e=>{let{className:t,currentPage:i,totalPages:s,onNext:n,onPrevious:l}=e;return(0,O.jsxs)(J,{className:t,"data-testid":"stPagination",children:[(0,O.jsx)(N.x,{children:"Showing page ".concat(i," of ").concat(s)}),(0,O.jsxs)(Y,{children:[(0,O.jsx)(S.ZP,{onClick:l,kind:F.nW.MINIMAL,children:(0,O.jsx)(W.Z,{content:$.s,size:"xl"})}),(0,O.jsx)(S.ZP,{onClick:n,kind:F.nW.MINIMAL,children:(0,O.jsx)(W.Z,{content:q._,size:"xl"})})]})]})};var ee=i(88235);const te=(e,t)=>Math.ceil(e.length/t),ie=e=>K()((t=>{let{pageSize:i,items:s,resetOnAdd:n,...l}=t;const[a,r]=(0,o.useState)(0),[d,c]=(0,o.useState)(te(s,i)),p=(0,ee.D)(s);(0,o.useEffect)((()=>{p&&p.length!==s.length&&c(te(s,i)),p&&p.length<s.length?n&&r(0):a+1>=d&&r(d-1)}),[s,a,i,p,n,d]);const g=s.slice(a*i,a*i+i);return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(e,{items:g,...l}),s.length>i?(0,O.jsx)(Q,{className:"streamlit-paginator",pageSize:i,totalPages:d,currentPage:a+1,onNext:()=>{r(Math.min(a+1,d-1))},onPrevious:()=>{r(Math.max(0,a-1))}}):null]})}),e);var se=i(62288),ne=i(87847),le=i(31197),ae=i(90186);const re=e=>{let{fileInfo:t}=e;return"uploading"===t.status.type?(0,O.jsx)(ae.Z,{value:t.status.progress,size:ae.$.SMALL,overrides:{Bar:{style:{marginLeft:0,marginTop:"4px"}}}}):"error"===t.status.type?(0,O.jsxs)(X,{children:[(0,O.jsx)(T,{"data-testid":"stUploadedFileErrorMessage",children:t.status.errorMessage}),(0,O.jsx)(P,{children:(0,O.jsx)(W.Z,{content:se.j,size:"lg"})})]}):"uploaded"===t.status.type?(0,O.jsx)(N.x,{children:m(t.size,g.Byte)}):null},oe=e=>{let{fileInfo:t,onDelete:i}=e;return(0,O.jsxs)(k,{className:"uploadedFile","data-testid":"stUploadedFile",children:[(0,O.jsx)(D,{children:(0,O.jsx)(W.Z,{content:ne.h,size:"twoXL"})}),(0,O.jsxs)(Z,{className:"uploadedFileData",children:[(0,O.jsx)(R,{className:"uploadedFileName",title:t.name,children:t.name}),(0,O.jsx)(re,{fileInfo:t})]}),(0,O.jsx)("div",{"data-testid":"fileDeleteBtn",children:(0,O.jsx)(S.ZP,{onClick:()=>i(t.id),kind:F.nW.MINIMAL,children:(0,O.jsx)(W.Z,{content:le.U,size:"lg"})})})]})},de=ie((e=>{let{items:t,onDelete:i}=e;return(0,O.jsx)(C,{children:t.map((e=>(0,O.jsx)(B,{children:(0,O.jsx)(oe,{fileInfo:e,onDelete:i})},e.id)))})})),ce=e=>(0,O.jsx)(U,{children:(0,O.jsx)(de,{...e})});var pe=i(77367);class ge extends o.PureComponent{constructor(e){super(e),this.formClearHelper=new c.K,this.localFileIdCounter=1,this.componentDidUpdate=()=>{if("ready"!==this.status)return;const e=this.createWidgetValue(),{element:t,widgetMgr:i}=this.props,s=i.getFileUploaderStateValue(t);l()(e,s)||i.setFileUploaderStateValue(t,e,{fromUi:!0})},this.reset=()=>{this.setState({files:[]})},this.dropHandler=(e,t)=>{const{element:i}=this.props,{multipleFiles:s}=i;if(!s&&0===e.length&&t.length>1){const i=t.findIndex((e=>1===e.errors.length&&"too-many-files"===e.errors[0].code));i>=0&&(e.push(t[i].file),t.splice(i,1))}if(this.props.uploadClient.fetchFileURLs(e).then((t=>{if(!s&&e.length>0){const e=this.state.files.find((e=>"error"!==e.status.type));e&&this.deleteFile(e.id)}r()(t,e).forEach((e=>{let[t,i]=e;this.uploadFile(t,i)}))})).catch((t=>{this.addFiles(e.map((e=>new pe.R(e.name,e.size,this.nextLocalFileId(),{type:"error",errorMessage:t}))))})),t.length>0){const e=t.map((e=>{const{file:t}=e;return new pe.R(t.name,t.size,this.nextLocalFileId(),{type:"error",errorMessage:this.getErrorMessage(e.errors[0].code,e.file)})}));this.addFiles(e)}},this.uploadFile=(e,t)=>{const i=s.Z.CancelToken.source(),n=new pe.R(t.name,t.size,this.nextLocalFileId(),{type:"uploading",cancelToken:i,progress:1});this.addFile(n),this.props.uploadClient.uploadFile(this.props.element,e.uploadUrl,t,(e=>this.onUploadProgress(e,n.id)),i.token).then((()=>this.onUploadComplete(n.id,e))).catch((e=>{s.Z.isCancel(e)||this.updateFile(n.id,n.setStatus({type:"error",errorMessage:e?e.toString():"Unknown error"}))}))},this.onUploadComplete=(e,t)=>{const i=this.getFile(e);null!=i&&"uploading"===i.status.type&&this.updateFile(i.id,i.setStatus({type:"uploaded",fileId:t.fileId,fileUrls:t}))},this.getErrorMessage=(e,t)=>{switch(e){case"file-too-large":return"File must be ".concat(m(this.maxUploadSizeInBytes,g.Byte)," or smaller.");case"file-invalid-type":return"".concat(t.type," files are not allowed.");case"file-too-small":return"File size is too small.";case"too-many-files":return"Only one file is allowed.";default:return"Unexpected error. Please try again."}},this.deleteFile=e=>{const t=this.getFile(e);null!=t&&("uploading"===t.status.type&&t.status.cancelToken.cancel(),"uploaded"===t.status.type&&t.status.fileUrls.deleteUrl&&this.props.uploadClient.deleteFile(t.status.fileUrls.deleteUrl),this.removeFile(e))},this.addFile=e=>{this.setState((t=>({files:[...t.files,e]})))},this.addFiles=e=>{this.setState((t=>({files:[...t.files,...e]})))},this.removeFile=e=>{this.setState((t=>({files:t.files.filter((t=>t.id!==e))})))},this.getFile=e=>this.state.files.find((t=>t.id===e)),this.updateFile=(e,t)=>{this.setState((i=>({files:i.files.map((i=>i.id===e?t:i))})))},this.onUploadProgress=(e,t)=>{const i=this.getFile(t);if(null==i||"uploading"!==i.status.type)return;const s=Math.round(100*e.loaded/e.total);i.status.progress!==s&&this.updateFile(t,i.setStatus({type:"uploading",cancelToken:i.status.cancelToken,progress:s}))},this.onFormCleared=()=>{this.setState({files:[]},(()=>{const e=this.createWidgetValue();null!=e&&this.props.widgetMgr.setFileUploaderStateValue(this.props.element,e,{fromUi:!0})}))},this.state=this.initialValue}get initialValue(){const e={files:[],newestServerFileId:0},{widgetMgr:t,element:i}=this.props,s=t.getFileUploaderStateValue(i);if(null==s)return e;const{uploadedFileInfo:n}=s;return null==n||0===n.length?e:{files:n.map((e=>{const t=e.name,i=e.size,s=e.fileId,n=e.fileUrls;return new pe.R(t,i,this.nextLocalFileId(),{type:"uploaded",fileId:s,fileUrls:n})}))}}componentWillUnmount(){this.formClearHelper.disconnect()}get maxUploadSizeInBytes(){return((e,t,i)=>{if(e<0)throw Error("Size must be 0 or greater");const s=u.findIndex((e=>e===t)),n=u.findIndex((e=>e===i));if(-1===s||-1===n)throw Error("Unexpected byte unit provided");if(s===n)return e;const l=Math.abs(s-n),a=h**l;return s>n?e/a:e*a})(this.props.element.maxUploadSizeMb,g.Megabyte,g.Byte)}get status(){return this.state.files.some((e=>"uploading"===e.status.type))?"updating":"ready"}componentDidMount(){const e=this.createWidgetValue(),{element:t,widgetMgr:i}=this.props;void 0===i.getFileUploaderStateValue(t)&&i.setFileUploaderStateValue(t,e,{fromUi:!1})}createWidgetValue(){const e=this.state.files.filter((e=>"uploaded"===e.status.type)).map((e=>{const{name:t,size:i,status:s}=e,{fileId:n,fileUrls:l}=s;return new d.jM({fileId:n,fileUrls:l,name:t,size:i})}));return new d.xO({uploadedFileInfo:e})}render(){var e;const{files:t}=this.state,{element:i,disabled:s,widgetMgr:n}=this.props,l=i.type;this.formClearHelper.manageFormClearListener(n,i.formId,this.onFormCleared);const a=t.slice().reverse();return(0,O.jsxs)(A,{"data-testid":"stFileUploader",children:[(0,O.jsx)(f.O,{label:i.label,disabled:s,labelVisibility:(0,p.iF)(null===(e=i.labelVisibility)||void 0===e?void 0:e.value),children:i.help&&(0,O.jsx)(x.dT,{children:(0,O.jsx)(w.Z,{content:i.help,placement:y.u.TOP_RIGHT})})}),(0,O.jsx)(_,{onDrop:this.dropHandler,multiple:i.multipleFiles,acceptedExtensions:l,maxSizeBytes:this.maxUploadSizeInBytes,label:i.label,disabled:s}),a.length>0&&(0,O.jsx)(ce,{items:a,pageSize:3,onDelete:this.deleteFile,resetOnAdd:!0})]})}nextLocalFileId(){return this.localFileIdCounter++}}const he=ge},87814:(e,t,i)=>{i.d(t,{K:()=>n});var s=i(50641);class n{constructor(){this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}manageFormClearListener(e,t,i){null!=this.formClearListener&&this.lastWidgetMgr===e&&this.lastFormId===t||(this.disconnect(),(0,s.bM)(t)&&(this.formClearListener=e.addFormClearedListener(t,i),this.lastWidgetMgr=e,this.lastFormId=t))}disconnect(){var e;null===(e=this.formClearListener)||void 0===e||e.disconnect(),this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}}}}]);
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|