flet 0.70.0.dev6444__tar.gz → 0.70.0.dev6482__tar.gz

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.

Files changed (271) hide show
  1. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/PKG-INFO +1 -1
  2. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/pyproject.toml +1 -1
  3. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/observable.py +2 -3
  4. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/colors.py +41 -15
  5. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/bottom_app_bar.py +32 -9
  6. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/floating_action_button.py +6 -6
  7. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/__init__.py +19 -17
  8. flet-0.70.0.dev6482/src/flet/utils/deprecated_enum.py +40 -0
  9. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/version.py +1 -1
  10. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet.egg-info/PKG-INFO +1 -1
  11. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet.egg-info/SOURCES.txt +1 -0
  12. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/README.md +0 -0
  13. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/setup.cfg +0 -0
  14. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/__init__.py +0 -0
  15. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/app.py +0 -0
  16. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/__init__.py +0 -0
  17. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/authorization.py +0 -0
  18. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/authorization_service.py +0 -0
  19. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/group.py +0 -0
  20. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/oauth_provider.py +0 -0
  21. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/oauth_token.py +0 -0
  22. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/providers/__init__.py +0 -0
  23. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/providers/auth0_oauth_provider.py +0 -0
  24. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/providers/azure_oauth_provider.py +0 -0
  25. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/providers/github_oauth_provider.py +0 -0
  26. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/providers/google_oauth_provider.py +0 -0
  27. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/auth/user.py +0 -0
  28. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/canvas/__init__.py +0 -0
  29. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/cli.py +0 -0
  30. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/__init__.py +0 -0
  31. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/component.py +0 -0
  32. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/component_decorator.py +0 -0
  33. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/component_owned.py +0 -0
  34. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/hooks/__init__.py +0 -0
  35. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/hooks/hook.py +0 -0
  36. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/hooks/use_callback.py +0 -0
  37. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/hooks/use_context.py +0 -0
  38. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/hooks/use_effect.py +0 -0
  39. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/hooks/use_memo.py +0 -0
  40. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/hooks/use_state.py +0 -0
  41. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/memo.py +0 -0
  42. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/public_utils.py +0 -0
  43. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/components/utils.py +0 -0
  44. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/__init__.py +0 -0
  45. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/adaptive_control.py +0 -0
  46. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/alignment.py +0 -0
  47. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/animation.py +0 -0
  48. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/base_control.py +0 -0
  49. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/base_page.py +0 -0
  50. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/blur.py +0 -0
  51. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/border.py +0 -0
  52. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/border_radius.py +0 -0
  53. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/box.py +0 -0
  54. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/buttons.py +0 -0
  55. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/context.py +0 -0
  56. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/control.py +0 -0
  57. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/control_event.py +0 -0
  58. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/control_state.py +0 -0
  59. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/__init__.py +0 -0
  60. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/animated_switcher.py +0 -0
  61. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/autofill_group.py +0 -0
  62. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/__init__.py +0 -0
  63. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/arc.py +0 -0
  64. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/canvas.py +0 -0
  65. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/circle.py +0 -0
  66. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/color.py +0 -0
  67. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/fill.py +0 -0
  68. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/image.py +0 -0
  69. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/line.py +0 -0
  70. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/oval.py +0 -0
  71. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/path.py +0 -0
  72. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/points.py +0 -0
  73. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/rect.py +0 -0
  74. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/shadow.py +0 -0
  75. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/shape.py +0 -0
  76. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/canvas/text.py +0 -0
  77. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/column.py +0 -0
  78. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/dismissible.py +0 -0
  79. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/drag_target.py +0 -0
  80. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/draggable.py +0 -0
  81. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/flet_app.py +0 -0
  82. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/gesture_detector.py +0 -0
  83. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/grid_view.py +0 -0
  84. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/icon.py +0 -0
  85. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/image.py +0 -0
  86. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/interactive_viewer.py +0 -0
  87. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/keyboard_listener.py +0 -0
  88. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/list_view.py +0 -0
  89. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/markdown.py +0 -0
  90. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/merge_semantics.py +0 -0
  91. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/pagelet.py +0 -0
  92. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/placeholder.py +0 -0
  93. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/reorderable_draggable.py +0 -0
  94. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/responsive_row.py +0 -0
  95. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/row.py +0 -0
  96. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/safe_area.py +0 -0
  97. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/screenshot.py +0 -0
  98. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/semantics.py +0 -0
  99. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/shader_mask.py +0 -0
  100. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/stack.py +0 -0
  101. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/text.py +0 -0
  102. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/text_span.py +0 -0
  103. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/transparent_pointer.py +0 -0
  104. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/view.py +0 -0
  105. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/window.py +0 -0
  106. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/core/window_drag_area.py +0 -0
  107. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/__init__.py +0 -0
  108. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_action_sheet.py +0 -0
  109. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_action_sheet_action.py +0 -0
  110. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_activity_indicator.py +0 -0
  111. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_alert_dialog.py +0 -0
  112. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_app_bar.py +0 -0
  113. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_bottom_sheet.py +0 -0
  114. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_button.py +0 -0
  115. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_checkbox.py +0 -0
  116. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_colors.py +0 -0
  117. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_context_menu.py +0 -0
  118. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_context_menu_action.py +0 -0
  119. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_date_picker.py +0 -0
  120. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_dialog_action.py +0 -0
  121. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_filled_button.py +0 -0
  122. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_icons.py +0 -0
  123. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_list_tile.py +0 -0
  124. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_navigation_bar.py +0 -0
  125. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_picker.py +0 -0
  126. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_radio.py +0 -0
  127. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_segmented_button.py +0 -0
  128. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_slider.py +0 -0
  129. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_sliding_segmented_button.py +0 -0
  130. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_switch.py +0 -0
  131. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_textfield.py +0 -0
  132. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_timer_picker.py +0 -0
  133. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/cupertino/cupertino_tinted_button.py +0 -0
  134. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/device_info.py +0 -0
  135. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/dialog_control.py +0 -0
  136. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/duration.py +0 -0
  137. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/embed_json_encoder.py +0 -0
  138. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/events.py +0 -0
  139. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/exceptions.py +0 -0
  140. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/geometry.py +0 -0
  141. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/gradients.py +0 -0
  142. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/icon_data.py +0 -0
  143. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/id_counter.py +0 -0
  144. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/keys.py +0 -0
  145. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/layout_control.py +0 -0
  146. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/margin.py +0 -0
  147. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/__init__.py +0 -0
  148. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/alert_dialog.py +0 -0
  149. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/app_bar.py +0 -0
  150. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/auto_complete.py +0 -0
  151. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/badge.py +0 -0
  152. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/banner.py +0 -0
  153. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/bottom_sheet.py +0 -0
  154. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/button.py +0 -0
  155. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/card.py +0 -0
  156. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/checkbox.py +0 -0
  157. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/chip.py +0 -0
  158. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/circle_avatar.py +0 -0
  159. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/container.py +0 -0
  160. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/datatable.py +0 -0
  161. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/date_picker.py +0 -0
  162. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/date_range_picker.py +0 -0
  163. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/divider.py +0 -0
  164. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/dropdown.py +0 -0
  165. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/dropdownm2.py +0 -0
  166. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/elevated_button.py +0 -0
  167. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/expansion_panel.py +0 -0
  168. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/expansion_tile.py +0 -0
  169. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/filled_button.py +0 -0
  170. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/filled_tonal_button.py +0 -0
  171. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/form_field_control.py +0 -0
  172. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/icon_button.py +0 -0
  173. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/icons.py +0 -0
  174. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/list_tile.py +0 -0
  175. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/menu_bar.py +0 -0
  176. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/menu_item_button.py +0 -0
  177. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/navigation_bar.py +0 -0
  178. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/navigation_drawer.py +0 -0
  179. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/navigation_rail.py +0 -0
  180. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/outlined_button.py +0 -0
  181. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/popup_menu_button.py +0 -0
  182. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/progress_bar.py +0 -0
  183. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/progress_ring.py +0 -0
  184. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/radio.py +0 -0
  185. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/radio_group.py +0 -0
  186. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/range_slider.py +0 -0
  187. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/reorderable_list_view.py +0 -0
  188. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/search_bar.py +0 -0
  189. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/segmented_button.py +0 -0
  190. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/selection_area.py +0 -0
  191. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/slider.py +0 -0
  192. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/snack_bar.py +0 -0
  193. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/submenu_button.py +0 -0
  194. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/switch.py +0 -0
  195. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/tabs.py +0 -0
  196. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/text_button.py +0 -0
  197. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/textfield.py +0 -0
  198. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/time_picker.py +0 -0
  199. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/tooltip.py +0 -0
  200. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/material/vertical_divider.py +0 -0
  201. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/multi_view.py +0 -0
  202. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/object_patch.py +0 -0
  203. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/padding.py +0 -0
  204. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/page.py +0 -0
  205. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/painting.py +0 -0
  206. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/query_string.py +0 -0
  207. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/ref.py +0 -0
  208. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/scrollable_control.py +0 -0
  209. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/__init__.py +0 -0
  210. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/browser_context_menu.py +0 -0
  211. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/clipboard.py +0 -0
  212. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/file_picker.py +0 -0
  213. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/haptic_feedback.py +0 -0
  214. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/semantics_service.py +0 -0
  215. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/service.py +0 -0
  216. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/shake_detector.py +0 -0
  217. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/shared_preferences.py +0 -0
  218. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/storage_paths.py +0 -0
  219. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/services/url_launcher.py +0 -0
  220. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/template_route.py +0 -0
  221. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/text_style.py +0 -0
  222. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/theme.py +0 -0
  223. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/transform.py +0 -0
  224. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/controls/types.py +0 -0
  225. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/fastapi/__init__.py +0 -0
  226. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/messaging/connection.py +0 -0
  227. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/messaging/flet_socket_server.py +0 -0
  228. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/messaging/protocol.py +0 -0
  229. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/messaging/pyodide_connection.py +0 -0
  230. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/messaging/session.py +0 -0
  231. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/messaging/session_store.py +0 -0
  232. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/pubsub/__init__.py +0 -0
  233. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/pubsub/pubsub_client.py +0 -0
  234. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/pubsub/pubsub_hub.py +0 -0
  235. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/security/__init__.py +0 -0
  236. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/testing/__init__.py +0 -0
  237. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/testing/finder.py +0 -0
  238. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/testing/flet_test_app.py +0 -0
  239. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/testing/tester.py +0 -0
  240. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/browser.py +0 -0
  241. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/classproperty.py +0 -0
  242. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/deprecated.py +0 -0
  243. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/files.py +0 -0
  244. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/from_dict.py +0 -0
  245. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/hashing.py +0 -0
  246. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/json_utils.py +0 -0
  247. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/locks.py +0 -0
  248. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/network.py +0 -0
  249. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/object_model.py +0 -0
  250. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/once.py +0 -0
  251. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/pip.py +0 -0
  252. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/platform_utils.py +0 -0
  253. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/slugify.py +0 -0
  254. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/strings.py +0 -0
  255. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet/utils/vector.py +0 -0
  256. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet.egg-info/dependency_links.txt +0 -0
  257. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet.egg-info/entry_points.txt +0 -0
  258. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet.egg-info/requires.txt +0 -0
  259. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/src/flet.egg-info/top_level.txt +0 -0
  260. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_base_control.py +0 -0
  261. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_colors.py +0 -0
  262. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_dataclasses.py +0 -0
  263. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_datetime.py +0 -0
  264. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_events.py +0 -0
  265. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_from_dict.py +0 -0
  266. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_icons.py +0 -0
  267. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_object_diff_frozen.py +0 -0
  268. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_object_diff_in_place.py +0 -0
  269. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_object_diff_performance.py +0 -0
  270. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_observable.py +0 -0
  271. {flet-0.70.0.dev6444 → flet-0.70.0.dev6482}/tests/test_patch_dataclass.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flet
