streamlit-nightly 1.45.1.dev20250501__py3-none-any.whl → 1.45.1.dev20250503__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/elements/widgets/camera_input.py +20 -0
- streamlit/elements/widgets/file_uploader.py +23 -0
- streamlit/elements/widgets/select_slider.py +23 -0
- streamlit/elements/widgets/slider.py +17 -0
- streamlit/elements/widgets/text_widgets.py +38 -0
- streamlit/proto/CameraInput_pb2.py +4 -3
- streamlit/proto/CameraInput_pb2.pyi +8 -2
- streamlit/proto/FileUploader_pb2.py +4 -3
- streamlit/proto/FileUploader_pb2.pyi +8 -2
- streamlit/proto/Slider_pb2.py +8 -7
- streamlit/proto/Slider_pb2.pyi +8 -2
- streamlit/proto/TextArea_pb2.py +4 -3
- streamlit/proto/TextArea_pb2.pyi +9 -2
- streamlit/proto/TextInput_pb2.py +6 -5
- streamlit/proto/TextInput_pb2.pyi +9 -2
- streamlit/static/index.html +1 -1
- streamlit/static/static/js/{ErrorOutline.esm.JdVs1Qkg.js → ErrorOutline.esm.Bi4rIKce.js} +1 -1
- streamlit/static/static/js/{FileDownload.esm.BlQJ4vNG.js → FileDownload.esm.CgcfJ7jp.js} +1 -1
- streamlit/static/static/js/{FileHelper.V4GYCyDu.js → FileHelper.DNojV8Y-.js} +1 -1
- streamlit/static/static/js/{FormClearHelper.CyxVAl63.js → FormClearHelper.Dj9cIjIB.js} +1 -1
- streamlit/static/static/js/{Hooks.CwzpXjfg.js → Hooks.BzFUZ6MJ.js} +1 -1
- streamlit/static/static/js/{InputInstructions.DLh-ti71.js → InputInstructions.CYPXcx5I.js} +1 -1
- streamlit/static/static/js/{ProgressBar.C7bBETsY.js → ProgressBar.ZaslM_lv.js} +1 -1
- streamlit/static/static/js/{RenderInPortalIfExists.BMvxq2hn.js → RenderInPortalIfExists.BuhqVIo4.js} +1 -1
- streamlit/static/static/js/{Toolbar.CotfqUm6.js → Toolbar.Dh9Ti0Xp.js} +1 -1
- streamlit/static/static/js/{base-input.BxaSmpU7.js → base-input.CWmg0piT.js} +1 -1
- streamlit/static/static/js/{checkbox.CrglCerk.js → checkbox.B55PmSuL.js} +1 -1
- streamlit/static/static/js/{createSuper.Bs0C396a.js → createSuper.B_ZYGAdZ.js} +1 -1
- streamlit/static/static/js/{data-grid-overlay-editor.D0k84F-1.js → data-grid-overlay-editor.BC3_SI0J.js} +1 -1
- streamlit/static/static/js/{downloader.BpZrmdUi.js → downloader.DCVryQ8m.js} +1 -1
- streamlit/static/static/js/{es6.DD8ccAPk.js → es6.Dz_yB5z2.js} +2 -2
- streamlit/static/static/js/{iframeResizer.contentWindow.7G5YE4ki.js → iframeResizer.contentWindow.BL9oGsv0.js} +1 -1
- streamlit/static/static/js/{index.65FBensJ.js → index.149XmMwk.js} +1 -1
- streamlit/static/static/js/{index.DICnhvRg.js → index.B2rrdjSM.js} +1 -1
- streamlit/static/static/js/{index.CMjYL7Ho.js → index.B4dHtLlL.js} +1 -1
- streamlit/static/static/js/{index.DO535td0.js → index.B6Lkujkg.js} +1 -1
- streamlit/static/static/js/{index.DUF1Zxw6.js → index.B71v2qvG.js} +1 -1
- streamlit/static/static/js/{index.B2lDS5vI.js → index.B8bKQXh9.js} +1 -1
- streamlit/static/static/js/{index.Dz4o-tqP.js → index.BKWZKL08.js} +5 -5
- streamlit/static/static/js/{index.COpV4IZK.js → index.BL9ZervX.js} +1 -1
- streamlit/static/static/js/{index.COBwb1mq.js → index.BTniWQ7k.js} +1 -1
- streamlit/static/static/js/{index.Czzj5-re.js → index.Bi2P2smS.js} +1 -1
- streamlit/static/static/js/{index.DX2vW3qb.js → index.Bjv3WjfL.js} +1 -1
- streamlit/static/static/js/{index.D5GLQoRz.js → index.Bkh6Uq46.js} +1 -1
- streamlit/static/static/js/{index.Cgzj9ewR.js → index.Bw1GLRoJ.js} +1 -1
- streamlit/static/static/js/{index.BQqNcnRp.js → index.C1Onnqgx.js} +34 -34
- streamlit/static/static/js/{index.SARy_Med.js → index.C5Bk4I5D.js} +1 -1
- streamlit/static/static/js/{index.BjKCKyJI.js → index.C9t2WUik.js} +1 -1
- streamlit/static/static/js/{index.Co5UsG7W.js → index.CEtbVfDc.js} +1 -1
- streamlit/static/static/js/{index.DM4oCpFy.js → index.CKlQXXH5.js} +1 -1
- streamlit/static/static/js/{index.C2kSDT38.js → index.CLm1vyQL.js} +1 -1
- streamlit/static/static/js/{index.Olz7Xaf0.js → index.CNMeZMWE.js} +1 -1
- streamlit/static/static/js/{index.5p5xlu27.js → index.Cim9S8Ss.js} +1 -1
- streamlit/static/static/js/{index.B3VXbj_b.js → index.Clgb-C0M.js} +1 -1
- streamlit/static/static/js/{index.BNm3tuep.js → index.CnBJWuqh.js} +1 -1
- streamlit/static/static/js/{index.BNhdn2vD.js → index.CqhFhCXO.js} +1 -1
- streamlit/static/static/js/{index.9sjzZWLH.js → index.DB8lzSwd.js} +1 -1
- streamlit/static/static/js/{index.80LGX7Ne.js → index.DBjodTv0.js} +1 -1
- streamlit/static/static/js/{index.BI5f0VII.js → index.DGQq6N06.js} +1 -1
- streamlit/static/static/js/{index.BDLXYKTS.js → index.DJXE7AM9.js} +1 -1
- streamlit/static/static/js/{index.Dq6k7Ztd.js → index.DX5LBKpa.js} +1 -1
- streamlit/static/static/js/{index.DK_eUkea.js → index.DXNwUj37.js} +1 -1
- streamlit/static/static/js/{index.rHb0nIsm.js → index.Dk4s-H9g.js} +1 -1
- streamlit/static/static/js/{index.DfgXsqtW.js → index.DsUIRBrE.js} +1 -1
- streamlit/static/static/js/{index.BF0CTyRa.js → index.JBn4qgd8.js} +1 -1
- streamlit/static/static/js/{index.CveEeb4Q.js → index.ZM4hBepQ.js} +1 -1
- streamlit/static/static/js/{index.CkutRj8u.js → index.n-3bctcT.js} +1 -1
- streamlit/static/static/js/{index.DW80zFo4.js → index.poyxGVIV.js} +1 -1
- streamlit/static/static/js/{index.D1wWsFMc.js → index.xXFNtMRp.js} +1 -1
- streamlit/static/static/js/{input.ChMez782.js → input.tN5HMxoF.js} +1 -1
- streamlit/static/static/js/{memory.DEIZt-uk.js → memory.CUqn-HRH.js} +1 -1
- streamlit/static/static/js/{mergeWith.DV3wfmZj.js → mergeWith.DerBQcY2.js} +1 -1
- streamlit/static/static/js/{number-overlay-editor.CVWV51LZ.js → number-overlay-editor.BU-PumD0.js} +1 -1
- streamlit/static/static/js/{possibleConstructorReturn.D8SHK4fu.js → possibleConstructorReturn.BqXvihmp.js} +1 -1
- streamlit/static/static/js/{sandbox.2Y0eB1Fb.js → sandbox.DEPmvMZ8.js} +1 -1
- streamlit/static/static/js/{textarea.CfOMMQUp.js → textarea.DTRZkwAk.js} +1 -1
- streamlit/static/static/js/{timepicker.BCEVqM6L.js → timepicker.BkL0oPvT.js} +1 -1
- streamlit/static/static/js/{toConsumableArray.CgIgbjyR.js → toConsumableArray.DtI7t_Vr.js} +1 -1
- streamlit/static/static/js/{uniqueId.CasOW7eQ.js → uniqueId.CBIMIugU.js} +1 -1
- streamlit/static/static/js/{useBasicWidgetState.DM0uW3hG.js → useBasicWidgetState.CBoFkKUi.js} +1 -1
- streamlit/static/static/js/{useOnInputChange.C9p9DssL.js → useOnInputChange.B59UtP7h.js} +1 -1
- streamlit/static/static/js/{withFullScreenWrapper.Du9h1SFo.js → withFullScreenWrapper.BaWUpTVz.js} +1 -1
- {streamlit_nightly-1.45.1.dev20250501.dist-info → streamlit_nightly-1.45.1.dev20250503.dist-info}/METADATA +1 -1
- {streamlit_nightly-1.45.1.dev20250501.dist-info → streamlit_nightly-1.45.1.dev20250503.dist-info}/RECORD +88 -88
- {streamlit_nightly-1.45.1.dev20250501.dist-info → streamlit_nightly-1.45.1.dev20250503.dist-info}/WHEEL +1 -1
- {streamlit_nightly-1.45.1.dev20250501.data → streamlit_nightly-1.45.1.dev20250503.data}/scripts/streamlit.cmd +0 -0
- {streamlit_nightly-1.45.1.dev20250501.dist-info → streamlit_nightly-1.45.1.dev20250503.dist-info}/entry_points.txt +0 -0
- {streamlit_nightly-1.45.1.dev20250501.dist-info → streamlit_nightly-1.45.1.dev20250503.dist-info}/top_level.txt +0 -0
@@ -22,6 +22,7 @@ from typing_extensions import TypeAlias
|
|
22
22
|
|
23
23
|
from streamlit.elements.lib.file_uploader_utils import enforce_filename_restriction
|
24
24
|
from streamlit.elements.lib.form_utils import current_form_id
|
25
|
+
from streamlit.elements.lib.layout_utils import validate_width
|
25
26
|
from streamlit.elements.lib.policies import (
|
26
27
|
check_widget_policies,
|
27
28
|
maybe_raise_label_warnings,
|
@@ -37,6 +38,7 @@ from streamlit.elements.widgets.file_uploader import _get_upload_files
|
|
37
38
|
from streamlit.proto.CameraInput_pb2 import CameraInput as CameraInputProto
|
38
39
|
from streamlit.proto.Common_pb2 import FileUploaderState as FileUploaderStateProto
|
39
40
|
from streamlit.proto.Common_pb2 import UploadedFileInfo as UploadedFileInfoProto
|
41
|
+
from streamlit.proto.WidthConfig_pb2 import WidthConfig
|
40
42
|
from streamlit.runtime.metrics_util import gather_metrics
|
41
43
|
from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
|
42
44
|
from streamlit.runtime.state import (
|
@@ -49,6 +51,7 @@ from streamlit.runtime.uploaded_file_manager import DeletedFile, UploadedFile
|
|
49
51
|
|
50
52
|
if TYPE_CHECKING:
|
51
53
|
from streamlit.delta_generator import DeltaGenerator
|
54
|
+
from streamlit.elements.lib.layout_utils import WidthWithoutContent
|
52
55
|
|
53
56
|
SomeUploadedSnapshotFile: TypeAlias = Union[UploadedFile, DeletedFile, None]
|
54
57
|
|
@@ -98,6 +101,7 @@ class CameraInputMixin:
|
|
98
101
|
*, # keyword-only arguments:
|
99
102
|
disabled: bool = False,
|
100
103
|
label_visibility: LabelVisibility = "visible",
|
104
|
+
width: WidthWithoutContent = "stretch",
|
101
105
|
) -> UploadedFile | None:
|
102
106
|
r"""Display a widget that returns pictures from the user's webcam.
|
103
107
|
|
@@ -159,6 +163,11 @@ class CameraInputMixin:
|
|
159
163
|
label, which can help keep the widget alligned with other widgets.
|
160
164
|
If this is ``"collapsed"``, Streamlit displays no label or spacer.
|
161
165
|
|
166
|
+
width : "stretch" or int
|
167
|
+
The width of the camera input widget. If "stretch" (default), the widget
|
168
|
+
will take up the full width of its container. If an integer, the width
|
169
|
+
will be set to that number of pixels.
|
170
|
+
|
162
171
|
Returns
|
163
172
|
-------
|
164
173
|
None or UploadedFile
|
@@ -191,6 +200,7 @@ class CameraInputMixin:
|
|
191
200
|
kwargs=kwargs,
|
192
201
|
disabled=disabled,
|
193
202
|
label_visibility=label_visibility,
|
203
|
+
width=width,
|
194
204
|
ctx=ctx,
|
195
205
|
)
|
196
206
|
|
@@ -205,6 +215,7 @@ class CameraInputMixin:
|
|
205
215
|
*, # keyword-only arguments:
|
206
216
|
disabled: bool = False,
|
207
217
|
label_visibility: LabelVisibility = "visible",
|
218
|
+
width: WidthWithoutContent = "stretch",
|
208
219
|
ctx: ScriptRunContext | None = None,
|
209
220
|
) -> UploadedFile | None:
|
210
221
|
key = to_key(key)
|
@@ -224,6 +235,7 @@ class CameraInputMixin:
|
|
224
235
|
form_id=current_form_id(self.dg),
|
225
236
|
label=label,
|
226
237
|
help=help,
|
238
|
+
width=width,
|
227
239
|
)
|
228
240
|
|
229
241
|
camera_input_proto = CameraInputProto()
|
@@ -238,6 +250,14 @@ class CameraInputMixin:
|
|
238
250
|
if help is not None:
|
239
251
|
camera_input_proto.help = dedent(help)
|
240
252
|
|
253
|
+
validate_width(width)
|
254
|
+
width_config = WidthConfig()
|
255
|
+
if isinstance(width, int):
|
256
|
+
width_config.pixel_width = width
|
257
|
+
else:
|
258
|
+
width_config.use_stretch = True
|
259
|
+
camera_input_proto.width_config.CopyFrom(width_config)
|
260
|
+
|
241
261
|
serde = CameraInputSerde()
|
242
262
|
|
243
263
|
camera_input_state = register_widget(
|
@@ -26,6 +26,7 @@ from streamlit.elements.lib.file_uploader_utils import (
|
|
26
26
|
normalize_upload_file_type,
|
27
27
|
)
|
28
28
|
from streamlit.elements.lib.form_utils import current_form_id
|
29
|
+
from streamlit.elements.lib.layout_utils import WidthWithoutContent, validate_width
|
29
30
|
from streamlit.elements.lib.policies import (
|
30
31
|
check_widget_policies,
|
31
32
|
maybe_raise_label_warnings,
|
@@ -40,6 +41,7 @@ from streamlit.elements.lib.utils import (
|
|
40
41
|
from streamlit.proto.Common_pb2 import FileUploaderState as FileUploaderStateProto
|
41
42
|
from streamlit.proto.Common_pb2 import UploadedFileInfo as UploadedFileInfoProto
|
42
43
|
from streamlit.proto.FileUploader_pb2 import FileUploader as FileUploaderProto
|
44
|
+
from streamlit.proto.WidthConfig_pb2 import WidthConfig
|
43
45
|
from streamlit.runtime.metrics_util import gather_metrics
|
44
46
|
from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
|
45
47
|
from streamlit.runtime.state import (
|
@@ -167,6 +169,7 @@ class FileUploaderMixin:
|
|
167
169
|
*,
|
168
170
|
disabled: bool = False,
|
169
171
|
label_visibility: LabelVisibility = "visible",
|
172
|
+
width: WidthWithoutContent = "stretch",
|
170
173
|
) -> list[UploadedFile] | None: ...
|
171
174
|
|
172
175
|
# 1. type is given as not a keyword-only argument
|
@@ -185,6 +188,7 @@ class FileUploaderMixin:
|
|
185
188
|
*,
|
186
189
|
disabled: bool = False,
|
187
190
|
label_visibility: LabelVisibility = "visible",
|
191
|
+
width: WidthWithoutContent = "stretch",
|
188
192
|
) -> UploadedFile | None: ...
|
189
193
|
|
190
194
|
# The following 2 overloads represent the cases where
|
@@ -208,6 +212,7 @@ class FileUploaderMixin:
|
|
208
212
|
kwargs: WidgetKwargs | None = None,
|
209
213
|
disabled: bool = False,
|
210
214
|
label_visibility: LabelVisibility = "visible",
|
215
|
+
width: WidthWithoutContent = "stretch",
|
211
216
|
) -> list[UploadedFile] | None: ...
|
212
217
|
|
213
218
|
# 1. type is skipped or a keyword argument
|
@@ -226,6 +231,7 @@ class FileUploaderMixin:
|
|
226
231
|
kwargs: WidgetKwargs | None = None,
|
227
232
|
disabled: bool = False,
|
228
233
|
label_visibility: LabelVisibility = "visible",
|
234
|
+
width: WidthWithoutContent = "stretch",
|
229
235
|
) -> UploadedFile | None: ...
|
230
236
|
|
231
237
|
@gather_metrics("file_uploader")
|
@@ -242,6 +248,7 @@ class FileUploaderMixin:
|
|
242
248
|
*, # keyword-only arguments:
|
243
249
|
disabled: bool = False,
|
244
250
|
label_visibility: LabelVisibility = "visible",
|
251
|
+
width: WidthWithoutContent = "stretch",
|
245
252
|
) -> UploadedFile | list[UploadedFile] | None:
|
246
253
|
r"""Display a file uploader widget.
|
247
254
|
By default, uploaded files are limited to 200 MB each. You can
|
@@ -326,6 +333,11 @@ class FileUploaderMixin:
|
|
326
333
|
label, which can help keep the widget alligned with other widgets.
|
327
334
|
If this is ``"collapsed"``, Streamlit displays no label or spacer.
|
328
335
|
|
336
|
+
width : "stretch" or int
|
337
|
+
The width of the file uploader widget. If "stretch" (default), the widget
|
338
|
+
will take up the full width of its container. If an integer, the width
|
339
|
+
will be set to that number of pixels.
|
340
|
+
|
329
341
|
Returns
|
330
342
|
-------
|
331
343
|
None, UploadedFile, or list of UploadedFile
|
@@ -394,6 +406,7 @@ class FileUploaderMixin:
|
|
394
406
|
kwargs=kwargs,
|
395
407
|
disabled=disabled,
|
396
408
|
label_visibility=label_visibility,
|
409
|
+
width=width,
|
397
410
|
ctx=ctx,
|
398
411
|
)
|
399
412
|
|
@@ -411,6 +424,7 @@ class FileUploaderMixin:
|
|
411
424
|
label_visibility: LabelVisibility = "visible",
|
412
425
|
disabled: bool = False,
|
413
426
|
ctx: ScriptRunContext | None = None,
|
427
|
+
width: WidthWithoutContent = "stretch",
|
414
428
|
) -> UploadedFile | list[UploadedFile] | None:
|
415
429
|
key = to_key(key)
|
416
430
|
|
@@ -431,6 +445,7 @@ class FileUploaderMixin:
|
|
431
445
|
type=type,
|
432
446
|
accept_multiple_files=accept_multiple_files,
|
433
447
|
help=help,
|
448
|
+
width=width,
|
434
449
|
)
|
435
450
|
|
436
451
|
normalized_type = normalize_upload_file_type(type) if type else None
|
@@ -470,6 +485,14 @@ class FileUploaderMixin:
|
|
470
485
|
value_type="file_uploader_state_value",
|
471
486
|
)
|
472
487
|
|
488
|
+
validate_width(width)
|
489
|
+
width_config = WidthConfig()
|
490
|
+
if isinstance(width, int):
|
491
|
+
width_config.pixel_width = width
|
492
|
+
else:
|
493
|
+
width_config.use_stretch = True
|
494
|
+
file_uploader_proto.width_config.CopyFrom(width_config)
|
495
|
+
|
473
496
|
self.dg._enqueue("file_uploader", file_uploader_proto)
|
474
497
|
|
475
498
|
if isinstance(widget_state.value, DeletedFile):
|
@@ -29,6 +29,7 @@ from typing_extensions import TypeGuard
|
|
29
29
|
|
30
30
|
from streamlit.dataframe_util import OptionSequence, convert_anything_to_list
|
31
31
|
from streamlit.elements.lib.form_utils import current_form_id
|
32
|
+
from streamlit.elements.lib.layout_utils import validate_width
|
32
33
|
from streamlit.elements.lib.options_selector_utils import (
|
33
34
|
index_,
|
34
35
|
maybe_coerce_enum,
|
@@ -48,6 +49,7 @@ from streamlit.elements.lib.utils import (
|
|
48
49
|
)
|
49
50
|
from streamlit.errors import StreamlitAPIException
|
50
51
|
from streamlit.proto.Slider_pb2 import Slider as SliderProto
|
52
|
+
from streamlit.proto.WidthConfig_pb2 import WidthConfig
|
51
53
|
from streamlit.runtime.metrics_util import gather_metrics
|
52
54
|
from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
|
53
55
|
from streamlit.runtime.state import (
|
@@ -62,6 +64,7 @@ if TYPE_CHECKING:
|
|
62
64
|
from collections.abc import Sequence
|
63
65
|
|
64
66
|
from streamlit.delta_generator import DeltaGenerator
|
67
|
+
from streamlit.elements.lib.layout_utils import WidthWithoutContent
|
65
68
|
from streamlit.runtime.state.common import RegisterWidgetResult
|
66
69
|
|
67
70
|
|
@@ -119,6 +122,7 @@ class SelectSliderMixin:
|
|
119
122
|
*, # keyword-only arguments:
|
120
123
|
disabled: bool = False,
|
121
124
|
label_visibility: LabelVisibility = "visible",
|
125
|
+
width: WidthWithoutContent = "stretch",
|
122
126
|
) -> tuple[T, T]: ...
|
123
127
|
|
124
128
|
# The overload-overlap error given by mypy here stems from
|
@@ -148,6 +152,7 @@ class SelectSliderMixin:
|
|
148
152
|
*, # keyword-only arguments:
|
149
153
|
disabled: bool = False,
|
150
154
|
label_visibility: LabelVisibility = "visible",
|
155
|
+
width: WidthWithoutContent = "stretch",
|
151
156
|
) -> T: ...
|
152
157
|
|
153
158
|
@gather_metrics("select_slider")
|
@@ -165,6 +170,7 @@ class SelectSliderMixin:
|
|
165
170
|
*, # keyword-only arguments:
|
166
171
|
disabled: bool = False,
|
167
172
|
label_visibility: LabelVisibility = "visible",
|
173
|
+
width: WidthWithoutContent = "stretch",
|
168
174
|
) -> T | tuple[T, T]:
|
169
175
|
r"""
|
170
176
|
Display a slider widget to select items from a list.
|
@@ -252,6 +258,11 @@ class SelectSliderMixin:
|
|
252
258
|
label, which can help keep the widget alligned with other widgets.
|
253
259
|
If this is ``"collapsed"``, Streamlit displays no label or spacer.
|
254
260
|
|
261
|
+
width : "stretch" or int
|
262
|
+
The width of the slider. If "stretch", the slider will stretch to
|
263
|
+
fill the available space. If an integer, the slider will have a fixed
|
264
|
+
width in pixels.
|
265
|
+
|
255
266
|
Returns
|
256
267
|
-------
|
257
268
|
any value or tuple of any value
|
@@ -314,6 +325,7 @@ class SelectSliderMixin:
|
|
314
325
|
disabled=disabled,
|
315
326
|
label_visibility=label_visibility,
|
316
327
|
ctx=ctx,
|
328
|
+
width=width,
|
317
329
|
)
|
318
330
|
|
319
331
|
def _select_slider(
|
@@ -330,6 +342,7 @@ class SelectSliderMixin:
|
|
330
342
|
disabled: bool = False,
|
331
343
|
label_visibility: LabelVisibility = "visible",
|
332
344
|
ctx: ScriptRunContext | None = None,
|
345
|
+
width: WidthWithoutContent = "stretch",
|
333
346
|
) -> T | tuple[T, T]:
|
334
347
|
key = to_key(key)
|
335
348
|
|
@@ -375,6 +388,7 @@ class SelectSliderMixin:
|
|
375
388
|
options=[str(format_func(option)) for option in opt],
|
376
389
|
value=slider_value,
|
377
390
|
help=help,
|
391
|
+
width=width,
|
378
392
|
)
|
379
393
|
|
380
394
|
slider_proto = SliderProto()
|
@@ -396,6 +410,15 @@ class SelectSliderMixin:
|
|
396
410
|
if help is not None:
|
397
411
|
slider_proto.help = dedent(help)
|
398
412
|
|
413
|
+
# Set width config
|
414
|
+
validate_width(width)
|
415
|
+
width_config = WidthConfig()
|
416
|
+
if isinstance(width, int):
|
417
|
+
width_config.pixel_width = width
|
418
|
+
else:
|
419
|
+
width_config.use_stretch = True
|
420
|
+
slider_proto.width_config.CopyFrom(width_config)
|
421
|
+
|
399
422
|
serde = SelectSliderSerde(opt, slider_value, _is_range_value(value))
|
400
423
|
|
401
424
|
widget_state = register_widget(
|
@@ -33,6 +33,7 @@ from typing_extensions import TypeAlias
|
|
33
33
|
|
34
34
|
from streamlit.elements.lib.form_utils import current_form_id
|
35
35
|
from streamlit.elements.lib.js_number import JSNumber, JSNumberBoundsException
|
36
|
+
from streamlit.elements.lib.layout_utils import validate_width
|
36
37
|
from streamlit.elements.lib.policies import (
|
37
38
|
check_widget_policies,
|
38
39
|
maybe_raise_label_warnings,
|
@@ -50,6 +51,7 @@ from streamlit.errors import (
|
|
50
51
|
StreamlitValueBelowMinError,
|
51
52
|
)
|
52
53
|
from streamlit.proto.Slider_pb2 import Slider as SliderProto
|
54
|
+
from streamlit.proto.WidthConfig_pb2 import WidthConfig
|
53
55
|
from streamlit.runtime.metrics_util import gather_metrics
|
54
56
|
from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
|
55
57
|
from streamlit.runtime.state import (
|
@@ -62,6 +64,7 @@ from streamlit.runtime.state import (
|
|
62
64
|
|
63
65
|
if TYPE_CHECKING:
|
64
66
|
from streamlit.delta_generator import DeltaGenerator
|
67
|
+
from streamlit.elements.lib.layout_utils import WidthWithoutContent
|
65
68
|
|
66
69
|
SliderNumericT = TypeVar("SliderNumericT", int, float)
|
67
70
|
SliderDatelikeT = TypeVar("SliderDatelikeT", date, time, datetime)
|
@@ -353,6 +356,7 @@ class SliderMixin:
|
|
353
356
|
*, # keyword-only arguments:
|
354
357
|
disabled: bool = False,
|
355
358
|
label_visibility: LabelVisibility = "visible",
|
359
|
+
width: WidthWithoutContent = "stretch",
|
356
360
|
) -> Any:
|
357
361
|
r"""Display a slider widget.
|
358
362
|
|
@@ -479,6 +483,8 @@ class SliderMixin:
|
|
479
483
|
label, which can help keep the widget alligned with other widgets.
|
480
484
|
If this is ``"collapsed"``, Streamlit displays no label or spacer.
|
481
485
|
|
486
|
+
width : "stretch" or pixel width
|
487
|
+
The width of the slider. The default is "stretch".
|
482
488
|
|
483
489
|
Returns
|
484
490
|
-------
|
@@ -542,6 +548,7 @@ class SliderMixin:
|
|
542
548
|
kwargs=kwargs,
|
543
549
|
disabled=disabled,
|
544
550
|
label_visibility=label_visibility,
|
551
|
+
width=width,
|
545
552
|
ctx=ctx,
|
546
553
|
)
|
547
554
|
|
@@ -561,6 +568,7 @@ class SliderMixin:
|
|
561
568
|
*, # keyword-only arguments:
|
562
569
|
disabled: bool = False,
|
563
570
|
label_visibility: LabelVisibility = "visible",
|
571
|
+
width: WidthWithoutContent = "stretch",
|
564
572
|
ctx: ScriptRunContext | None = None,
|
565
573
|
) -> SliderReturn:
|
566
574
|
key = to_key(key)
|
@@ -584,6 +592,7 @@ class SliderMixin:
|
|
584
592
|
step=step,
|
585
593
|
format=format,
|
586
594
|
help=help,
|
595
|
+
width=width,
|
587
596
|
)
|
588
597
|
|
589
598
|
SUPPORTED_TYPES = {
|
@@ -883,6 +892,14 @@ class SliderMixin:
|
|
883
892
|
slider_proto.value[:] = serialized_values
|
884
893
|
slider_proto.set_value = True
|
885
894
|
|
895
|
+
validate_width(width)
|
896
|
+
width_config = WidthConfig()
|
897
|
+
if isinstance(width, int):
|
898
|
+
width_config.pixel_width = width
|
899
|
+
else:
|
900
|
+
width_config.use_stretch = True
|
901
|
+
slider_proto.width_config.CopyFrom(width_config)
|
902
|
+
|
886
903
|
self.dg._enqueue("slider", slider_proto)
|
887
904
|
return cast("SliderReturn", widget_state.value)
|
888
905
|
|
@@ -19,6 +19,7 @@ from textwrap import dedent
|
|
19
19
|
from typing import TYPE_CHECKING, Literal, cast, overload
|
20
20
|
|
21
21
|
from streamlit.elements.lib.form_utils import current_form_id
|
22
|
+
from streamlit.elements.lib.layout_utils import WidthWithoutContent, validate_width
|
22
23
|
from streamlit.elements.lib.policies import (
|
23
24
|
check_widget_policies,
|
24
25
|
maybe_raise_label_warnings,
|
@@ -33,6 +34,7 @@ from streamlit.elements.lib.utils import (
|
|
33
34
|
from streamlit.errors import StreamlitAPIException
|
34
35
|
from streamlit.proto.TextArea_pb2 import TextArea as TextAreaProto
|
35
36
|
from streamlit.proto.TextInput_pb2 import TextInput as TextInputProto
|
37
|
+
from streamlit.proto.WidthConfig_pb2 import WidthConfig
|
36
38
|
from streamlit.runtime.metrics_util import gather_metrics
|
37
39
|
from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
|
38
40
|
from streamlit.runtime.state import (
|
@@ -91,6 +93,7 @@ class TextWidgetsMixin:
|
|
91
93
|
disabled: bool = False,
|
92
94
|
label_visibility: LabelVisibility = "visible",
|
93
95
|
icon: str | None = None,
|
96
|
+
width: WidthWithoutContent = "stretch",
|
94
97
|
) -> str:
|
95
98
|
pass
|
96
99
|
|
@@ -112,6 +115,7 @@ class TextWidgetsMixin:
|
|
112
115
|
disabled: bool = False,
|
113
116
|
label_visibility: LabelVisibility = "visible",
|
114
117
|
icon: str | None = None,
|
118
|
+
width: WidthWithoutContent = "stretch",
|
115
119
|
) -> str | None:
|
116
120
|
pass
|
117
121
|
|
@@ -133,6 +137,7 @@ class TextWidgetsMixin:
|
|
133
137
|
disabled: bool = False,
|
134
138
|
label_visibility: LabelVisibility = "visible",
|
135
139
|
icon: str | None = None,
|
140
|
+
width: WidthWithoutContent = "stretch",
|
136
141
|
) -> str | None:
|
137
142
|
r"""Display a single-line text input widget.
|
138
143
|
|
@@ -233,6 +238,9 @@ class TextWidgetsMixin:
|
|
233
238
|
<https://fonts.google.com/icons?icon.set=Material+Symbols&icon.style=Rounded>`_
|
234
239
|
font library.
|
235
240
|
|
241
|
+
width : WidthWithoutContent
|
242
|
+
The width of the text input. Defaults to "stretch".
|
243
|
+
|
236
244
|
Returns
|
237
245
|
-------
|
238
246
|
str or None
|
@@ -267,6 +275,7 @@ class TextWidgetsMixin:
|
|
267
275
|
disabled=disabled,
|
268
276
|
label_visibility=label_visibility,
|
269
277
|
icon=icon,
|
278
|
+
width=width,
|
270
279
|
ctx=ctx,
|
271
280
|
)
|
272
281
|
|
@@ -287,6 +296,7 @@ class TextWidgetsMixin:
|
|
287
296
|
disabled: bool = False,
|
288
297
|
label_visibility: LabelVisibility = "visible",
|
289
298
|
icon: str | None = None,
|
299
|
+
width: WidthWithoutContent = "stretch",
|
290
300
|
ctx: ScriptRunContext | None = None,
|
291
301
|
) -> str | None:
|
292
302
|
key = to_key(key)
|
@@ -298,6 +308,7 @@ class TextWidgetsMixin:
|
|
298
308
|
default_value=None if value == "" else value,
|
299
309
|
)
|
300
310
|
maybe_raise_label_warnings(label, label_visibility)
|
311
|
+
validate_width(width)
|
301
312
|
|
302
313
|
# Make sure value is always string or None:
|
303
314
|
value = str(value) if value is not None else None
|
@@ -314,6 +325,7 @@ class TextWidgetsMixin:
|
|
314
325
|
autocomplete=autocomplete,
|
315
326
|
placeholder=str(placeholder),
|
316
327
|
icon=icon,
|
328
|
+
width=width,
|
317
329
|
)
|
318
330
|
|
319
331
|
session_state = get_session_state().filtered_state
|
@@ -343,6 +355,14 @@ class TextWidgetsMixin:
|
|
343
355
|
if icon is not None:
|
344
356
|
text_input_proto.icon = validate_icon_or_emoji(icon)
|
345
357
|
|
358
|
+
# Set up width configuration
|
359
|
+
width_config = WidthConfig()
|
360
|
+
if isinstance(width, int):
|
361
|
+
width_config.pixel_width = width
|
362
|
+
else:
|
363
|
+
width_config.use_stretch = True
|
364
|
+
text_input_proto.width_config.CopyFrom(width_config)
|
365
|
+
|
346
366
|
if type == "default":
|
347
367
|
text_input_proto.type = TextInputProto.DEFAULT
|
348
368
|
elif type == "password":
|
@@ -396,6 +416,7 @@ class TextWidgetsMixin:
|
|
396
416
|
placeholder: str | None = None,
|
397
417
|
disabled: bool = False,
|
398
418
|
label_visibility: LabelVisibility = "visible",
|
419
|
+
width: WidthWithoutContent = "stretch",
|
399
420
|
) -> str:
|
400
421
|
pass
|
401
422
|
|
@@ -415,6 +436,7 @@ class TextWidgetsMixin:
|
|
415
436
|
placeholder: str | None = None,
|
416
437
|
disabled: bool = False,
|
417
438
|
label_visibility: LabelVisibility = "visible",
|
439
|
+
width: WidthWithoutContent = "stretch",
|
418
440
|
) -> str | None:
|
419
441
|
pass
|
420
442
|
|
@@ -434,6 +456,7 @@ class TextWidgetsMixin:
|
|
434
456
|
placeholder: str | None = None,
|
435
457
|
disabled: bool = False,
|
436
458
|
label_visibility: LabelVisibility = "visible",
|
459
|
+
width: WidthWithoutContent = "stretch",
|
437
460
|
) -> str | None:
|
438
461
|
r"""Display a multi-line text input widget.
|
439
462
|
|
@@ -511,6 +534,9 @@ class TextWidgetsMixin:
|
|
511
534
|
label, which can help keep the widget alligned with other widgets.
|
512
535
|
If this is ``"collapsed"``, Streamlit displays no label or spacer.
|
513
536
|
|
537
|
+
width : WidthWithoutContent
|
538
|
+
The width of the text area. Defaults to "stretch".
|
539
|
+
|
514
540
|
Returns
|
515
541
|
-------
|
516
542
|
str or None
|
@@ -557,6 +583,7 @@ class TextWidgetsMixin:
|
|
557
583
|
placeholder=placeholder,
|
558
584
|
disabled=disabled,
|
559
585
|
label_visibility=label_visibility,
|
586
|
+
width=width,
|
560
587
|
ctx=ctx,
|
561
588
|
)
|
562
589
|
|
@@ -575,6 +602,7 @@ class TextWidgetsMixin:
|
|
575
602
|
placeholder: str | None = None,
|
576
603
|
disabled: bool = False,
|
577
604
|
label_visibility: LabelVisibility = "visible",
|
605
|
+
width: WidthWithoutContent = "stretch",
|
578
606
|
ctx: ScriptRunContext | None = None,
|
579
607
|
) -> str | None:
|
580
608
|
key = to_key(key)
|
@@ -586,6 +614,7 @@ class TextWidgetsMixin:
|
|
586
614
|
default_value=None if value == "" else value,
|
587
615
|
)
|
588
616
|
maybe_raise_label_warnings(label, label_visibility)
|
617
|
+
validate_width(width)
|
589
618
|
|
590
619
|
value = str(value) if value is not None else None
|
591
620
|
|
@@ -599,6 +628,7 @@ class TextWidgetsMixin:
|
|
599
628
|
max_chars=max_chars,
|
600
629
|
help=help,
|
601
630
|
placeholder=str(placeholder),
|
631
|
+
width=width,
|
602
632
|
)
|
603
633
|
|
604
634
|
session_state = get_session_state().filtered_state
|
@@ -628,6 +658,14 @@ class TextWidgetsMixin:
|
|
628
658
|
if placeholder is not None:
|
629
659
|
text_area_proto.placeholder = str(placeholder)
|
630
660
|
|
661
|
+
# Set up width configuration
|
662
|
+
width_config = WidthConfig()
|
663
|
+
if isinstance(width, int):
|
664
|
+
width_config.pixel_width = width
|
665
|
+
else:
|
666
|
+
width_config.use_stretch = True
|
667
|
+
text_area_proto.width_config.CopyFrom(width_config)
|
668
|
+
|
631
669
|
serde = TextAreaSerde(value)
|
632
670
|
widget_state = register_widget(
|
633
671
|
text_area_proto.id,
|
@@ -13,9 +13,10 @@ _sym_db = _symbol_database.Default()
|
|
13
13
|
|
14
14
|
|
15
15
|
from streamlit.proto import LabelVisibilityMessage_pb2 as streamlit_dot_proto_dot_LabelVisibilityMessage__pb2
|
16
|
+
from streamlit.proto import WidthConfig_pb2 as streamlit_dot_proto_dot_WidthConfig__pb2
|
16
17
|
|
17
18
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!streamlit/proto/CameraInput.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\"\
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!streamlit/proto/CameraInput.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\x1a!streamlit/proto/WidthConfig.proto\"\xd0\x01\n\x0b\x43\x61meraInput\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x0f\n\x07\x66orm_id\x18\x04 \x01(\t\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x31\n\x10label_visibility\x18\x06 \x01(\x0b\x32\x17.LabelVisibilityMessage\x12\x31\n\x0cwidth_config\x18\x07 \x01(\x0b\x32\x16.streamlit.WidthConfigH\x00\x88\x01\x01\x42\x0f\n\r_width_configB0\n\x1c\x63om.snowflake.apps.streamlitB\x10\x43\x61meraInputProtob\x06proto3')
|
19
20
|
|
20
21
|
_globals = globals()
|
21
22
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -23,6 +24,6 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'streamlit.proto.CameraInput
|
|
23
24
|
if not _descriptor._USE_C_DESCRIPTORS:
|
24
25
|
_globals['DESCRIPTOR']._loaded_options = None
|
25
26
|
_globals['DESCRIPTOR']._serialized_options = b'\n\034com.snowflake.apps.streamlitB\020CameraInputProto'
|
26
|
-
_globals['_CAMERAINPUT']._serialized_start=
|
27
|
-
_globals['_CAMERAINPUT']._serialized_end=
|
27
|
+
_globals['_CAMERAINPUT']._serialized_start=119
|
28
|
+
_globals['_CAMERAINPUT']._serialized_end=327
|
28
29
|
# @@protoc_insertion_point(module_scope)
|
@@ -21,6 +21,7 @@ import builtins
|
|
21
21
|
import google.protobuf.descriptor
|
22
22
|
import google.protobuf.message
|
23
23
|
import streamlit.proto.LabelVisibilityMessage_pb2
|
24
|
+
import streamlit.proto.WidthConfig_pb2
|
24
25
|
import typing
|
25
26
|
|
26
27
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
@@ -35,6 +36,7 @@ class CameraInput(google.protobuf.message.Message):
|
|
35
36
|
FORM_ID_FIELD_NUMBER: builtins.int
|
36
37
|
DISABLED_FIELD_NUMBER: builtins.int
|
37
38
|
LABEL_VISIBILITY_FIELD_NUMBER: builtins.int
|
39
|
+
WIDTH_CONFIG_FIELD_NUMBER: builtins.int
|
38
40
|
id: builtins.str
|
39
41
|
label: builtins.str
|
40
42
|
help: builtins.str
|
@@ -42,6 +44,8 @@ class CameraInput(google.protobuf.message.Message):
|
|
42
44
|
disabled: builtins.bool
|
43
45
|
@property
|
44
46
|
def label_visibility(self) -> streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage: ...
|
47
|
+
@property
|
48
|
+
def width_config(self) -> streamlit.proto.WidthConfig_pb2.WidthConfig: ...
|
45
49
|
def __init__(
|
46
50
|
self,
|
47
51
|
*,
|
@@ -51,8 +55,10 @@ class CameraInput(google.protobuf.message.Message):
|
|
51
55
|
form_id: builtins.str = ...,
|
52
56
|
disabled: builtins.bool = ...,
|
53
57
|
label_visibility: streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage | None = ...,
|
58
|
+
width_config: streamlit.proto.WidthConfig_pb2.WidthConfig | None = ...,
|
54
59
|
) -> None: ...
|
55
|
-
def HasField(self, field_name: typing.Literal["label_visibility", b"label_visibility"]) -> builtins.bool: ...
|
56
|
-
def ClearField(self, field_name: typing.Literal["disabled", b"disabled", "form_id", b"form_id", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility"]) -> None: ...
|
60
|
+
def HasField(self, field_name: typing.Literal["_width_config", b"_width_config", "label_visibility", b"label_visibility", "width_config", b"width_config"]) -> builtins.bool: ...
|
61
|
+
def ClearField(self, field_name: typing.Literal["_width_config", b"_width_config", "disabled", b"disabled", "form_id", b"form_id", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility", "width_config", b"width_config"]) -> None: ...
|
62
|
+
def WhichOneof(self, oneof_group: typing.Literal["_width_config", b"_width_config"]) -> typing.Literal["width_config"] | None: ...
|
57
63
|
|
58
64
|
global___CameraInput = CameraInput
|
@@ -13,9 +13,10 @@ _sym_db = _symbol_database.Default()
|
|
13
13
|
|
14
14
|
|
15
15
|
from streamlit.proto import LabelVisibilityMessage_pb2 as streamlit_dot_proto_dot_LabelVisibilityMessage__pb2
|
16
|
+
from streamlit.proto import WidthConfig_pb2 as streamlit_dot_proto_dot_WidthConfig__pb2
|
16
17
|
|
17
18
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"streamlit/proto/FileUploader.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\"\
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"streamlit/proto/FileUploader.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\x1a!streamlit/proto/WidthConfig.proto\"\x99\x02\n\x0c\x46ileUploader\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x03(\t\x12\x1a\n\x12max_upload_size_mb\x18\x04 \x01(\x05\x12\x16\n\x0emultiple_files\x18\x06 \x01(\x08\x12\x0c\n\x04help\x18\x07 \x01(\t\x12\x0f\n\x07\x66orm_id\x18\x08 \x01(\t\x12\x10\n\x08\x64isabled\x18\t \x01(\x08\x12\x31\n\x10label_visibility\x18\n \x01(\x0b\x32\x17.LabelVisibilityMessage\x12\x31\n\x0cwidth_config\x18\x0b \x01(\x0b\x32\x16.streamlit.WidthConfigH\x00\x88\x01\x01\x42\x0f\n\r_width_configJ\x04\x08\x05\x10\x06\x42\x31\n\x1c\x63om.snowflake.apps.streamlitB\x11\x46ileUploaderProtob\x06proto3')
|
19
20
|
|
20
21
|
_globals = globals()
|
21
22
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -23,6 +24,6 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'streamlit.proto.FileUploade
|
|
23
24
|
if not _descriptor._USE_C_DESCRIPTORS:
|
24
25
|
_globals['DESCRIPTOR']._loaded_options = None
|
25
26
|
_globals['DESCRIPTOR']._serialized_options = b'\n\034com.snowflake.apps.streamlitB\021FileUploaderProto'
|
26
|
-
_globals['_FILEUPLOADER']._serialized_start=
|
27
|
-
_globals['_FILEUPLOADER']._serialized_end=
|
27
|
+
_globals['_FILEUPLOADER']._serialized_start=120
|
28
|
+
_globals['_FILEUPLOADER']._serialized_end=401
|
28
29
|
# @@protoc_insertion_point(module_scope)
|
@@ -23,6 +23,7 @@ import google.protobuf.descriptor
|
|
23
23
|
import google.protobuf.internal.containers
|
24
24
|
import google.protobuf.message
|
25
25
|
import streamlit.proto.LabelVisibilityMessage_pb2
|
26
|
+
import streamlit.proto.WidthConfig_pb2
|
26
27
|
import typing
|
27
28
|
|
28
29
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
@@ -42,6 +43,7 @@ class FileUploader(google.protobuf.message.Message):
|
|
42
43
|
FORM_ID_FIELD_NUMBER: builtins.int
|
43
44
|
DISABLED_FIELD_NUMBER: builtins.int
|
44
45
|
LABEL_VISIBILITY_FIELD_NUMBER: builtins.int
|
46
|
+
WIDTH_CONFIG_FIELD_NUMBER: builtins.int
|
45
47
|
id: builtins.str
|
46
48
|
"""The widget id"""
|
47
49
|
label: builtins.str
|
@@ -59,6 +61,8 @@ class FileUploader(google.protobuf.message.Message):
|
|
59
61
|
|
60
62
|
@property
|
61
63
|
def label_visibility(self) -> streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage: ...
|
64
|
+
@property
|
65
|
+
def width_config(self) -> streamlit.proto.WidthConfig_pb2.WidthConfig: ...
|
62
66
|
def __init__(
|
63
67
|
self,
|
64
68
|
*,
|
@@ -71,8 +75,10 @@ class FileUploader(google.protobuf.message.Message):
|
|
71
75
|
form_id: builtins.str = ...,
|
72
76
|
disabled: builtins.bool = ...,
|
73
77
|
label_visibility: streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage | None = ...,
|
78
|
+
width_config: streamlit.proto.WidthConfig_pb2.WidthConfig | None = ...,
|
74
79
|
) -> None: ...
|
75
|
-
def HasField(self, field_name: typing.Literal["label_visibility", b"label_visibility"]) -> builtins.bool: ...
|
76
|
-
def ClearField(self, field_name: typing.Literal["disabled", b"disabled", "form_id", b"form_id", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility", "max_upload_size_mb", b"max_upload_size_mb", "multiple_files", b"multiple_files", "type", b"type"]) -> None: ...
|
80
|
+
def HasField(self, field_name: typing.Literal["_width_config", b"_width_config", "label_visibility", b"label_visibility", "width_config", b"width_config"]) -> builtins.bool: ...
|
81
|
+
def ClearField(self, field_name: typing.Literal["_width_config", b"_width_config", "disabled", b"disabled", "form_id", b"form_id", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility", "max_upload_size_mb", b"max_upload_size_mb", "multiple_files", b"multiple_files", "type", b"type", "width_config", b"width_config"]) -> None: ...
|
82
|
+
def WhichOneof(self, oneof_group: typing.Literal["_width_config", b"_width_config"]) -> typing.Literal["width_config"] | None: ...
|
77
83
|
|
78
84
|
global___FileUploader = FileUploader
|