streamlit-nightly 1.41.2.dev20250201__py2.py3-none-any.whl → 1.42.1.dev20250204__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/auth_util.py +2 -1
- streamlit/commands/echo.py +4 -1
- streamlit/commands/execution_control.py +3 -1
- streamlit/commands/page_config.py +2 -1
- streamlit/config.py +56 -25
- streamlit/config_option.py +3 -3
- streamlit/connections/snowflake_connection.py +22 -10
- streamlit/connections/snowpark_connection.py +2 -1
- streamlit/connections/util.py +4 -1
- streamlit/dataframe_util.py +3 -8
- streamlit/delta_generator.py +1 -1
- streamlit/elements/alert.py +32 -4
- streamlit/elements/arrow.py +28 -15
- streamlit/elements/code.py +4 -3
- streamlit/elements/deck_gl_json_chart.py +3 -4
- streamlit/elements/form.py +22 -4
- streamlit/elements/heading.py +21 -6
- streamlit/elements/image.py +12 -3
- streamlit/elements/layouts.py +9 -4
- streamlit/elements/lib/built_in_chart_utils.py +1 -3
- streamlit/elements/lib/color_util.py +7 -6
- streamlit/elements/lib/column_config_utils.py +4 -3
- streamlit/elements/lib/column_types.py +100 -33
- streamlit/elements/lib/dicttools.py +4 -1
- streamlit/elements/lib/event_utils.py +2 -2
- streamlit/elements/lib/file_uploader_utils.py +4 -1
- streamlit/elements/lib/image_utils.py +5 -4
- streamlit/elements/lib/options_selector_utils.py +4 -1
- streamlit/elements/lib/pandas_styler_utils.py +2 -1
- streamlit/elements/lib/policies.py +3 -1
- streamlit/elements/lib/utils.py +1 -1
- streamlit/elements/map.py +3 -1
- streamlit/elements/markdown.py +21 -7
- streamlit/elements/media.py +2 -2
- streamlit/elements/metric.py +8 -4
- streamlit/elements/plotly_chart.py +4 -5
- streamlit/elements/spinner.py +25 -3
- streamlit/elements/text.py +7 -2
- streamlit/elements/vega_charts.py +26 -22
- streamlit/elements/widgets/audio_input.py +8 -4
- streamlit/elements/widgets/button.py +29 -12
- streamlit/elements/widgets/button_group.py +29 -13
- streamlit/elements/widgets/camera_input.py +8 -4
- streamlit/elements/widgets/chat.py +1 -3
- streamlit/elements/widgets/checkbox.py +16 -8
- streamlit/elements/widgets/color_picker.py +8 -4
- streamlit/elements/widgets/data_editor.py +10 -14
- streamlit/elements/widgets/file_uploader.py +12 -6
- streamlit/elements/widgets/multiselect.py +10 -5
- streamlit/elements/widgets/number_input.py +8 -4
- streamlit/elements/widgets/radio.py +11 -5
- streamlit/elements/widgets/select_slider.py +12 -8
- streamlit/elements/widgets/selectbox.py +11 -5
- streamlit/elements/widgets/slider.py +19 -17
- streamlit/elements/widgets/text_widgets.py +16 -8
- streamlit/elements/widgets/time_widgets.py +21 -15
- streamlit/elements/write.py +60 -43
- streamlit/errors.py +1 -2
- streamlit/external/langchain/streamlit_callback_handler.py +3 -3
- streamlit/hello/animation_demo.py +1 -1
- streamlit/material_icon_names.py +1 -1
- streamlit/proto/NewSession_pb2.py +16 -16
- streamlit/proto/NewSession_pb2.pyi +30 -3
- streamlit/runtime/app_session.py +15 -15
- streamlit/runtime/caching/cached_message_replay.py +2 -1
- streamlit/runtime/caching/hashing.py +3 -2
- streamlit/runtime/context.py +2 -1
- streamlit/runtime/forward_msg_cache.py +3 -1
- streamlit/runtime/memory_session_storage.py +4 -1
- streamlit/runtime/memory_uploaded_file_manager.py +4 -1
- streamlit/runtime/runtime.py +6 -4
- streamlit/runtime/scriptrunner/script_runner.py +4 -3
- streamlit/runtime/scriptrunner_utils/script_run_context.py +2 -3
- streamlit/runtime/secrets.py +1 -5
- streamlit/runtime/state/common.py +2 -4
- streamlit/runtime/state/query_params.py +2 -1
- streamlit/runtime/state/query_params_proxy.py +2 -1
- streamlit/runtime/state/safe_session_state.py +3 -1
- streamlit/runtime/state/session_state.py +2 -5
- streamlit/runtime/state/session_state_proxy.py +2 -1
- streamlit/runtime/uploaded_file_manager.py +3 -1
- streamlit/runtime/websocket_session_manager.py +8 -8
- streamlit/static/index.html +2 -2
- streamlit/static/static/css/{index.mUTQuMqR.css → index.DpJG_94W.css} +1 -1
- streamlit/static/static/js/{FileDownload.esm.Cf3bITtP.js → FileDownload.esm.CuayiK6T.js} +1 -1
- streamlit/static/static/js/FileDropzone.CvXoxIUm.js +5 -0
- streamlit/static/static/js/{FormClearHelper.BgwPD1tD.js → FormClearHelper.DpwWkrvV.js} +1 -1
- streamlit/static/static/js/{Hooks.BMaXaj11.js → Hooks.BQiFiHd5.js} +1 -1
- streamlit/static/static/js/{InputInstructions.qlsk9gvt.js → InputInstructions.CypmdrYz.js} +1 -1
- streamlit/static/static/js/ProgressBar.DfR4HyQR.js +2 -0
- streamlit/static/static/js/{RenderInPortalIfExists.Blpdplqk.js → RenderInPortalIfExists.D6u3szcn.js} +1 -1
- streamlit/static/static/js/{Toolbar.DMhyNpv2.js → Toolbar.D6p42Hno.js} +1 -1
- streamlit/static/static/js/axios.upsvKRUO.js +6 -0
- streamlit/static/static/js/{base-input.DyTEaESI.js → base-input.B5AcLp6p.js} +4 -4
- streamlit/static/static/js/{createSuper.B3rIhdpQ.js → createSuper.DNzaJgi-.js} +1 -1
- streamlit/static/static/js/{data-grid-overlay-editor.C9Q9Gy4e.js → data-grid-overlay-editor.CKACfVZL.js} +1 -1
- streamlit/static/static/js/{downloader.BAMiKd1n.js → downloader.D6HV3a60.js} +1 -1
- streamlit/static/static/js/{es6.D82pr6dy.js → es6.UQDWlCyE.js} +2 -2
- streamlit/static/static/js/{iframeResizer.contentWindow.CJwxqR7x.js → iframeResizer.contentWindow.DQ-TFrBp.js} +1 -1
- streamlit/static/static/js/{index.B7J6suR-.js → index.2EE80u0h.js} +200 -200
- streamlit/static/static/js/{index.CoE1gpPQ.js → index.B96fHK2A.js} +1 -1
- streamlit/static/static/js/index.BAFGiIHm.js +1 -0
- streamlit/static/static/js/index.BPNlEjgz.js +1 -0
- streamlit/static/static/js/{index.C4kPuKr4.js → index.BPmrb-47.js} +1 -1
- streamlit/static/static/js/{index.BM_J1KkD.js → index.BQEIBi4n.js} +1 -1
- streamlit/static/static/js/index.BUGQmWUV.js +3 -0
- streamlit/static/static/js/index.BXmBj7MJ.js +1 -0
- streamlit/static/static/js/{index.5JFTbX2J.js → index.BY8YeKF1.js} +1 -1
- streamlit/static/static/js/{index.CF4stbIZ.js → index.BdVr8Tta.js} +1 -1
- streamlit/static/static/js/{index.CjFbbEE0.js → index.BghvoEVe.js} +1 -1
- streamlit/static/static/js/{index.8Q56Jjmk.js → index.BiMrOUpK.js} +1 -1
- streamlit/static/static/js/{index.yp4f0OMe.js → index.BiybRa0I.js} +2 -2
- streamlit/static/static/js/index.Bm7Vkuba.js +73 -0
- streamlit/static/static/js/{index.BZvQkTCS.js → index.BuyK2IsW.js} +1 -1
- streamlit/static/static/js/index.ByH1pn5_.js +1 -0
- streamlit/static/static/js/{index.zlHOKWDA.js → index.C8zZSMvD.js} +1 -1
- streamlit/static/static/js/index.CAuJtYES.js +1 -0
- streamlit/static/static/js/{index.Y84nTPW2.js → index.CEdHQ1ob.js} +1 -1
- streamlit/static/static/js/{index.CqGcWpm5.js → index.CJ-t5S6T.js} +2 -2
- streamlit/static/static/js/{index.BdlaxG49.js → index.CKOdbWxq.js} +1 -1
- streamlit/static/static/js/index.CSgG8OVN.js +1 -0
- streamlit/static/static/js/index.CX9gqq2L.js +1 -0
- streamlit/static/static/js/{index.TPHsScPF.js → index.CgVoYKAP.js} +1 -1
- streamlit/static/static/js/{index.D9yF6cxC.js → index.ChrjN8GY.js} +1 -1
- streamlit/static/static/js/{index.NbimJbgq.js → index.CrMtUJsu.js} +6 -6
- streamlit/static/static/js/index.D4SMJhY1.js +1 -0
- streamlit/static/static/js/index.D7BxtE4u.js +1 -0
- streamlit/static/static/js/{index.P5kx9um8.js → index.DB_dBVfZ.js} +5 -5
- streamlit/static/static/js/{index.BLCqXxIG.js → index.DMKXUbO6.js} +1 -1
- streamlit/static/static/js/index.DaoBv396.js +1 -0
- streamlit/static/static/js/{index.B3Wxz7wG.js → index.DkV6k6Ng.js} +1 -1
- streamlit/static/static/js/{index.BcAjRRAZ.js → index.DqZZoWyt.js} +1 -1
- streamlit/static/static/js/index.Dr6DSYcq.js +1 -0
- streamlit/static/static/js/{index.BdEYCAFh.js → index.Epl2r08f.js} +1 -1
- streamlit/static/static/js/{index.CC5oiyoV.js → index.ndVWhafL.js} +2 -2
- streamlit/static/static/js/{index.DiZyaYeV.js → index.wW-pPvtW.js} +3 -3
- streamlit/static/static/js/{input.DRyjjTTH.js → input.CxqdG-sh.js} +2 -2
- streamlit/static/static/js/{memory.C98yjNkk.js → memory.DuSk7Eex.js} +1 -1
- streamlit/static/static/js/{mergeWith.CLihEflw.js → mergeWith.DrxB1Sj4.js} +1 -1
- streamlit/static/static/js/{number-overlay-editor.DozQhDJj.js → number-overlay-editor.DBc0yndt.js} +1 -1
- streamlit/static/static/js/{possibleConstructorReturn.DJ7-JsJc.js → possibleConstructorReturn.ZdYWHeG3.js} +1 -1
- streamlit/static/static/js/{sandbox.0Tj4C46D.js → sandbox.D3L4CYjG.js} +1 -1
- streamlit/static/static/js/{textarea.CUrV8-V3.js → textarea.CSafh28v.js} +2 -2
- streamlit/static/static/js/{timepicker.DEu3fwJe.js → timepicker.C-pwkiaT.js} +4 -4
- streamlit/static/static/js/{toConsumableArray.C71OtXzK.js → toConsumableArray.DyCVskz5.js} +1 -1
- streamlit/static/static/js/{uniqueId.CndDhnid.js → uniqueId.BODM2vTk.js} +1 -1
- streamlit/static/static/js/useBasicWidgetState.DQUiM2dz.js +1 -0
- streamlit/static/static/js/{useOnInputChange.CvHbHWmy.js → useOnInputChange.Ccjd55xn.js} +1 -1
- streamlit/static/static/js/{withFullScreenWrapper.BLLyDFUF.js → withFullScreenWrapper.CneUoXNE.js} +1 -1
- streamlit/static/static/media/MaterialSymbols-Rounded.DcZbplWk.woff2 +0 -0
- streamlit/testing/v1/app_test.py +3 -1
- streamlit/testing/v1/element_tree.py +3 -4
- streamlit/testing/v1/local_script_runner.py +3 -3
- streamlit/type_util.py +11 -8
- streamlit/user_info.py +2 -3
- streamlit/watcher/path_watcher.py +4 -4
- streamlit/web/server/authlib_tornado_integration.py +3 -1
- streamlit/web/server/browser_websocket_handler.py +3 -1
- streamlit/web/server/routes.py +4 -1
- streamlit/web/server/server.py +2 -1
- {streamlit_nightly-1.41.2.dev20250201.dist-info → streamlit_nightly-1.42.1.dev20250204.dist-info}/METADATA +1 -2
- {streamlit_nightly-1.41.2.dev20250201.dist-info → streamlit_nightly-1.42.1.dev20250204.dist-info}/RECORD +166 -165
- streamlit/static/static/js/FileDropzone.B8wCqKiM.js +0 -5
- streamlit/static/static/js/ProgressBar.Di2oT-20.js +0 -2
- streamlit/static/static/js/index.B79cf7gS.js +0 -1
- streamlit/static/static/js/index.BBPZ3wsr.js +0 -1
- streamlit/static/static/js/index.BKahTKEx.js +0 -3
- streamlit/static/static/js/index.CSGfgCnQ.js +0 -1
- streamlit/static/static/js/index.CYMgsYSm.js +0 -1
- streamlit/static/static/js/index.CZjnqbcd.js +0 -73
- streamlit/static/static/js/index.C_4BuzGH.js +0 -1
- streamlit/static/static/js/index.CjiPq39N.js +0 -1
- streamlit/static/static/js/index.CjuTYYFG.js +0 -1
- streamlit/static/static/js/index.CuH7mftz.js +0 -1
- streamlit/static/static/js/index.DFJg1zHB.js +0 -1
- streamlit/static/static/js/index.Dm3nmdhh.js +0 -1
- streamlit/static/static/js/index.rrDohWOh.js +0 -1
- streamlit/static/static/js/useBasicWidgetState.DXLMTaiS.js +0 -1
- streamlit/static/static/media/MaterialSymbols-Rounded.DzyB5T7Y.woff2 +0 -0
- {streamlit_nightly-1.41.2.dev20250201.data → streamlit_nightly-1.42.1.dev20250204.data}/scripts/streamlit.cmd +0 -0
- {streamlit_nightly-1.41.2.dev20250201.dist-info → streamlit_nightly-1.42.1.dev20250204.dist-info}/WHEEL +0 -0
- {streamlit_nightly-1.41.2.dev20250201.dist-info → streamlit_nightly-1.42.1.dev20250204.dist-info}/entry_points.txt +0 -0
- {streamlit_nightly-1.41.2.dev20250201.dist-info → streamlit_nightly-1.42.1.dev20250204.dist-info}/top_level.txt +0 -0
@@ -15,6 +15,7 @@ from __future__ import annotations
|
|
15
15
|
|
16
16
|
import textwrap
|
17
17
|
from abc import ABC, abstractmethod
|
18
|
+
from collections.abc import Sequence
|
18
19
|
from dataclasses import dataclass, field, fields, is_dataclass
|
19
20
|
from datetime import date, datetime, time, timedelta
|
20
21
|
from typing import (
|
@@ -22,8 +23,6 @@ from typing import (
|
|
22
23
|
Any,
|
23
24
|
Callable,
|
24
25
|
Generic,
|
25
|
-
List,
|
26
|
-
Sequence,
|
27
26
|
TypeVar,
|
28
27
|
Union,
|
29
28
|
cast,
|
@@ -728,7 +727,7 @@ class ButtonGroup(Widget, Generic[T]):
|
|
728
727
|
else:
|
729
728
|
state = self.root.session_state
|
730
729
|
assert state
|
731
|
-
return cast(
|
730
|
+
return cast(list[T], state[self.id])
|
732
731
|
|
733
732
|
@property
|
734
733
|
def indices(self) -> Sequence[int]:
|
@@ -816,7 +815,7 @@ class Multiselect(Widget, Generic[T]):
|
|
816
815
|
else:
|
817
816
|
state = self.root.session_state
|
818
817
|
assert state
|
819
|
-
return cast(
|
818
|
+
return cast(list[T], state[self.id])
|
820
819
|
|
821
820
|
@property
|
822
821
|
def indices(self) -> Sequence[int]:
|
@@ -77,9 +77,9 @@ class LocalScriptRunner(ScriptRunner):
|
|
77
77
|
) -> None:
|
78
78
|
# Assert that we're not getting unexpected `sender` params
|
79
79
|
# from ScriptRunner.on_event
|
80
|
-
assert (
|
81
|
-
|
82
|
-
)
|
80
|
+
assert sender is None or sender == self, (
|
81
|
+
"Unexpected ScriptRunnerEvent sender!"
|
82
|
+
)
|
83
83
|
|
84
84
|
self.events.append(event)
|
85
85
|
self.event_data.append(kwargs)
|
streamlit/type_util.py
CHANGED
@@ -20,21 +20,24 @@ import dataclasses
|
|
20
20
|
import re
|
21
21
|
import types
|
22
22
|
from collections import UserList, deque
|
23
|
-
from collections.abc import
|
23
|
+
from collections.abc import (
|
24
|
+
AsyncGenerator,
|
25
|
+
Generator,
|
26
|
+
ItemsView,
|
27
|
+
Iterable,
|
28
|
+
KeysView,
|
29
|
+
Mapping,
|
30
|
+
Sequence,
|
31
|
+
ValuesView,
|
32
|
+
)
|
24
33
|
from enum import EnumMeta
|
25
34
|
from typing import (
|
26
35
|
TYPE_CHECKING,
|
27
36
|
Any,
|
28
|
-
AsyncGenerator,
|
29
37
|
Final,
|
30
|
-
Generator,
|
31
|
-
Iterable,
|
32
38
|
Literal,
|
33
|
-
Mapping,
|
34
39
|
NamedTuple,
|
35
40
|
Protocol,
|
36
|
-
Sequence,
|
37
|
-
Tuple,
|
38
41
|
TypeVar,
|
39
42
|
Union,
|
40
43
|
overload,
|
@@ -56,7 +59,7 @@ T = TypeVar("T")
|
|
56
59
|
|
57
60
|
# we define our own type here because mypy doesn't seem to support the shape type and
|
58
61
|
# reports unreachable code. When mypy supports it, we can remove this custom type.
|
59
|
-
NumpyShape: TypeAlias =
|
62
|
+
NumpyShape: TypeAlias = tuple[int, ...]
|
60
63
|
|
61
64
|
|
62
65
|
class SupportsStr(Protocol):
|
streamlit/user_info.py
CHANGED
@@ -14,11 +14,10 @@
|
|
14
14
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
|
+
from collections.abc import Iterator, Mapping
|
17
18
|
from typing import (
|
18
19
|
TYPE_CHECKING,
|
19
20
|
Final,
|
20
|
-
Iterator,
|
21
|
-
Mapping,
|
22
21
|
NoReturn,
|
23
22
|
Union,
|
24
23
|
)
|
@@ -370,7 +369,7 @@ def _get_user_info() -> UserInfo:
|
|
370
369
|
|
371
370
|
class UserInfoProxy(Mapping[str, Union[str, bool, None]]):
|
372
371
|
"""
|
373
|
-
A read-only, dict-like object for accessing information about the current
|
372
|
+
A read-only, dict-like object for accessing information about the current\
|
374
373
|
user.
|
375
374
|
|
376
375
|
``st.experimental_user`` is dependent on the host platform running your
|
@@ -15,7 +15,7 @@
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
17
|
import os
|
18
|
-
from typing import Callable,
|
18
|
+
from typing import Callable, Union
|
19
19
|
|
20
20
|
import streamlit.watcher
|
21
21
|
from streamlit import cli_util, config, env_util
|
@@ -46,9 +46,9 @@ class NoOpPathWatcher:
|
|
46
46
|
# implementation if its import failed (due to missing watchdog module),
|
47
47
|
# so we can't reference it directly in this type.
|
48
48
|
PathWatcherType = Union[
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
type["streamlit.watcher.event_based_path_watcher.EventBasedPathWatcher"],
|
50
|
+
type[PollingPathWatcher],
|
51
|
+
type[NoOpPathWatcher],
|
52
52
|
]
|
53
53
|
|
54
54
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
|
-
from typing import TYPE_CHECKING, Any
|
17
|
+
from typing import TYPE_CHECKING, Any
|
18
18
|
|
19
19
|
from authlib.integrations.base_client import ( # type: ignore[import-untyped]
|
20
20
|
FrameworkIntegration,
|
@@ -23,6 +23,8 @@ from authlib.integrations.base_client import ( # type: ignore[import-untyped]
|
|
23
23
|
from streamlit.runtime.secrets import AttrDict
|
24
24
|
|
25
25
|
if TYPE_CHECKING:
|
26
|
+
from collections.abc import Sequence
|
27
|
+
|
26
28
|
from streamlit.web.server.oidc_mixin import TornadoOAuth
|
27
29
|
|
28
30
|
|
@@ -16,7 +16,7 @@ from __future__ import annotations
|
|
16
16
|
|
17
17
|
import hmac
|
18
18
|
import json
|
19
|
-
from typing import TYPE_CHECKING, Any,
|
19
|
+
from typing import TYPE_CHECKING, Any, Final
|
20
20
|
from urllib.parse import urlparse
|
21
21
|
|
22
22
|
import tornado.concurrent
|
@@ -39,6 +39,8 @@ from streamlit.web.server.server_util import (
|
|
39
39
|
)
|
40
40
|
|
41
41
|
if TYPE_CHECKING:
|
42
|
+
from collections.abc import Awaitable
|
43
|
+
|
42
44
|
from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
|
43
45
|
|
44
46
|
_LOGGER: Final = get_logger(__name__)
|
streamlit/web/server/routes.py
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
17
|
import os
|
18
|
-
from typing import
|
18
|
+
from typing import TYPE_CHECKING, Final
|
19
19
|
|
20
20
|
import tornado.web
|
21
21
|
|
@@ -27,6 +27,9 @@ from streamlit.web.server.server_util import (
|
|
27
27
|
is_xsrf_enabled,
|
28
28
|
)
|
29
29
|
|
30
|
+
if TYPE_CHECKING:
|
31
|
+
from collections.abc import Sequence
|
32
|
+
|
30
33
|
_LOGGER: Final = get_logger(__name__)
|
31
34
|
|
32
35
|
|
streamlit/web/server/server.py
CHANGED
@@ -20,7 +20,7 @@ import mimetypes
|
|
20
20
|
import os
|
21
21
|
import sys
|
22
22
|
from pathlib import Path
|
23
|
-
from typing import TYPE_CHECKING, Any,
|
23
|
+
from typing import TYPE_CHECKING, Any, Final
|
24
24
|
|
25
25
|
import tornado.concurrent
|
26
26
|
import tornado.locks
|
@@ -63,6 +63,7 @@ from streamlit.web.server.stats_request_handler import StatsRequestHandler
|
|
63
63
|
from streamlit.web.server.upload_file_request_handler import UploadFileRequestHandler
|
64
64
|
|
65
65
|
if TYPE_CHECKING:
|
66
|
+
from collections.abc import Awaitable
|
66
67
|
from ssl import SSLContext
|
67
68
|
|
68
69
|
_LOGGER: Final = get_logger(__name__)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: streamlit-nightly
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.42.1.dev20250204
|
4
4
|
Summary: A faster way to build and share data apps
|
5
5
|
Home-page: https://streamlit.io
|
6
6
|
Author: Snowflake Inc
|
@@ -42,7 +42,6 @@ Requires-Dist: pillow<12,>=7.1.0
|
|
42
42
|
Requires-Dist: protobuf<6,>=3.20
|
43
43
|
Requires-Dist: pyarrow>=7.0
|
44
44
|
Requires-Dist: requests<3,>=2.27
|
45
|
-
Requires-Dist: rich<14,>=10.14.0
|
46
45
|
Requires-Dist: tenacity<10,>=8.1.0
|
47
46
|
Requires-Dist: toml<2,>=0.10.1
|
48
47
|
Requires-Dist: typing-extensions<5,>=4.4.0
|