3
- Version: 0.70.0.dev6444
3
+ Version: 0.70.0.dev6482
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,6 +1,6 @@
1
1
  [project]
2
2
  name = "flet"
3
- version = "0.70.0.dev6444"
3
+ version = "0.70.0.dev6482"
4
4
  description = "Flet for Python - easily build interactive multi-platform apps in Python"
5
5
  authors = [{name = "Appveyor Systems Inc.", email = "hello@flet.dev"}]
6
6
  license = "Apache-2.0"
@@ -147,10 +147,9 @@ class Observable:
147
147
  object.__setattr__(self, name, value)
148
148
  return
149
149
  value = self._wrap_if_collection(name, value)
150
- had = hasattr(self, name)
151
- old = object.__getattribute__(self, name) if had else None
150
+ old = object.__getattribute__(self, name) if hasattr(self, name) else None
151
+ object.__setattr__(self, name, value)
152
152
  if not value_equal(old, value):
153
- object.__setattr__(self, name, value)
154
153
  self._notify(name)
155
154
 
156
155
  def __delattr__(self, name: str):
@@ -55,13 +55,15 @@ import random
55
55
  from enum import Enum
56
56
  from typing import TYPE_CHECKING, Optional, Union
57
57
 
58
+ from flet.utils.deprecated_enum import DeprecatedEnumMeta
59
+
58
60
  if TYPE_CHECKING:
