flet 0.82.3.dev7921__tar.gz → 0.82.3.dev7922__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.
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/PKG-INFO +9 -9
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/pyproject.toml +9 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/__init__.py +1 -2
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/authorization_service.py +3 -3
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/providers/github_oauth_provider.py +1 -1
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/base_control.py +2 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/border.py +1 -1
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/control.py +25 -31
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/animated_switcher.py +7 -7
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/autofill_group.py +7 -9
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/dismissible.py +7 -7
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/drag_target.py +7 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/draggable.py +14 -17
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/hero.py +12 -23
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/icon.py +19 -27
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/interactive_viewer.py +26 -31
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/page_view.py +12 -18
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/pagelet.py +7 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/reorderable_drag_handle.py +7 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/safe_area.py +8 -9
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/shimmer.py +25 -13
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/text_span.py +8 -5
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/window_drag_area.py +7 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_action_sheet.py +24 -11
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_action_sheet_action.py +7 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_activity_indicator.py +10 -14
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_alert_dialog.py +14 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_button.py +7 -12
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_context_menu.py +13 -14
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_context_menu_action.py +7 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_date_picker.py +28 -32
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_dialog_action.py +7 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_list_tile.py +7 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_navigation_bar.py +14 -19
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_picker.py +17 -23
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_segmented_button.py +12 -14
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_slider.py +28 -27
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_sliding_segmented_button.py +13 -13
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_timer_picker.py +23 -29
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/icon_data.py +4 -4
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/alert_dialog.py +13 -5
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/app_bar.py +17 -24
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/banner.py +17 -20
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/bottom_app_bar.py +7 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/bottom_sheet.py +12 -15
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/button.py +22 -11
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/chip.py +17 -17
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/circle_avatar.py +37 -36
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/context_menu.py +6 -7
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/datatable.py +37 -63
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/divider.py +20 -28
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/dropdown.py +9 -6
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/dropdownm2.py +21 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/expansion_panel.py +7 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/expansion_tile.py +16 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/floating_action_button.py +44 -45
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/icon_button.py +7 -7
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/menu_bar.py +7 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/navigation_bar.py +11 -9
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/navigation_rail.py +26 -24
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/outlined_button.py +20 -10
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/progress_bar.py +18 -24
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/radio_group.py +6 -7
- flet-0.82.3.dev7922/src/flet/controls/material/range_slider.py +179 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/segmented_button.py +39 -27
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/selection_area.py +6 -7
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/slider.py +27 -31
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/snack_bar.py +17 -23
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/switch.py +7 -11
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/tabs.py +8 -8
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/textfield.py +42 -53
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/vertical_divider.py +23 -20
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/page.py +3 -4
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/testing/flet_test_app.py +4 -3
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/deprecated.py +78 -18
- flet-0.82.3.dev7922/src/flet/utils/griffe_deprecations.py +281 -0
- flet-0.82.3.dev7922/src/flet/utils/validation.py +1835 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/version.py +1 -1
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet.egg-info/PKG-INFO +9 -9
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet.egg-info/SOURCES.txt +7 -1
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet.egg-info/requires.txt +8 -8
- flet-0.82.3.dev7922/tests/test_deprecated.py +162 -0
- flet-0.82.3.dev7922/tests/test_griffe_deprecations.py +213 -0
- flet-0.82.3.dev7922/tests/test_validation.py +759 -0
- flet-0.82.3.dev7922/tests/test_validation_benchmark.py +128 -0
- flet-0.82.3.dev7921/src/flet/controls/material/range_slider.py +0 -157
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/README.md +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/setup.cfg +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/app.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/authorization.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/group.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/oauth_provider.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/oauth_token.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/providers/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/providers/auth0_oauth_provider.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/providers/azure_oauth_provider.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/providers/google_oauth_provider.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/user.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/canvas/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/cli.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/component.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/component_decorator.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/component_owned.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/hook.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/use_callback.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/use_context.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/use_effect.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/use_memo.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/use_ref.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/hooks/use_state.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/memo.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/observable.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/public_utils.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/components/utils.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/adaptive_control.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/alignment.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/animation.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/base_page.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/blur.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/border_radius.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/box.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/buttons.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/colors.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/context.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/control_event.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/control_state.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/arc.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/canvas.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/circle.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/color.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/fill.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/image.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/line.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/oval.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/path.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/points.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/rect.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/shadow.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/shape.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/canvas/text.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/column.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/flet_app.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/gesture_detector.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/grid_view.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/image.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/keyboard_listener.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/list_view.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/markdown.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/merge_semantics.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/placeholder.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/responsive_row.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/rotated_box.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/row.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/screenshot.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/semantics.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/shader_mask.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/stack.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/text.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/transparent_pointer.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/view.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/core/window.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_app_bar.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_bottom_sheet.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_checkbox.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_colors.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_filled_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_icons.json +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_icons.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_icons.pyi +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_radio.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_switch.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_textfield.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/cupertino/cupertino_tinted_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/device_info.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/dialog_control.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/duration.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/embed_json_encoder.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/events.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/exceptions.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/geometry.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/gradients.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/id_counter.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/keys.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/layout_control.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/margin.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/auto_complete.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/badge.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/card.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/checkbox.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/container.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/date_picker.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/date_range_picker.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/elevated_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/filled_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/filled_tonal_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/form_field_control.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/icons.json +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/icons.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/icons.pyi +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/list_tile.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/menu_item_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/navigation_drawer.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/popup_menu_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/progress_ring.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/radio.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/reorderable_list_view.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/search_bar.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/submenu_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/text_button.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/time_picker.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/material/tooltip.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/multi_view.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/object_patch.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/padding.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/painting.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/query_string.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/ref.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/scrollable_control.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/accelerometer.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/barometer.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/battery.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/browser_context_menu.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/clipboard.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/connectivity.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/file_picker.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/gyroscope.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/haptic_feedback.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/magnetometer.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/screen_brightness.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/semantics_service.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/sensor_error_event.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/service.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/shake_detector.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/share.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/shared_preferences.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/storage_paths.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/url_launcher.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/user_accelerometer.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/services/wakelock.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/template_route.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/text_style.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/theme.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/transform.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/types.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/controls/value_types.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/fastapi/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/messaging/connection.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/messaging/flet_socket_server.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/messaging/protocol.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/messaging/pyodide_connection.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/messaging/session.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/messaging/session_store.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/pubsub/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/pubsub/pubsub_client.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/pubsub/pubsub_hub.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/py.typed +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/security/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/testing/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/testing/finder.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/testing/tester.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/__init__.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/browser.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/classproperty.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/deprecated_enum.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/files.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/from_dict.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/hashing.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/json_utils.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/locks.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/network.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/object_model.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/once.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/pip.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/platform_utils.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/slugify.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/strings.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/typing_utils.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/utils/vector.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet.egg-info/dependency_links.txt +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet.egg-info/entry_points.txt +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet.egg-info/top_level.txt +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_auth_lazy_imports.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_base_control.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_colors.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_component_effects.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_component_renderer.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_dataclasses.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_datetime.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_events.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_from_dict.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_icons.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_object_diff_frozen.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_object_diff_in_place.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_object_diff_memory_churn.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_object_diff_performance.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_observable.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_patch_dataclass.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_session_disconnect_buffering.py +0 -0
- {flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/tests/test_skip_double_update.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flet
|
|
3
|
-
Version: 0.82.3.
|
|
3
|
+
Version: 0.82.3.dev7922
|
|
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
|
|
@@ -9,23 +9,23 @@ Project-URL: Repository, https://github.com/flet-dev/flet
|
|
|
9
9
|
Project-URL: Documentation, https://docs.flet.dev/
|
|
10
10
|
Requires-Python: >=3.10
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
|
-
Requires-Dist: flet-cli==0.82.3.
|
|
13
|
-
Requires-Dist: flet-web==0.82.3.
|
|
12
|
+
Requires-Dist: flet-cli==0.82.3.dev7922; extra == "cli"
|
|
13
|
+
Requires-Dist: flet-web==0.82.3.dev7922; extra == "web"
|
|
14
14
|
Requires-Dist: oauthlib>=3.2.2; platform_system != "Pyodide"
|
|
15
15
|
Requires-Dist: httpx>=0.28.1; platform_system != "Pyodide"
|
|
16
16
|
Requires-Dist: repath>=0.9.0
|
|
17
17
|
Requires-Dist: msgpack>=1.1.0
|
|
18
18
|
Requires-Dist: typing-extensions; python_version < "3.11"
|
|
19
19
|
Provides-Extra: all
|
|
20
|
-
Requires-Dist: flet-cli==0.82.3.
|
|
21
|
-
Requires-Dist: flet-web==0.82.3.
|
|
22
|
-
Requires-Dist: flet-desktop==0.82.3.
|
|
20
|
+
Requires-Dist: flet-cli==0.82.3.dev7922; extra == "all"
|
|
21
|
+
Requires-Dist: flet-web==0.82.3.dev7922; extra == "all"
|
|
22
|
+
Requires-Dist: flet-desktop==0.82.3.dev7922; extra == "all"
|
|
23
23
|
Provides-Extra: cli
|
|
24
|
-
Requires-Dist: flet-cli==0.82.3.
|
|
24
|
+
Requires-Dist: flet-cli==0.82.3.dev7922; extra == "cli"
|
|
25
25
|
Provides-Extra: desktop
|
|
26
|
-
Requires-Dist: flet-desktop==0.82.3.
|
|
26
|
+
Requires-Dist: flet-desktop==0.82.3.dev7922; extra == "desktop"
|
|
27
27
|
Provides-Extra: web
|
|
28
|
-
Requires-Dist: flet-web==0.82.3.
|
|
28
|
+
Requires-Dist: flet-web==0.82.3.dev7922; extra == "web"
|
|
29
29
|
|
|
30
30
|
<p align="center">
|
|
31
31
|
<a href="https://flet.dev"><img src="https://raw.githubusercontent.com/flet-dev/flet/refs/heads/main/media/logo/flet-logo.svg" height="150" alt="Flet logo"></a>
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "flet"
|
|
3
|
-
version = "0.82.3.
|
|
3
|
+
version = "0.82.3.dev7922"
|
|
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"
|
|
7
7
|
readme = "README.md"
|
|
8
8
|
requires-python = ">=3.10"
|
|
9
9
|
dependencies = [
|
|
10
|
-
"flet-cli==0.82.3.
|
|
11
|
-
"flet-web==0.82.3.
|
|
10
|
+
"flet-cli==0.82.3.dev7922; extra == 'cli'",
|
|
11
|
+
"flet-web==0.82.3.dev7922; extra == 'web'",
|
|
12
12
|
"oauthlib >=3.2.2; platform_system != 'Pyodide'",
|
|
13
13
|
"httpx >=0.28.1; platform_system != 'Pyodide'",
|
|
14
14
|
"repath >=0.9.0",
|
|
@@ -23,15 +23,15 @@ Documentation = "https://docs.flet.dev/"
|
|
|
23
23
|
|
|
24
24
|
[project.optional-dependencies]
|
|
25
25
|
all = [
|
|
26
|
-
"flet-cli==0.82.3.
|
|
27
|
-
"flet-web==0.82.3.
|
|
28
|
-
"flet-desktop==0.82.3.
|
|
26
|
+
"flet-cli==0.82.3.dev7922",
|
|
27
|
+
"flet-web==0.82.3.dev7922",
|
|
28
|
+
"flet-desktop==0.82.3.dev7922",
|
|
29
29
|
]
|
|
30
|
-
cli = ["flet-cli==0.82.3.
|
|
30
|
+
cli = ["flet-cli==0.82.3.dev7922"]
|
|
31
31
|
desktop = [
|
|
32
|
-
"flet-desktop==0.82.3.
|
|
32
|
+
"flet-desktop==0.82.3.dev7922",
|
|
33
33
|
]
|
|
34
|
-
web = ["flet-web==0.82.3.
|
|
34
|
+
web = ["flet-web==0.82.3.dev7922"]
|
|
35
35
|
|
|
36
36
|
[project.scripts]
|
|
37
37
|
flet = "flet.cli:main"
|
|
@@ -87,7 +87,6 @@ docs = [
|
|
|
87
87
|
"mkdocs-glightbox >=0.5.1",
|
|
88
88
|
"mkdocs-open-in-new-tab >=1.0.8",
|
|
89
89
|
"mkdocs-section-index >=0.3.10",
|
|
90
|
-
"griffe-warnings-deprecated >=1.1.0",
|
|
91
90
|
"pygments >=2.16",
|
|
92
91
|
"markdown-exec[ansi] >=1.11.0",
|
|
93
92
|
"pydocstyle >=6.3.0",
|
|
@@ -105,7 +105,7 @@ from flet.controls.core.draggable import Draggable
|
|
|
105
105
|
from flet.controls.core.flet_app import FletApp
|
|
106
106
|
from flet.controls.core.gesture_detector import GestureDetector
|
|
107
107
|
from flet.controls.core.grid_view import GridView
|
|
108
|
-
from flet.controls.core.hero import Hero
|
|
108
|
+
from flet.controls.core.hero import Hero
|
|
109
109
|
from flet.controls.core.icon import Icon
|
|
110
110
|
from flet.controls.core.image import Image
|
|
111
111
|
from flet.controls.core.interactive_viewer import InteractiveViewer
|
|
@@ -815,7 +815,6 @@ __all__ = [
|
|
|
815
815
|
"GyroscopeReadingEvent",
|
|
816
816
|
"HapticFeedback",
|
|
817
817
|
"Hero",
|
|
818
|
-
"HeroTag",
|
|
819
818
|
"HoverEvent",
|
|
820
819
|
"Icon",
|
|
821
820
|
"IconButton",
|
|
@@ -165,7 +165,7 @@ class AuthorizationService(Authorization):
|
|
|
165
165
|
self.__token.access_token
|
|
166
166
|
)
|
|
167
167
|
|
|
168
|
-
def __convert_token(self, t: Mapping[str, Any]):
|
|
168
|
+
def __convert_token(self, t: Mapping[str, Any]) -> OAuthToken:
|
|
169
169
|
"""
|
|
170
170
|
Convert oauthlib token mapping to [`OAuthToken`][(p).oauth_token.].
|
|
171
171
|
|
|
@@ -231,7 +231,7 @@ class AuthorizationService(Authorization):
|
|
|
231
231
|
t["refresh_token"] = self.__token.refresh_token
|
|
232
232
|
self.__token = self.__convert_token(t)
|
|
233
233
|
|
|
234
|
-
async def __get_user(self):
|
|
234
|
+
async def __get_user(self) -> User:
|
|
235
235
|
"""
|
|
236
236
|
Fetch user profile from provider `user_endpoint`.
|
|
237
237
|
|
|
@@ -256,7 +256,7 @@ class AuthorizationService(Authorization):
|
|
|
256
256
|
uj = json.loads(user_resp.text)
|
|
257
257
|
return User(uj, str(self.provider.user_id_fn(uj)))
|
|
258
258
|
|
|
259
|
-
def __get_default_headers(self):
|
|
259
|
+
def __get_default_headers(self) -> dict[str, str]:
|
|
260
260
|
"""
|
|
261
261
|
Build default HTTP headers for OAuth-related requests.
|
|
262
262
|
|
{flet-0.82.3.dev7921 → flet-0.82.3.dev7922}/src/flet/auth/providers/github_oauth_provider.py
RENAMED
|
@@ -99,7 +99,7 @@ class GitHubOAuthProvider(OAuthProvider):
|
|
|
99
99
|
break
|
|
100
100
|
return User(uj, id=str(uj["id"]))
|
|
101
101
|
|
|
102
|
-
def __get_client_headers(self, access_token):
|
|
102
|
+
def __get_client_headers(self, access_token: str) -> dict[str, str]:
|
|
103
103
|
"""
|
|
104
104
|
Builds common GitHub API request headers.
|
|
105
105
|
|
|
@@ -11,6 +11,7 @@ from flet.controls.ref import Ref
|
|
|
11
11
|
from flet.controls.value_types import Prop, Value, _install_props, value
|
|
12
12
|
from flet.utils.from_dict import from_dict
|
|
13
13
|
from flet.utils.object_model import get_param_count
|
|
14
|
+
from flet.utils.validation import validate
|
|
14
15
|
|
|
15
16
|
logger = logging.getLogger("flet")
|
|
16
17
|
controls_log = logging.getLogger("flet_controls")
|
|
@@ -327,6 +328,7 @@ class BaseControl:
|
|
|
327
328
|
del self._frozen
|
|
328
329
|
|
|
329
330
|
self.before_update()
|
|
331
|
+
validate(self, suppress_repeated_errors=True)
|
|
330
332
|
|
|
331
333
|
if frozen is not None:
|
|
332
334
|
self._frozen = frozen
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
|
-
from typing import Optional, Union
|
|
2
|
+
from typing import Annotated, Optional, Union
|
|
3
3
|
|
|
4
4
|
from flet.controls.base_control import BaseControl
|
|
5
5
|
from flet.controls.material.badge import BadgeValue
|
|
6
6
|
from flet.controls.material.tooltip import TooltipValue
|
|
7
7
|
from flet.controls.types import Number, ResponsiveNumber
|
|
8
|
+
from flet.utils.validation import V
|
|
8
9
|
|
|
9
10
|
__all__ = ["Control"]
|
|
10
11
|
|
|
@@ -17,7 +18,10 @@ class Control(BaseControl):
|
|
|
17
18
|
Not meant to be used directly.
|
|
18
19
|
"""
|
|
19
20
|
|
|
20
|
-
expand:
|
|
21
|
+
expand: Annotated[
|
|
22
|
+
Optional[Union[bool, int]],
|
|
23
|
+
V.instance_of((bool, int)),
|
|
24
|
+
] = None
|
|
21
25
|
"""
|
|
22
26
|
Specifies whether/how this control should expand to fill available space in its \
|
|
23
27
|
parent layout.
|
|
@@ -31,7 +35,7 @@ class Control(BaseControl):
|
|
|
31
35
|
[`View`][flet.], [`Page`][flet.].
|
|
32
36
|
|
|
33
37
|
Raises:
|
|
34
|
-
ValueError: If
|
|
38
|
+
ValueError: If it is not of type `bool` or `int`.
|
|
35
39
|
"""
|
|
36
40
|
|
|
37
41
|
expand_loose: bool = False
|
|
@@ -75,7 +79,10 @@ class Control(BaseControl):
|
|
|
75
79
|
///
|
|
76
80
|
"""
|
|
77
81
|
|
|
78
|
-
opacity:
|
|
82
|
+
opacity: Annotated[
|
|
83
|
+
Number,
|
|
84
|
+
V.between(0.0, 1.0),
|
|
85
|
+
] = 1.0
|
|
79
86
|
"""
|
|
80
87
|
Defines the transparency of the control.
|
|
81
88
|
|
|
@@ -83,7 +90,7 @@ class Control(BaseControl):
|
|
|
83
90
|
without any transparency).
|
|
84
91
|
|
|
85
92
|
Raises:
|
|
86
|
-
ValueError: If
|
|
93
|
+
ValueError: If it is not between `0.0` and `1.0`, inclusive.
|
|
87
94
|
"""
|
|
88
95
|
|
|
89
96
|
tooltip: Optional[TooltipValue] = None
|
|
@@ -114,35 +121,22 @@ class Control(BaseControl):
|
|
|
114
121
|
The value of this property will be propagated down to all children controls
|
|
115
122
|
recursively.
|
|
116
123
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
```
|
|
131
|
-
///
|
|
124
|
+
Example:
|
|
125
|
+
For example, if you have a form with multiple entry controls you can
|
|
126
|
+
disable them all together by disabling container:
|
|
127
|
+
|
|
128
|
+
```python
|
|
129
|
+
ft.Column(
|
|
130
|
+
disabled = True,
|
|
131
|
+
controls=[
|
|
132
|
+
ft.TextField(),
|
|
133
|
+
ft.TextField()
|
|
134
|
+
]
|
|
135
|
+
)
|
|
136
|
+
```
|
|
132
137
|
"""
|
|
133
138
|
|
|
134
139
|
rtl: bool = False
|
|
135
140
|
"""
|
|
136
141
|
Whether the text direction of the control should be right-to-left (RTL).
|
|
137
142
|
"""
|
|
138
|
-
|
|
139
|
-
def before_update(self):
|
|
140
|
-
super().before_update()
|
|
141
|
-
if not (0.0 <= self.opacity <= 1.0):
|
|
142
|
-
raise ValueError(
|
|
143
|
-
f"opacity must be between 0.0 and 1.0 inclusive, got {self.opacity}"
|
|
144
|
-
)
|
|
145
|
-
if self.expand is not None and not isinstance(self.expand, (bool, int)):
|
|
146
|
-
raise ValueError(
|
|
147
|
-
f"expand must be of type bool or int, got {type(self.expand)}"
|
|
148
|
-
)
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
from dataclasses import field
|
|
2
2
|
from enum import Enum
|
|
3
|
+
from typing import Annotated
|
|
3
4
|
|
|
4
5
|
from flet.controls.animation import AnimationCurve
|
|
5
6
|
from flet.controls.base_control import control
|
|
6
7
|
from flet.controls.control import Control
|
|
7
8
|
from flet.controls.duration import Duration, DurationValue
|
|
8
9
|
from flet.controls.layout_control import LayoutControl
|
|
10
|
+
from flet.utils.validation import V
|
|
9
11
|
|
|
10
12
|
__all__ = ["AnimatedSwitcher", "AnimatedSwitcherTransition"]
|
|
11
13
|
|
|
@@ -39,7 +41,10 @@ class AnimatedSwitcher(LayoutControl):
|
|
|
39
41
|
Used to switch between controls with an animation.
|
|
40
42
|
"""
|
|
41
43
|
|
|
42
|
-
content:
|
|
44
|
+
content: Annotated[
|
|
45
|
+
Control,
|
|
46
|
+
V.visible_control(),
|
|
47
|
+
]
|
|
43
48
|
"""
|
|
44
49
|
The content to display.
|
|
45
50
|
|
|
@@ -47,7 +52,7 @@ class AnimatedSwitcher(LayoutControl):
|
|
|
47
52
|
`content` to the new one.
|
|
48
53
|
|
|
49
54
|
Raises:
|
|
50
|
-
ValueError: If
|
|
55
|
+
ValueError: If it is not visible.
|
|
51
56
|
"""
|
|
52
57
|
|
|
53
58
|
duration: DurationValue = field(default_factory=lambda: Duration(seconds=1))
|
|
@@ -74,8 +79,3 @@ class AnimatedSwitcher(LayoutControl):
|
|
|
74
79
|
"""
|
|
75
80
|
An animation type to transition between new and old [`content`][(c).].
|
|
76
81
|
"""
|
|
77
|
-
|
|
78
|
-
def before_update(self):
|
|
79
|
-
super().before_update()
|
|
80
|
-
if not self.content.visible:
|
|
81
|
-
raise ValueError("content must be visible")
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from enum import Enum
|
|
2
|
+
from typing import Annotated
|
|
2
3
|
|
|
3
4
|
from flet.controls.base_control import control
|
|
4
5
|
from flet.controls.control import Control
|
|
6
|
+
from flet.utils.validation import V
|
|
5
7
|
|
|
6
8
|
__all__ = ["AutofillGroup", "AutofillGroupDisposeAction", "AutofillHint"]
|
|
7
9
|
|
|
@@ -775,14 +777,15 @@ class AutofillGroup(Control):
|
|
|
775
777
|
Used to group autofill controls together.
|
|
776
778
|
"""
|
|
777
779
|
|
|
778
|
-
content:
|
|
780
|
+
content: Annotated[
|
|
781
|
+
Control,
|
|
782
|
+
V.visible_control(),
|
|
783
|
+
]
|
|
779
784
|
"""
|
|
780
785
|
The content of this group.
|
|
781
786
|
|
|
782
|
-
Must be visible.
|
|
783
|
-
|
|
784
787
|
Raises:
|
|
785
|
-
ValueError: If
|
|
788
|
+
ValueError: If it is not visible.
|
|
786
789
|
"""
|
|
787
790
|
|
|
788
791
|
dispose_action: AutofillGroupDisposeAction = AutofillGroupDisposeAction.COMMIT
|
|
@@ -790,8 +793,3 @@ class AutofillGroup(Control):
|
|
|
790
793
|
The action to be run when this group is the topmost and it's being disposed, in \
|
|
791
794
|
order to clean up the current autofill context.
|
|
792
795
|
"""
|
|
793
|
-
|
|
794
|
-
def before_update(self):
|
|
795
|
-
super().before_update()
|
|
796
|
-
if not self.content.visible:
|
|
797
|
-
raise ValueError("content must be visible")
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
|
-
from typing import Optional
|
|
2
|
+
from typing import Annotated, Optional
|
|
3
3
|
|
|
4
4
|
from flet.controls.adaptive_control import AdaptiveControl
|
|
5
5
|
from flet.controls.base_control import control
|
|
@@ -15,6 +15,7 @@ from flet.controls.material.snack_bar import DismissDirection
|
|
|
15
15
|
from flet.controls.types import (
|
|
16
16
|
Number,
|
|
17
17
|
)
|
|
18
|
+
from flet.utils.validation import V
|
|
18
19
|
|
|
19
20
|
__all__ = ["Dismissible", "DismissibleDismissEvent", "DismissibleUpdateEvent"]
|
|
20
21
|
|
|
@@ -75,14 +76,15 @@ class Dismissible(LayoutControl, AdaptiveControl):
|
|
|
75
76
|
over the specified [`resize_duration`][(c).].
|
|
76
77
|
"""
|
|
77
78
|
|
|
78
|
-
content:
|
|
79
|
+
content: Annotated[
|
|
80
|
+
Control,
|
|
81
|
+
V.visible_control(),
|
|
82
|
+
]
|
|
79
83
|
"""
|
|
80
84
|
The control that is being dismissed.
|
|
81
85
|
|
|
82
|
-
Must be visible.
|
|
83
|
-
|
|
84
86
|
Raises:
|
|
85
|
-
ValueError: If
|
|
87
|
+
ValueError: If it is not visible.
|
|
86
88
|
"""
|
|
87
89
|
|
|
88
90
|
background: Optional[Control] = None
|
|
@@ -184,8 +186,6 @@ class Dismissible(LayoutControl, AdaptiveControl):
|
|
|
184
186
|
|
|
185
187
|
def before_update(self):
|
|
186
188
|
super().before_update()
|
|
187
|
-
if not self.content.visible:
|
|
188
|
-
raise ValueError("content must be visible")
|
|
189
189
|
if (self.secondary_background and self.secondary_background.visible) and not (
|
|
190
190
|
self.background and self.background.visible
|
|
191
191
|
):
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
|
-
from typing import Optional, cast
|
|
2
|
+
from typing import Annotated, Optional, cast
|
|
3
3
|
|
|
4
4
|
from flet.controls.base_control import control
|
|
5
5
|
from flet.controls.control import Control
|
|
6
6
|
from flet.controls.control_event import Event, EventHandler
|
|
7
7
|
from flet.controls.core.draggable import Draggable
|
|
8
8
|
from flet.controls.transform import Offset
|
|
9
|
+
from flet.utils.validation import V
|
|
9
10
|
|
|
10
11
|
__all__ = [
|
|
11
12
|
"DragTarget",
|
|
@@ -96,14 +97,15 @@ class DragTarget(Control):
|
|
|
96
97
|
asked to accept the `Draggable`'s data.
|
|
97
98
|
"""
|
|
98
99
|
|
|
99
|
-
content:
|
|
100
|
+
content: Annotated[
|
|
101
|
+
Control,
|
|
102
|
+
V.visible_control(),
|
|
103
|
+
]
|
|
100
104
|
"""
|
|
101
105
|
The content of this control.
|
|
102
106
|
|
|
103
|
-
Must be visible.
|
|
104
|
-
|
|
105
107
|
Raises:
|
|
106
|
-
ValueError: If
|
|
108
|
+
ValueError: If it is not visible.
|
|
107
109
|
"""
|
|
108
110
|
|
|
109
111
|
group: str = "default"
|
|
@@ -137,8 +139,3 @@ class DragTarget(Control):
|
|
|
137
139
|
"""
|
|
138
140
|
Called when a draggable moves within this target.
|
|
139
141
|
"""
|
|
140
|
-
|
|
141
|
-
def before_update(self):
|
|
142
|
-
super().before_update()
|
|
143
|
-
if not self.content.visible:
|
|
144
|
-
raise ValueError("content must be visible")
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
from typing import Optional
|
|
1
|
+
from typing import Annotated, Optional
|
|
2
2
|
|
|
3
3
|
from flet.controls.alignment import Axis
|
|
4
4
|
from flet.controls.base_control import control
|
|
5
5
|
from flet.controls.control import Control
|
|
6
6
|
from flet.controls.control_event import ControlEventHandler
|
|
7
|
+
from flet.utils.validation import V
|
|
7
8
|
|
|
8
9
|
__all__ = ["Draggable"]
|
|
9
10
|
|
|
@@ -19,7 +20,10 @@ class Draggable(Control):
|
|
|
19
20
|
given the opportunity to complete drag-and-drop flow.
|
|
20
21
|
"""
|
|
21
22
|
|
|
22
|
-
content:
|
|
23
|
+
content: Annotated[
|
|
24
|
+
Control,
|
|
25
|
+
V.visible_control(),
|
|
26
|
+
]
|
|
23
27
|
"""
|
|
24
28
|
The control to display when the draggable is not being dragged.
|
|
25
29
|
|
|
@@ -27,7 +31,7 @@ class Draggable(Control):
|
|
|
27
31
|
[`content_when_dragging`][(c).] is displayed instead.
|
|
28
32
|
|
|
29
33
|
Raises:
|
|
30
|
-
ValueError: If
|
|
34
|
+
ValueError: If it is not visible.
|
|
31
35
|
"""
|
|
32
36
|
|
|
33
37
|
group: str = "default"
|
|
@@ -75,7 +79,10 @@ class Draggable(Control):
|
|
|
75
79
|
with other gestures in that direction.
|
|
76
80
|
"""
|
|
77
81
|
|
|
78
|
-
max_simultaneous_drags:
|
|
82
|
+
max_simultaneous_drags: Annotated[
|
|
83
|
+
Optional[int],
|
|
84
|
+
V.ge(0),
|
|
85
|
+
] = None
|
|
79
86
|
"""
|
|
80
87
|
Specifies how many simultaneous drag operations are allowed for this draggable.
|
|
81
88
|
|
|
@@ -84,11 +91,11 @@ class Draggable(Control):
|
|
|
84
91
|
For a better user experience, you may want to provide an "empty" widget for
|
|
85
92
|
[`content_when_dragging`][(c).]
|
|
86
93
|
to visually indicate the item is being moved.
|
|
87
|
-
-
|
|
88
|
-
-
|
|
94
|
+
- any other positive integer - allows that many concurrent drags.
|
|
95
|
+
- `None` - no limit on the number of simultaneous drags.
|
|
89
96
|
|
|
90
97
|
Raises:
|
|
91
|
-
ValueError: If
|
|
98
|
+
ValueError: If it is not greater than or equal to `0`.
|
|
92
99
|
"""
|
|
93
100
|
|
|
94
101
|
on_drag_start: Optional[ControlEventHandler["Draggable"]] = None
|
|
@@ -100,13 +107,3 @@ class Draggable(Control):
|
|
|
100
107
|
"""
|
|
101
108
|
Called when this draggable is dropped and accepted by a [`DragTarget`][flet.].
|
|
102
109
|
"""
|
|
103
|
-
|
|
104
|
-
def before_update(self):
|
|
105
|
-
super().before_update()
|
|
106
|
-
if not self.content.visible:
|
|
107
|
-
raise ValueError("content must be visible")
|
|
108
|
-
if self.max_simultaneous_drags is not None and self.max_simultaneous_drags < 0:
|
|
109
|
-
raise ValueError(
|
|
110
|
-
f"max_simultaneous_drags must be greater than or equal to 0, "
|
|
111
|
-
f"got {self.max_simultaneous_drags}"
|
|
112
|
-
)
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Annotated
|
|
2
2
|
|
|
3
3
|
from flet.controls.base_control import control
|
|
4
4
|
from flet.controls.control import Control
|
|
5
5
|
from flet.controls.layout_control import LayoutControl
|
|
6
|
+
from flet.utils.validation import V
|
|
6
7
|
|
|
7
|
-
__all__ = ["Hero"
|
|
8
|
-
|
|
9
|
-
HeroTag = Union[str, int, float, bool]
|
|
10
|
-
"""Type alias for Hero tag values.
|
|
11
|
-
|
|
12
|
-
Represents an identifier used to match source and destination [`Hero`][flet.]
|
|
13
|
-
controls during route transitions.
|
|
14
|
-
"""
|
|
8
|
+
__all__ = ["Hero"]
|
|
15
9
|
|
|
16
10
|
|
|
17
11
|
@control("Hero")
|
|
@@ -23,15 +17,21 @@ class Hero(LayoutControl):
|
|
|
23
17
|
animate that control between routes.
|
|
24
18
|
"""
|
|
25
19
|
|
|
26
|
-
tag:
|
|
20
|
+
tag: Annotated[
|
|
21
|
+
str,
|
|
22
|
+
V.instance_of(str),
|
|
23
|
+
]
|
|
27
24
|
"""
|
|
28
25
|
A unique identifier used to match source and destination Hero controls.
|
|
29
26
|
|
|
30
27
|
Raises:
|
|
31
|
-
ValueError: If
|
|
28
|
+
ValueError: If it is not of type `str`.
|
|
32
29
|
"""
|
|
33
30
|
|
|
34
|
-
content:
|
|
31
|
+
content: Annotated[
|
|
32
|
+
Control,
|
|
33
|
+
V.visible_control(),
|
|
34
|
+
]
|
|
35
35
|
"""
|
|
36
36
|
The control to display and animate.
|
|
37
37
|
|
|
@@ -44,14 +44,3 @@ class Hero(LayoutControl):
|
|
|
44
44
|
Whether to animate when the route is transitioned by a \
|
|
45
45
|
user gesture (for example, iOS back swipe).
|
|
46
46
|
"""
|
|
47
|
-
|
|
48
|
-
def before_update(self):
|
|
49
|
-
super().before_update()
|
|
50
|
-
if self.tag is None:
|
|
51
|
-
raise ValueError("tag must be provided")
|
|
52
|
-
if not isinstance(self.tag, (str, int, float, bool)):
|
|
53
|
-
raise ValueError(
|
|
54
|
-
f"tag must be str, int, float, or bool, got {type(self.tag)}"
|
|
55
|
-
)
|
|
56
|
-
if not self.content.visible:
|
|
57
|
-
raise ValueError("content must be visible")
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
from typing import Optional
|
|
1
|
+
from typing import Annotated, Optional
|
|
2
2
|
|
|
3
3
|
from flet.controls.base_control import control
|
|
4
4
|
from flet.controls.box import BoxShadowValue
|
|
5
5
|
from flet.controls.layout_control import LayoutControl
|
|
6
6
|
from flet.controls.types import BlendMode, ColorValue, IconData, Number
|
|
7
|
+
from flet.utils.validation import V
|
|
7
8
|
|
|
8
9
|
__all__ = ["Icon"]
|
|
9
10
|
|
|
@@ -16,6 +17,7 @@ class Icon(LayoutControl):
|
|
|
16
17
|
Icons can be customized in color, size, and visual style using various
|
|
17
18
|
parameters such as stroke weight, fill level, and shadows.
|
|
18
19
|
|
|
20
|
+
Example:
|
|
19
21
|
```python
|
|
20
22
|
ft.Icon(ft.Icons.FAVORITE, color=ft.Colors.PRIMARY, size=40)
|
|
21
23
|
```
|
|
@@ -58,7 +60,10 @@ class Icon(LayoutControl):
|
|
|
58
60
|
The order of shadows matters for how transparency is blended.
|
|
59
61
|
"""
|
|
60
62
|
|
|
61
|
-
fill:
|
|
63
|
+
fill: Annotated[
|
|
64
|
+
Optional[Number],
|
|
65
|
+
V.between(0.0, 1.0),
|
|
66
|
+
] = None
|
|
62
67
|
"""
|
|
63
68
|
The fill amount of the icon, between `0.0` (outline) and `1.0` (solid).
|
|
64
69
|
|
|
@@ -66,7 +71,7 @@ class Icon(LayoutControl):
|
|
|
66
71
|
It can be used to indicate state transitions or selection visually.
|
|
67
72
|
|
|
68
73
|
Raises:
|
|
69
|
-
ValueError: If
|
|
74
|
+
ValueError: If it is not between `0.0` and `1.0`, inclusive.
|
|
70
75
|
"""
|
|
71
76
|
|
|
72
77
|
apply_text_scaling: Optional[bool] = None
|
|
@@ -86,27 +91,31 @@ class Icon(LayoutControl):
|
|
|
86
91
|
It allows precise visual adjustments without changing icon size.
|
|
87
92
|
"""
|
|
88
93
|
|
|
89
|
-
weight:
|
|
94
|
+
weight: Annotated[
|
|
95
|
+
Optional[Number],
|
|
96
|
+
V.gt(0.0),
|
|
97
|
+
] = None
|
|
90
98
|
"""
|
|
91
99
|
The stroke weight (thickness) of the icon's lines.
|
|
92
100
|
|
|
93
101
|
This requires the icon font to support weight variation.
|
|
94
|
-
Must be greater than `0`.
|
|
95
102
|
|
|
96
103
|
Raises:
|
|
97
|
-
ValueError: If
|
|
104
|
+
ValueError: If it is not strictly greater than `0.0`.
|
|
98
105
|
"""
|
|
99
106
|
|
|
100
|
-
optical_size:
|
|
107
|
+
optical_size: Annotated[
|
|
108
|
+
Optional[Number],
|
|
109
|
+
V.gt(0.0),
|
|
110
|
+
] = None
|
|
101
111
|
"""
|
|
102
112
|
Adjusts the icon's visual style for different sizes to maintain clarity and \
|
|
103
113
|
balance.
|
|
104
114
|
|
|
105
115
|
This requires the icon font to support optical sizing.
|
|
106
|
-
Must be greater than `0`.
|
|
107
116
|
|
|
108
117
|
Raises:
|
|
109
|
-
ValueError: If
|
|
118
|
+
ValueError: If it is not strictly greater than `0.0`.
|
|
110
119
|
"""
|
|
111
120
|
|
|
112
121
|
blend_mode: Optional[BlendMode] = BlendMode.SRC_OVER
|
|
@@ -114,21 +123,4 @@ class Icon(LayoutControl):
|
|
|
114
123
|
The blend mode used when rendering the icon.
|
|
115
124
|
|
|
116
125
|
Blend modes control how the icon's color interacts with the background.
|
|
117
|
-
|
|
118
|
-
"""
|
|
119
|
-
|
|
120
|
-
def before_update(self):
|
|
121
|
-
super().before_update()
|
|
122
|
-
if self.fill is not None and not (0.0 <= self.fill <= 1.0):
|
|
123
|
-
raise ValueError(
|
|
124
|
-
f"fill must be between 0.0 and 1.0 inclusive, got {self.fill}"
|
|
125
|
-
)
|
|
126
|
-
if self.weight is not None and self.weight <= 0.0:
|
|
127
|
-
raise ValueError(
|
|
128
|
-
f"weight must be strictly greater than 0.0, got {self.weight}"
|
|
129
|
-
)
|
|
130
|
-
if self.optical_size is not None and self.optical_size <= 0.0:
|
|
131
|
-
raise ValueError(
|
|
132
|
-
f"optical_size must be strictly greater than 0.0, "
|
|
133
|
-
f"got {self.optical_size}"
|
|
134
|
-
)
|
|
126
|
+
"""
|