flet 0.70.0.dev6145__py3-none-any.whl → 0.70.0.dev6176__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.

Potentially problematic release.


This version of flet might be problematic. Click here for more details.

flet/__init__.py CHANGED
@@ -276,7 +276,7 @@ from flet.controls.material.expansion_tile import ExpansionTile, TileAffinity
276
276
  from flet.controls.material.filled_button import FilledButton
277
277
  from flet.controls.material.filled_tonal_button import FilledTonalButton
278
278
  from flet.controls.material.floating_action_button import FloatingActionButton
279
- from flet.controls.material.form_field_control import InputBorder
279
+ from flet.controls.material.form_field_control import FormFieldControl, InputBorder
280
280
  from flet.controls.material.icon_button import (
281
281
  FilledIconButton,
282
282
  FilledTonalIconButton,
@@ -693,6 +693,7 @@ __all__ = [
693
693
  "FloatingActionButtonLocation",
694
694
  "FloatingActionButtonTheme",
695
695
  "FontWeight",
696
+ "FormFieldControl",
696
697
  "GestureDetector",
697
698
  "Gradient",
698
699
  "GradientTileMode",
@@ -46,7 +46,9 @@ class CupertinoTextField(TextField):
46
46
 
47
47
  blend_mode: Optional[BlendMode] = None
48
48
  """
49
- The blend mode applied to the [`bgcolor`][(c).] or [`gradient`][(c).] background.
49
+ The blend mode applied to the
50
+ [`bgcolor`][flet.FormFieldControl.]
51
+ or [`gradient`][(c).] background.
50
52
  """
51
53
 
52
54
  shadows: Optional[BoxShadowValue] = None
@@ -56,27 +58,35 @@ class CupertinoTextField(TextField):
56
58
 
57
59
  prefix_visibility_mode: OverlayVisibilityMode = OverlayVisibilityMode.ALWAYS
58
60
  """
59
- Defines the visibility of the [`prefix`][(c).] control
60
- based on the state of text entry.
61
+ Defines the visibility of the
62
+ [`prefix`][flet.FormFieldControl.]
63
+ control based on the state of text entry.
61
64
 
62
65
  Note:
63
- Has no effect if [`prefix`][(c).] is not specified.
66
+ Has no effect if
67
+ [`prefix`][flet.FormFieldControl.]
68
+ is not specified.
64
69
  """
65
70
 
66
71
  suffix_visibility_mode: OverlayVisibilityMode = OverlayVisibilityMode.ALWAYS
67
72
  """
68
- Defines the visibility of the [`suffix`][(c).] control
69
- based on the state of text entry.
73
+ Defines the visibility of the
74
+ [`suffix`][flet.FormFieldControl.]
75
+ control based on the state of text entry.
70
76
 
71
77
  Note:
72
- Has no effect if [`suffix`][(c).] is not specified.
78
+ Has no effect if
79
+ [`suffix`][flet.FormFieldControl.]
80
+ is not specified.
73
81
  """
74
82
 
75
83
  clear_button_visibility_mode: OverlayVisibilityMode = OverlayVisibilityMode.NEVER
76
84
  """
77
85
  Defines the visibility of the clear button based on the state of text entry.
78
86
 
79
- Will appear only if no [`suffix`][(c).] is provided.
87
+ Will appear only if no
88
+ [`suffix`][flet.FormFieldControl.]
89
+ is provided.
80
90
  """
81
91
 
82
92
  clear_button_semantics_label: Optional[str] = "Clear"
@@ -88,12 +98,16 @@ class CupertinoTextField(TextField):
88
98
 
89
99
  image: Optional[DecorationImage] = None
90
100
  """
91
- An image to paint above the [`bgcolor`][(c).] or [`gradient`][(c).] background.
101
+ An image to paint above the
102
+ [`bgcolor`][flet.FormFieldControl.]
103
+ or [`gradient`][(c).] background.
92
104
  """
93
105
 
94
106
  padding: PaddingValue = field(default_factory=lambda: Padding.all(7))
95
107
  """
96
- The padding around the text entry area between the [`prefix`][(c).]
97
- and [`suffix`][(c).] or the clear button when [`clear_button_visibility_mode`][(c).]
108
+ The padding around the text entry area between the
109
+ [`prefix`][flet.FormFieldControl.]
110
+ and [`suffix`][flet.FormFieldControl.]
111
+ or the clear button when [`clear_button_visibility_mode`][(c).]
98
112
  is not [`OverlayVisibilityMode.NEVER`][flet.].
99
113
  """
@@ -27,26 +27,101 @@ class Button(LayoutControl, AdaptiveControl):
27
27
  It supports various styles, colors, event handlers for user interaction,
28
28
  and can be used to display text, icons, etc.
29
29
 
30
+ ```python
31
+ ft.Button(content="Enabled button")
32
+ ft.Button(content="Disabled button", disabled=True)
33
+ ```
34
+ """
35
+
36
+ content: Optional[StrOrControl] = None
37
+ """
38
+ The button's label.
39
+ Typically a [`Text`][flet.] control or a string.
40
+ If a string is provided, it will be wrapped in a [`Text`][flet.] control.
41
+
30
42
  Raises:
31
43
  ValueError: If neither [`icon`][(c).] nor [`content`][(c).]
32
44
  (string or visible control) is provided.
33
45
  """
34
46
 
35
- content: Optional[StrOrControl] = None
36
47
  icon: Optional[IconDataOrControl] = None
48
+ """
49
+ The icon to display inside the button.
50
+ Typically an [`Icon`][flet.] control or an `IconData`.
51
+ If an `IconData` is provided, it will be wrapped in an [`Icon`][flet.] control.
52
+
53
+ Raises:
54
+ ValueError: If neither [`icon`][(c).] nor [`content`][(c).]
55
+ (string or visible control) is provided.
56
+ """
37
57
  icon_color: Optional[ColorValue] = None
58
+ """
59
+ The color of the icon.
60
+ If not specified, defaults to the current foreground color.
61
+ """
62
+
38
63
  color: Optional[ColorValue] = field(default=None, metadata={"skip": True})
64
+ """
65
+ The button's foreground color.
66
+ If not specified, defaults to the theme's primary color.
67
+ """
68
+
39
69
  bgcolor: Optional[ColorValue] = field(default=None, metadata={"skip": True})
70
+ """
71
+ The button's background color.
72
+ If not specified, defaults to the theme's primary color.
73
+ """
74
+
40
75
  elevation: Number = field(default=1, metadata={"skip": True})
76
+ """
77
+ The button's elevation.
78
+ If not specified, defaults to `1`.
79
+ """
80
+
41
81
  style: Optional[ButtonStyle] = field(default=None, metadata={"skip": True})
82
+ """
83
+ The button's style.
84
+ """
85
+
42
86
  autofocus: Optional[bool] = None
87
+ """
88
+ Whether this button should be focused initially.
89
+ """
90
+
43
91
  clip_behavior: Optional[ClipBehavior] = None
92
+ """
93
+ The button's clip behavior.
94
+ """
95
+
44
96
  url: Optional[Union[str, Url]] = None
97
+ """
98
+ The URL to open when the button is clicked.
99
+ """
100
+
45
101
  on_click: Optional[ControlEventHandler["Button"]] = None
102
+ """
103
+ Called when the button is clicked.
104
+ """
105
+
46
106
  on_long_press: Optional[ControlEventHandler["Button"]] = None
107
+ """
108
+ Called when the button is long-pressed.
109
+ """
110
+
47
111
  on_hover: Optional[ControlEventHandler["Button"]] = None
112
+ """
113
+ Called when the button is hovered.
114
+ """
115
+
48
116
  on_focus: Optional[ControlEventHandler["Button"]] = None
117
+ """
118
+ Called when the button is focused.
119
+ """
120
+
49
121
  on_blur: Optional[ControlEventHandler["Button"]] = None
122
+ """
123
+ Called when the button loses focus.
124
+ """
50
125
 
51
126
  def before_update(self):
52
127
  super().before_update()
@@ -72,4 +147,7 @@ class Button(LayoutControl, AdaptiveControl):
72
147
  )
73
148
 
74
149
  async def focus(self):
150
+ """
151
+ Focus the button.
152
+ """
75
153
  await self._invoke_method("focus")
@@ -52,9 +52,7 @@ class Card(LayoutControl, AdaptiveControl):
52
52
  """
53
53
  The color to paint the shadow below this card.
54
54
 
55
- Defaults to [`CardTheme.shadow_color`][flet.],
56
- or if that is `None`, falls back to [`Theme.shadow_color`][flet.]
57
- (which defaults to `Colors.BLACK`).
55
+ Defaults to [`CardTheme.shadow_color`][flet.]
58
56
  """
59
57
 
60
58
  shape: Optional[OutlinedBorder] = None
@@ -49,7 +49,6 @@ class VerticalDivider(Control):
49
49
  line.
50
50
 
51
51
  If `None`, [`DividerTheme.color`][flet.] is used.
52
- If that's is also `None`, defaults to [`Theme.divider_color`][flet.].
53
52
  """
54
53
 
55
54
  leading_indent: Optional[Number] = None
flet/controls/page.py CHANGED
@@ -588,9 +588,9 @@ class Page(BasePage):
588
588
  finally calls `page.update()`.
589
589
  """
590
590
 
591
- self.push_route(route, **kwargs)
591
+ asyncio.create_task(self.push_route(route, **kwargs))
592
592
 
593
- def push_route(self, route: str, **kwargs: Any) -> None:
593
+ async def push_route(self, route: str, **kwargs: Any) -> None:
594
594
  """
595
595
  Pushes a new navigation route to the browser history stack.
596
596
  Changing route will fire [`page.on_route_change`](#on_route_change) event
@@ -600,6 +600,7 @@ class Page(BasePage):
600
600
 
601
601
  ```python
602
602
  import flet as ft
603
+ import asyncio
603
604
 
604
605
 
605
606
  def main(page: ft.Page):
@@ -614,7 +615,9 @@ class Page(BasePage):
614
615
  ft.AppBar(title=ft.Text("Flet app")),
615
616
  ft.ElevatedButton(
616
617
  "Visit Store",
617
- on_click=lambda _: page.push_route("/store"),
618
+ on_click=lambda _: asyncio.create_task(
619
+ page.push_route("/store")
620
+ ),
618
621
  ),
619
622
  ],
620
623
  )
@@ -627,16 +630,19 @@ class Page(BasePage):
627
630
  controls=[
628
631
  ft.AppBar(title=ft.Text("Store")),
629
632
  ft.ElevatedButton(
630
- "Go Home", on_click=lambda _: page.push_route("/")
633
+ "Go Home",
634
+ on_click=lambda _: asyncio.create_task(
635
+ page.push_route("/")
636
+ ),
631
637
  ),
632
638
  ],
633
639
  )
634
640
  )
635
641
 
636
- def view_pop(e):
642
+ async def view_pop(e):
637
643
  page.views.pop()
638
644
  top_view = page.views[-1]
639
- page.push_route(top_view.route)
645
+ await page.push_route(top_view.route)
640
646
 
641
647
  page.on_route_change = route_change
642
648
  page.on_view_pop = view_pop
@@ -651,11 +657,9 @@ class Page(BasePage):
651
657
  """
652
658
 
653
659
  new_route = route if not kwargs else route + self.query.post(kwargs)
654
- asyncio.create_task(
655
- self._invoke_method(
656
- "push_route",
657
- arguments={"route": new_route},
658
- )
660
+ await self._invoke_method(
661
+ "push_route",
662
+ arguments={"route": new_route},
659
663
  )
660
664
 
661
665
  def get_upload_url(self, file_name: str, expires: int) -> str:
@@ -257,6 +257,28 @@ class FletTestApp:
257
257
  print("Force killing Flutter test process...")
258
258
  self.__flutter_process.kill()
259
259
 
260
+ async def wrap_page_controls_in_screenshot(self, margin=10):
261
+ """
262
+ Wraps provided controls in a Screenshot control.
263
+ """
264
+ controls = list(self.page.controls)
265
+ self.page.controls = [scr := ft.Screenshot(ft.Column(controls, margin=margin))]
266
+ self.page.update()
267
+ await self.tester.pump_and_settle()
268
+ return scr
269
+
270
+ async def take_page_controls_screenshot(
271
+ self,
272
+ pixel_ratio: Optional[float] = None,
273
+ ):
274
+ """
275
+ Takes a screenshot of all controls on the current page.
276
+ """
277
+ scr = await self.wrap_page_controls_in_screenshot()
278
+ return await scr.capture(
279
+ pixel_ratio=pixel_ratio or self.screenshots_pixel_ratio
280
+ )
281
+
260
282
  async def assert_control_screenshot(
261
283
  self,
262
284
  name: str,
@@ -289,7 +311,9 @@ class FletTestApp:
289
311
  await screenshot.capture(pixel_ratio=self.screenshots_pixel_ratio),
290
312
  )
291
313
 
292
- def assert_screenshot(self, name: str, screenshot: bytes):
314
+ def assert_screenshot(
315
+ self, name: str, screenshot: bytes, similarity_threshold: float = 0
316
+ ):
293
317
  """
294
318
  Compares provided screenshot with a golden copy or takes golden screenshot
295
319
  if `FLET_TEST_GOLDEN=1` environment variable is set.
@@ -324,14 +348,16 @@ class FletTestApp:
324
348
  img = self._load_image_from_bytes(screenshot)
325
349
  similarity = self._compare_images_rgb(golden_img, img)
326
350
  print(f"Similarity for {name}: {similarity}%")
327
- if similarity <= self.screenshots_similarity_threshold:
351
+ if similarity_threshold == 0:
352
+ similarity_threshold = self.screenshots_similarity_threshold
353
+ if similarity <= similarity_threshold:
328
354
  actual_image_path = (
329
355
  golden_image_path.parent
330
356
  / f"{golden_image_path.parent.stem}_{golden_image_path.stem}_actual.png" # noqa: E501
331
357
  )
332
358
  with open(actual_image_path, "bw") as f:
333
359
  f.write(screenshot)
334
- assert similarity > self.screenshots_similarity_threshold, (
360
+ assert similarity > similarity_threshold, (
335
361
  f"{name} screenshots are not identical"
336
362
  )
337
363
 
flet/version.py CHANGED
@@ -10,7 +10,7 @@ from flet.utils import is_mobile, is_windows, which
10
10
  DEFAULT_VERSION = "0.1.0"
11
11
 
12
12
  # will be replaced by CI
13
- version = "0.70.0.dev6145"
13
+ version = "0.70.0.dev6176"
14
14
 
15
15
 
16
16
  def update_version():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flet
3
- Version: 0.70.0.dev6145
3
+ Version: 0.70.0.dev6176
4
4
  Summary: Flet for Python - easily build interactive multi-platform apps in Python
5
5
  Author-email: "Appveyor Systems Inc." <hello@flet.dev>
6
6
  License-Expression: Apache-2.0
@@ -1,7 +1,7 @@
1
- flet/__init__.py,sha256=Lv9YmVVMQHTiO5E089OW9ES1CnGyoJadzi4IFk0bhmI,25642
1
+ flet/__init__.py,sha256=n5qVCP3EFldZdmB22hoO751d9fB5U9-AN6uMU-55IPA,25684
2
2
  flet/app.py,sha256=HSws0Zm4ZO0-Hp2P9h7xirCVnRkKCVXhuekyAXT_9Fo,11883
3
3
  flet/cli.py,sha256=IUM25fY_sqMtl0hlQGhlMQaBb1oNyO0VZeeBgRodhuA,204
4
- flet/version.py,sha256=_CNaE85ZzAmgu7gd9GDOEkaeLybv9TcXH7YjoG9hWqU,2512
4
+ flet/version.py,sha256=OOXW9v5bFD449k3IMfq3V3RcnBQc0NkTYV1ezhwJh_Y,2512
5
5
  flet/auth/__init__.py,sha256=eDqmi0Ki8Resd198S7XxgYa2R14wnNqIXnYhBLPl8fQ,289
6
6
  flet/auth/authorization.py,sha256=hP_36RiRPtSwmK_Yp6MMzAjQdDxbBiEcZ2yFNqyNiRs,357
7
7
  flet/auth/authorization_service.py,sha256=6N2LvisSt7KI_VgfyCH0OaJ6jTcmXCkAldN1yYlakzQ,6410
@@ -61,7 +61,7 @@ flet/controls/margin.py,sha256=ni5FwkchO1LPKPTKV0Cimvh2YzABi-t5DhOqTS25eIQ,2305
61
61
  flet/controls/multi_view.py,sha256=7RbM1nt8t75qgTKyfemsV06XQ04Mer0Op409Nu9q9Vs,304
62
62
  flet/controls/object_patch.py,sha256=0OE8TswTyYH_l1yEqJPIf-Z6kLnOCCQCYiV-gNUvuSA,44111
63
63
  flet/controls/padding.py,sha256=AdxAZ5dbg1-Bo8aKeJ7AptUdyjaX7VWBIJto5mBT9Pk,2485
64
- flet/controls/page.py,sha256=_1FGO52-hWj7Z99Q9mEynQwWLqnmdxJZKcp6L4tPnJ4,26383
64
+ flet/controls/page.py,sha256=OerVhgInFcr2C53LwvG8s5ksZ7TI9uw7WF5VL6-hTCg,26623
65
65
  flet/controls/painting.py,sha256=GCEycacejiCAdA4eZBQlTgxmE2ccXyad4Gy7VsjIwn0,12108
66
66
  flet/controls/query_string.py,sha256=NDrf1P0cxSWuJd4Rqz1qYld_JKDJpHY7mKcP52-70DI,3575
67
67
  flet/controls/ref.py,sha256=Lde_Nlly6NEtJX_LYv_DxIDkao6w4Buo7Nus4XUPQDA,580
@@ -143,7 +143,7 @@ flet/controls/cupertino/cupertino_segmented_button.py,sha256=DEntfRb7D1HZWTfa5GP
143
143
  flet/controls/cupertino/cupertino_slider.py,sha256=hOdSrWy_sKBLqP5n6E0DWf3J0fhT6Xcovg1CI7YBgns,3467
144
144
  flet/controls/cupertino/cupertino_sliding_segmented_button.py,sha256=h9D8L6m-jqyht_96wJlfypP7wqVipGtvmNW8hF1zcJQ,3045
145
145
  flet/controls/cupertino/cupertino_switch.py,sha256=0UtGp1fhCGlYVf2w8xXic0MfcEds-uNqF7WQi84Ld8w,4201
146
- flet/controls/cupertino/cupertino_textfield.py,sha256=rQmJrP-fo5m8HYGDhtBWPmhg0JywXDn5GFapYM6wZgY,2897
146
+ flet/controls/cupertino/cupertino_textfield.py,sha256=yqwTdXLvu7IKwX-4GjtJWCjUeX2rB2wuN5akgrBM5V4,3131
147
147
  flet/controls/cupertino/cupertino_timer_picker.py,sha256=YNMAeazkm6nGEwF2X-r9WuB25aqam6PYORuq1yoptBk,4509
148
148
  flet/controls/cupertino/cupertino_tinted_button.py,sha256=rU1bW9qfu2GGkma3zlTTMZOhBlqBtj4bYxqJMrwJBF8,313
149
149
  flet/controls/material/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -154,8 +154,8 @@ flet/controls/material/badge.py,sha256=xtyG18lElGMjKtvZg6OX4nRney8sAlC7TNTe2dUDj
154
154
  flet/controls/material/banner.py,sha256=1QXFji-E7bOUh8d0iRL_byyE8kTMyepA24rWVx178pA,4159
155
155
  flet/controls/material/bottom_app_bar.py,sha256=I5DO0wdbYsYe1_EatIU-jLGHFA8WT670sCrGUj6IM50,2083
156
156
  flet/controls/material/bottom_sheet.py,sha256=o7y8a80HSeJWwI4Q3JNFeJ-6kvziuuj3t9f9gadGrhw,2791
157
- flet/controls/material/button.py,sha256=14QzipCjIQpfLRoV4XBMTAxeR_EJNNvUcni7f2JLnL0,2584
158
- flet/controls/material/card.py,sha256=vNPL9Dv8rBg5v-0E7whgI-dV9jVRR6Z3oPctPQ8v7FU,2616
157
+ flet/controls/material/button.py,sha256=8_CLLvjPO9ZXsaGkJhO1a3cVbG2Abe-40cEQcT9BPpY,4189
158
+ flet/controls/material/card.py,sha256=95ONA-QHR7By54X5Q4SWvdRIHJVJ_0schDybZcR_rW8,2505
159
159
  flet/controls/material/checkbox.py,sha256=4F2OcbvBJ4BJXVD2F-U7YdI17elmwgMe3NhWIsFgA7o,5716
160
160
  flet/controls/material/chip.py,sha256=nGRGylhipV0wNj4w8v_qfKOqQkFSfubTBw2Nn4dcnJ0,7809
161
161
  flet/controls/material/circle_avatar.py,sha256=dVhGnrvnc5uieeFTCJZ8FHDZbwVkBDFzzk-EEEugWWc,4014
@@ -201,7 +201,7 @@ flet/controls/material/text_button.py,sha256=Mkvz4LIl0yH1-e0ekOjPD6z8CZ5ZUIyE00z
201
201
  flet/controls/material/textfield.py,sha256=tFxtWIk7JCXeq7oL_2Ltmbw5bqmY4125PIBd07Qur3Y,11668
202
202
  flet/controls/material/time_picker.py,sha256=_gUTaQi4N-mo1Oj_yJEsti8ToM0WhwhofbCjP5v2gzA,3070
203
203
  flet/controls/material/tooltip.py,sha256=PTqJiiE95z4WCTlvCx7i3vA-gGwphUT7w_2oXMiiVtY,5636
204
- flet/controls/material/vertical_divider.py,sha256=5-yjdV-sDXotSZFg_ApP_rtzBHlai4WkyeCOEoJhK34,2787
204
+ flet/controls/material/vertical_divider.py,sha256=pxGH9BqW_quWhSHe8_CHw9wUWsqPN29_AufTm0JnNp0,2713
205
205
  flet/controls/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
206
206
  flet/controls/services/browser_context_menu.py,sha256=iLb160q7wPicdiVPXLZLzzQ4MCGxl2e-mOV4y4d2xQg,721
207
207
  flet/controls/services/clipboard.py,sha256=Linpoz32r5i-K5vpafFwNKaWwByZ6cVFhJZ0p87M_UE,987
@@ -226,7 +226,7 @@ flet/pubsub/pubsub_hub.py,sha256=1loRKhFYq23E89EYPaK4RMCbFdOW2qVeTQk8JqnbNp8,651
226
226
  flet/security/__init__.py,sha256=LcBftVee6pXMB2MiDsc0PPUXnTlR2CT53VAPiPadaHI,2189
227
227
  flet/testing/__init__.py,sha256=Yb9e6h11b2hV7O3TuqsJ7zwFAgNcbB7tY7Gp2ssxtN4,176
228
228
  flet/testing/finder.py,sha256=G9iW6VBAOGGdOF4i2_Ax26Lrl9ujiJaqk57ESHgP018,347
229
- flet/testing/flet_test_app.py,sha256=c5L7ypkuMYe9trnYcI_-31RcggPFWyBXcOwxZOwzieI,12928
229
+ flet/testing/flet_test_app.py,sha256=6aeqU6r0OQfBoqWukov6Z8ZZ7i5tIG2mthILx4Wo-Cw,13801
230
230
  flet/testing/tester.py,sha256=_DSRFQQoGISve5JR2nq3AdSbUf18E6FfG3ytRD5tAfo,4946
231
231
  flet/utils/__init__.py,sha256=LVgyCBf1VNqGXkdtf1JCP20Rx2oaPITF4nAGw2zquVI,1739
232
232
  flet/utils/browser.py,sha256=Z2PomJjClBXRRiPvGP7WRzbguvXQ8W2HQAzd_A5cmvE,157
@@ -245,8 +245,8 @@ flet/utils/platform_utils.py,sha256=U4cqV3EPi5QNYjbhfZmtk41-KMtI_P7KvVdnZzMOgJA,
245
245
  flet/utils/slugify.py,sha256=e-lsoDc2_dk5jQnySaHCU83AA4O6mguEgCEdk2smW2Y,466
246
246
  flet/utils/strings.py,sha256=R63_i7PdSAStCDPJ-O_WHBt3H02JQ14GSbnjLIpPTUc,178
247
247
  flet/utils/vector.py,sha256=pYZzjldBWCZbSeSkZ8VmujwcZC7VBWk1NLBPA-2th3U,3207
248
- flet-0.70.0.dev6145.dist-info/METADATA,sha256=f5e499ulUzxdsJHlScS1eOfieofZX8FeRM6p4JKPSrM,6051
249
- flet-0.70.0.dev6145.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
250
- flet-0.70.0.dev6145.dist-info/entry_points.txt,sha256=mbBhHNUnLHiDqR36WeJrfLJU0Y0y087-M4wagQmaQ_Y,39
251
- flet-0.70.0.dev6145.dist-info/top_level.txt,sha256=HbLrSnWJX2jZOEZAI14cGzW8Q5BbOGTtE-7knD5FDh0,5
252
- flet-0.70.0.dev6145.dist-info/RECORD,,
248
+ flet-0.70.0.dev6176.dist-info/METADATA,sha256=dbegGXkovTUQPhsOkyr_2moO0StiTRMY-ME27Z9e8BQ,6051
249
+ flet-0.70.0.dev6176.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
250
+ flet-0.70.0.dev6176.dist-info/entry_points.txt,sha256=mbBhHNUnLHiDqR36WeJrfLJU0Y0y087-M4wagQmaQ_Y,39
251
+ flet-0.70.0.dev6176.dist-info/top_level.txt,sha256=HbLrSnWJX2jZOEZAI14cGzW8Q5BbOGTtE-7knD5FDh0,5
252
+ flet-0.70.0.dev6176.dist-info/RECORD,,