59
61
  from flet.controls.types import ColorValue
60
62
 
61
63
  __all__ = ["Colors"]
62
64
 
63
65
 
64
- class Colors(str, Enum):
66
+ class Colors(str, Enum, metaclass=DeprecatedEnumMeta):
65
67
  def __eq__(self, other):
66
68
  if isinstance(other, str):
67
69
  return self.value.lower() == other.lower()
@@ -198,12 +200,12 @@ class Colors(str, Enum):
198
200
  AMBER_ACCENT_400 = "amberaccent400"
199
201
  AMBER_ACCENT_700 = "amberaccent700"
200
202
  BLACK = "black"
201
- BLACK12 = "black12"
202
- BLACK26 = "black26"
203
- BLACK38 = "black38"
204
- BLACK45 = "black45"
205
- BLACK54 = "black54"
206
- BLACK87 = "black87"
203
+ BLACK_12 = "black12"
204
+ BLACK_26 = "black26"
205
+ BLACK_38 = "black38"
206
+ BLACK_45 = "black45"
207
+ BLACK_54 = "black54"
208
+ BLACK_87 = "black87"
207
209
  BLUE = "blue"
208
210
  BLUE_100 = "blue100"
209
211
  BLUE_200 = "blue200"
@@ -463,14 +465,14 @@ class Colors(str, Enum):
463
465
  TEAL_ACCENT_700 = "tealaccent700"
464
466
  TRANSPARENT = "transparent"
465
467
  WHITE = "white"
466
- WHITE10 = "white10"
467
- WHITE12 = "white12"
468
- WHITE24 = "white24"
469
- WHITE30 = "white30"
470
- WHITE38 = "white38"
471
- WHITE54 = "white54"
472
- WHITE60 = "white60"
473
- WHITE70 = "white70"
468
+ WHITE_10 = "white10"
469
+ WHITE_12 = "white12"
470
+ WHITE_24 = "white24"
471
+ WHITE_30 = "white30"
472
+ WHITE_38 = "white38"
473
+ WHITE_54 = "white54"
474
+ WHITE_60 = "white60"
475
+ WHITE_70 = "white70"
474
476
  YELLOW = "yellow"
475
477
  YELLOW_100 = "yellow100"
476
478
  YELLOW_200 = "yellow200"
@@ -487,3 +489,27 @@ class Colors(str, Enum):
487
489
  YELLOW_ACCENT_200 = "yellowaccent200"
488
490
  YELLOW_ACCENT_400 = "yellowaccent400"
489
491
  YELLOW_ACCENT_700 = "yellowaccent700"
492
+
493
+
494
+ # TODO - remove in Flet 1.0
495
+ _DEPRECATED_COLOR_ALIASES = {
496
+ "BLACK12": ("BLACK_12", "Use Colors.BLACK_12 instead."),
497
+ "BLACK26": ("BLACK_26", "Use Colors.BLACK_26 instead."),
498
+ "BLACK38": ("BLACK_38", "Use Colors.BLACK_38 instead."),
499
+ "BLACK45": ("BLACK_45", "Use Colors.BLACK_45 instead."),
500
+ "BLACK54": ("BLACK_54", "Use Colors.BLACK_54 instead."),
501
+ "BLACK87": ("BLACK_87", "Use Colors.BLACK_87 instead."),
502
+ "WHITE10": ("WHITE_10", "Use Colors.WHITE_10 instead."),
503
+ "WHITE12": ("WHITE_12", "Use Colors.WHITE_12 instead."),
504
+ "WHITE24": ("WHITE_24", "Use Colors.WHITE_24 instead."),
505
+ "WHITE30": ("WHITE_30", "Use Colors.WHITE_30 instead."),
506
+ "WHITE38": ("WHITE_38", "Use Colors.WHITE_38 instead."),
507
+ "WHITE54": ("WHITE_54", "Use Colors.WHITE_54 instead."),
508
+ "WHITE60": ("WHITE_60", "Use Colors.WHITE_60 instead."),
509
+ "WHITE70": ("WHITE_70", "Use Colors.WHITE_70 instead."),
510
+ }
511
+
512
+ Colors._deprecated_members_ = _DEPRECATED_COLOR_ALIASES
513
+
514
+ for alias_name, (target_name, _) in _DEPRECATED_COLOR_ALIASES.items():
515
+ Colors._member_map_[alias_name] = getattr(Colors, target_name)
@@ -1,6 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
3
  from flet.controls.base_control import control
4
+ from flet.controls.border_radius import BorderRadiusValue
4
5
  from flet.controls.control import Control
5
6
  from flet.controls.layout_control import LayoutControl
6
7
  from flet.controls.padding import PaddingValue
@@ -23,12 +24,12 @@ class BottomAppBar(LayoutControl):
23
24
  ft.BottomAppBar(
24
25
  bgcolor=ft.Colors.SURFACE_CONTAINER_LOW,
25
26
  content=ft.Row(
27
+ alignment=ft.MainAxisAlignment.SPACE_AROUND,
26
28
  controls=[
27
29
  ft.IconButton(ft.Icons.MENU),
28
30
  ft.IconButton(ft.Icons.SEARCH),
29
31
  ft.IconButton(ft.Icons.SETTINGS),
30
32
  ],
31
- alignment=ft.MainAxisAlignment.SPACE_AROUND,
32
33
  ),
33
34
  )
34
35
  ```
@@ -43,31 +44,43 @@ class BottomAppBar(LayoutControl):
43
44
  """
44
45
  The fill color to use for this app bar.
45
46
 
46
- Defaults to [`BottomAppBarTheme.bgcolor`][flet.], or if
47
- that is `None`, falls back to [`ColorScheme.surface`][flet.].
47
+ If `None`, [`BottomAppBarTheme.bgcolor`][flet.] is used;
48
+ if that is also `None`, then defaults to [`ColorScheme.surface`][flet.].
48
49
  """
49
50
 
50
51
  shadow_color: Optional[ColorValue] = None
51
52
  """
52
53
  The color of the shadow below this app bar.
54
+
55
+ If `None`, [`BottomAppBarTheme.shadow_color`][flet.] is used;
56
+ if that is also `None`, then defaults to [`Colors.TRANSPARENT`][flet.].
53
57
  """
54
58
 
55
59
  padding: Optional[PaddingValue] = None
56
60
  """
57
61
  Empty space to inscribe inside a container decoration (background, border).
58
62
 
59
- Defaults to [`BottomAppBarTheme.padding`][flet.], or if
60
- that is `None`, falls back to `Padding.symmetric(vertical=12.0, horizontal=16.0)`.
63
+ If `None`, [`BottomAppBarTheme.padding`][flet.] is used;
64
+ if that is also `None`, then defaults to
65
+ `Padding.symmetric(vertical=12.0, horizontal=16.0)`.
61
66
  """
62
67
 
63
- clip_behavior: ClipBehavior = ClipBehavior.NONE
68
+ clip_behavior: Optional[ClipBehavior] = None
64
69
  """
65
70
  Defines how the [`content`][(c).] of this app bar should be clipped.
71
+
72
+ If `None`, defaults to:
73
+ - [`ClipBehavior.ANTI_ALIAS`][flet.] if [`border_radius`][(c).]
74
+ is set and not equal to [`BorderRadius.all(0)`][flet.BorderRadius.all];
75
+ - Else [`ClipBehavior.NONE`][flet.].
66
76
  """
67
77
 
68
78
  shape: Optional[NotchShape] = None
69
79
  """
70
80
  The notch that is made for the floating action button.
81
+
82
+ If `None`, [`BottomAppBarTheme.shape`][flet.] is used;
83
+ if that is also `None`, then the shape will be rectangular with no notch.
71
84
  """
72
85
 
73
86
  notch_margin: Number = 4.0
@@ -75,15 +88,25 @@ class BottomAppBar(LayoutControl):
75
88
  The margin between the [`FloatingActionButton`][flet.] and this
76
89
  app bar's notch.
77
90
 
78
- Can be visible only if [`shape`][(c).] is `None`.
91
+ Note:
92
+ Has effect only if [`shape`][(c).] is not `None`.
79
93
  """
80
94
 
81
95
  elevation: Optional[Number] = None
82
96
  """
83
- This property controls the size of the shadow below this app bar.
97
+ The z-coordinate at which to place this bottom app bar relative to its
98
+ parent. It controls the size of the shadow below this app bar.
99
+
100
+ If `None`, [`BottomAppBarTheme.elevation`][flet.] is used;
101
+ if that is also `None`, then defaults to `3`.
84
102
 
85
103
  Raises:
86
- ValueError: If [`elevation`][(c).] is negative.
104
+ ValueError: If it is less than `0`.
105
+ """
106
+
107
+ border_radius: Optional[BorderRadiusValue] = None
108
+ """
109
+ The border radius to apply when clipping and painting this app bar.
87
110
  """
88
111
 
89
112
  def before_update(self):
@@ -36,7 +36,7 @@ class FloatingActionButton(LayoutControl):
36
36
  The content of this button.
37
37
 
38
38
  Raises:
39
- ValueError: If neither [`icon`][(c).] nor a valid [`content`][(c).]
39
+ ValueError: If neither [`icon`][(c).] nor a valid `content`
40
40
  (string or visible Control) is provided.
41
41
  """
42
42
 
@@ -95,7 +95,7 @@ class FloatingActionButton(LayoutControl):
95
95
  Defaults to `6`.
96
96
 
97
97
  Raises:
98
- ValueError: If [`elevation`][(c).] is negative.
98
+ ValueError: If it is less than `0`.
99
99
  """
100
100
 
101
101
  disabled_elevation: Optional[Number] = None
@@ -105,7 +105,7 @@ class FloatingActionButton(LayoutControl):
105
105
  Defaults to the same value as `elevation`.
106
106
 
107
107
  Raises:
108
- ValueError: If [`disabled_elevation`][(c).] is negative.
108
+ ValueError: If it is less than `0`.
109
109
  """
110
110
 
111
111
  focus_elevation: Optional[Number] = None
@@ -115,7 +115,7 @@ class FloatingActionButton(LayoutControl):
115
115
  Defaults to `8`.
116
116
 
117
117
  Raises:
118
- ValueError: If [`focus_elevation`][(c).] is negative.
118
+ ValueError: If it is less than `0`.
119
119
  """
120
120
 
121
121
  highlight_elevation: Optional[Number] = None
@@ -125,7 +125,7 @@ class FloatingActionButton(LayoutControl):
125
125
  Defaults to `12`.
126
126
 
127
127
  Raises:
128
- ValueError: If [`highlight_elevation`][(c).] is negative.
128
+ ValueError: If it is less than `0`.
129
129
  """
130
130
 
131
131
  hover_elevation: Optional[Number] = None
@@ -135,7 +135,7 @@ class FloatingActionButton(LayoutControl):
135
135
  Defaults to `8`.
136
136
 
137
137
  Raises:
138
- ValueError: If [`hover_elevation`][(c).] is negative.
138
+ ValueError: If it is less than `0`.
139
139
  """
140
140
 
141
141
  hover_color: Optional[ColorValue] = None
@@ -1,6 +1,7 @@
1
1
  from flet.utils.browser import open_in_browser
2
2
  from flet.utils.classproperty import classproperty
3
3
  from flet.utils.deprecated import deprecated, deprecated_class, deprecated_warning
4
+ from flet.utils.deprecated_enum import DeprecatedEnumMeta
4
5
  from flet.utils.files import (
5
6
  cleanup_path,
6
7
  copy_tree,
@@ -35,27 +36,23 @@ from flet.utils.strings import random_string
35
36
  from flet.utils.vector import Vector
36
37
 
37
38
  __all__ = [
38
- "open_in_browser",
39
+ "DeprecatedEnumMeta",
40
+ "Once",
41
+ "Vector",
42
+ "calculate_file_hash",
39
43
  "classproperty",
44
+ "cleanup_path",
45
+ "copy_tree",
40
46
  "deprecated",
41
47
  "deprecated_class",
42
48
  "deprecated_warning",
43
- "cleanup_path",
44
- "copy_tree",
45
- "get_current_script_dir",
46
- "is_within_directory",
47
- "safe_tar_extractall",
48
- "which",
49
49
  "from_dict",
50
- "calculate_file_hash",
51
- "sha1",
52
- "to_json",
53
- "get_free_tcp_port",
54
- "get_local_ip",
55
- "Once",
56
- "patch_dataclass",
57
50
  "get_arch",
58
51
  "get_bool_env_var",
52
+ "get_current_script_dir",
53
+ "get_free_tcp_port",
54
+ "get_local_ip",
55
+ "get_param_count",
59
56
  "get_platform",
60
57
  "is_android",
61
58
  "is_asyncio",
@@ -67,8 +64,13 @@ __all__ = [
67
64
  "is_mobile",
68
65
  "is_pyodide",
69
66
  "is_windows",
70
- "slugify",
67
+ "is_within_directory",
68
+ "open_in_browser",
69
+ "patch_dataclass",
71
70
  "random_string",
72
- "Vector",
73
- "get_param_count",
71
+ "safe_tar_extractall",
72
+ "sha1",
73
+ "slugify",
74
+ "to_json",
75
+ "which",
74
76
  ]
@@ -0,0 +1,40 @@
1
+ from __future__ import annotations
2
+
3
+ import warnings
4
+ from enum import EnumMeta
5
+
6
+ __all__ = ["DeprecatedEnumMeta"]
7
+
8
+
9
+ class DeprecatedEnumMeta(EnumMeta):
10
+ """Enum metaclass that supports deprecation aliases.
11
+
12
+ Enums can declare `_deprecated_members_` as a mapping of alias name to a tuple
13
+ containing the canonical member name and a deprecation message. Accessing an alias
14
+ returns the canonical member while emitting a `DeprecationWarning`.
15
+ """
16
+
17
+ def _resolve_deprecated(cls, name: str):
18
+ deprecated = getattr(cls, "_deprecated_members_", {})
19
+ info = deprecated.get(name)
20
+ if not info:
21
+ return None
22
+ target_name, message = info
23
+ warnings.warn(
24
+ f"{cls.__name__}.{name} is deprecated. {message}",
25
+ DeprecationWarning,
26
+ stacklevel=2,
27
+ )
28
+ return getattr(cls, target_name)
29
+
30
+ def __getattr__(cls, name: str):
31
+ member = cls._resolve_deprecated(name)
32
+ if member is not None:
33
+ return member
34
+ return super().__getattr__(name)
35
+
36
+ def __getitem__(cls, name: str):
37
+ member = cls._resolve_deprecated(name)
38
+ if member is not None:
39
+ return member
40
+ return super().__getitem__(name)
@@ -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.dev6444"
13
+ version = "0.70.0.dev6482"
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.dev6444
3
+ Version: 0.70.0.dev6482
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
@@ -241,6 +241,7 @@ src/flet/utils/__init__.py
241
241
  src/flet/utils/browser.py
242
242
  src/flet/utils/classproperty.py
243
243
  src/flet/utils/deprecated.py
244
+ src/flet/utils/deprecated_enum.py
244
245
  src/flet/utils/files.py
245
246
  src/flet/utils/from_dict.py
246
247
  src/flet/utils/hashing.py
File without changes
File without changes