flet 0.82.3.dev7876__tar.gz → 0.82.3.dev7877__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.dev7876 → flet-0.82.3.dev7877}/PKG-INFO +9 -9
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/pyproject.toml +9 -9
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/context.py +22 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/page.py +1 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/messaging/session.py +2 -1
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/version.py +1 -1
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet.egg-info/PKG-INFO +9 -9
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet.egg-info/SOURCES.txt +2 -1
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet.egg-info/requires.txt +8 -8
- flet-0.82.3.dev7877/tests/test_skip_double_update.py +137 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/README.md +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/setup.cfg +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/app.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/authorization.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/authorization_service.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/group.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/oauth_provider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/oauth_token.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/providers/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/providers/auth0_oauth_provider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/providers/azure_oauth_provider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/providers/github_oauth_provider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/providers/google_oauth_provider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/user.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/canvas/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/cli.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/component.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/component_decorator.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/component_owned.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/hook.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/use_callback.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/use_context.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/use_effect.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/use_memo.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/use_ref.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/hooks/use_state.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/memo.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/observable.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/public_utils.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/components/utils.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/adaptive_control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/alignment.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/animation.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/base_control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/base_page.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/blur.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/border.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/border_radius.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/box.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/buttons.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/colors.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/control_event.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/control_state.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/animated_switcher.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/autofill_group.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/arc.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/canvas.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/circle.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/color.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/fill.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/image.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/line.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/oval.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/path.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/points.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/rect.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/shadow.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/shape.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/canvas/text.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/column.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/dismissible.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/drag_target.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/draggable.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/flet_app.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/gesture_detector.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/grid_view.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/hero.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/icon.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/image.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/interactive_viewer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/keyboard_listener.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/list_view.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/markdown.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/merge_semantics.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/page_view.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/pagelet.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/placeholder.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/reorderable_drag_handle.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/responsive_row.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/rotated_box.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/row.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/safe_area.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/screenshot.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/semantics.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/shader_mask.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/shimmer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/stack.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/text.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/text_span.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/transparent_pointer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/view.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/window.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/window_drag_area.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_action_sheet.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_action_sheet_action.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_activity_indicator.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_alert_dialog.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_app_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_bottom_sheet.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_checkbox.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_colors.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_context_menu.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_context_menu_action.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_date_picker.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_dialog_action.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_filled_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_icons.json +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_icons.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_icons.pyi +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_list_tile.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_navigation_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_picker.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_radio.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_segmented_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_slider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_sliding_segmented_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_switch.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_textfield.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_timer_picker.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/cupertino/cupertino_tinted_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/device_info.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/dialog_control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/duration.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/embed_json_encoder.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/events.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/exceptions.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/geometry.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/gradients.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/icon_data.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/id_counter.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/keys.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/layout_control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/margin.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/alert_dialog.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/app_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/auto_complete.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/badge.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/banner.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/bottom_app_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/bottom_sheet.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/card.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/checkbox.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/chip.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/circle_avatar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/container.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/context_menu.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/datatable.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/date_picker.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/date_range_picker.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/divider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/dropdown.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/dropdownm2.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/elevated_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/expansion_panel.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/expansion_tile.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/filled_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/filled_tonal_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/floating_action_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/form_field_control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/icon_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/icons.json +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/icons.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/icons.pyi +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/list_tile.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/menu_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/menu_item_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/navigation_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/navigation_drawer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/navigation_rail.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/outlined_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/popup_menu_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/progress_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/progress_ring.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/radio.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/radio_group.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/range_slider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/reorderable_list_view.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/search_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/segmented_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/selection_area.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/slider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/snack_bar.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/submenu_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/switch.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/tabs.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/text_button.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/textfield.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/time_picker.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/tooltip.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/material/vertical_divider.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/multi_view.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/object_patch.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/padding.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/painting.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/query_string.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/ref.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/scrollable_control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/accelerometer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/barometer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/battery.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/browser_context_menu.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/clipboard.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/connectivity.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/file_picker.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/gyroscope.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/haptic_feedback.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/magnetometer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/screen_brightness.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/semantics_service.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/sensor_error_event.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/service.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/shake_detector.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/share.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/shared_preferences.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/storage_paths.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/url_launcher.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/user_accelerometer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/services/wakelock.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/template_route.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/text_style.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/theme.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/transform.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/types.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/fastapi/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/messaging/connection.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/messaging/flet_socket_server.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/messaging/protocol.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/messaging/pyodide_connection.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/messaging/session_store.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/pubsub/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/pubsub/pubsub_client.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/pubsub/pubsub_hub.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/py.typed +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/security/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/testing/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/testing/finder.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/testing/flet_test_app.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/testing/tester.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/__init__.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/browser.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/classproperty.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/deprecated.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/deprecated_enum.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/files.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/from_dict.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/hashing.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/json_utils.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/locks.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/network.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/object_model.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/once.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/pip.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/platform_utils.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/slugify.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/strings.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/typing_utils.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/utils/vector.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet.egg-info/dependency_links.txt +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet.egg-info/entry_points.txt +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet.egg-info/top_level.txt +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_auth_lazy_imports.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_base_control.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_colors.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_component_effects.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_component_renderer.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_dataclasses.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_datetime.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_events.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_from_dict.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_icons.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_object_diff_frozen.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_object_diff_in_place.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_object_diff_memory_churn.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_object_diff_performance.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_observable.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_patch_dataclass.py +0 -0
- {flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/tests/test_session_disconnect_buffering.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.dev7877
|
|
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.dev7877; extra == "cli"
|
|
13
|
+
Requires-Dist: flet-web==0.82.3.dev7877; 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.dev7877; extra == "all"
|
|
21
|
+
Requires-Dist: flet-web==0.82.3.dev7877; extra == "all"
|
|
22
|
+
Requires-Dist: flet-desktop==0.82.3.dev7877; extra == "all"
|
|
23
23
|
Provides-Extra: cli
|
|
24
|
-
Requires-Dist: flet-cli==0.82.3.
|
|
24
|
+
Requires-Dist: flet-cli==0.82.3.dev7877; extra == "cli"
|
|
25
25
|
Provides-Extra: desktop
|
|
26
|
-
Requires-Dist: flet-desktop==0.82.3.
|
|
26
|
+
Requires-Dist: flet-desktop==0.82.3.dev7877; extra == "desktop"
|
|
27
27
|
Provides-Extra: web
|
|
28
|
-
Requires-Dist: flet-web==0.82.3.
|
|
28
|
+
Requires-Dist: flet-web==0.82.3.dev7877; 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.dev7877"
|
|
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.dev7877; extra == 'cli'",
|
|
11
|
+
"flet-web==0.82.3.dev7877; 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.dev7877",
|
|
27
|
+
"flet-web==0.82.3.dev7877",
|
|
28
|
+
"flet-desktop==0.82.3.dev7877",
|
|
29
29
|
]
|
|
30
|
-
cli = ["flet-cli==0.82.3.
|
|
30
|
+
cli = ["flet-cli==0.82.3.dev7877"]
|
|
31
31
|
desktop = [
|
|
32
|
-
"flet-desktop==0.82.3.
|
|
32
|
+
"flet-desktop==0.82.3.dev7877",
|
|
33
33
|
]
|
|
34
|
-
web = ["flet-web==0.82.3.
|
|
34
|
+
web = ["flet-web==0.82.3.dev7877"]
|
|
35
35
|
|
|
36
36
|
[project.scripts]
|
|
37
37
|
flet = "flet.cli:main"
|
|
@@ -110,6 +110,27 @@ class Context:
|
|
|
110
110
|
"""
|
|
111
111
|
return self.__components_mode
|
|
112
112
|
|
|
113
|
+
def mark_update_called(self):
|
|
114
|
+
"""
|
|
115
|
+
Marks that `.update()` was explicitly called during the current handler.
|
|
116
|
+
"""
|
|
117
|
+
_update_behavior_context_var.get()._update_called = True
|
|
118
|
+
|
|
119
|
+
def was_update_called(self) -> bool:
|
|
120
|
+
"""
|
|
121
|
+
Returns whether `.update()` was explicitly called during the current handler.
|
|
122
|
+
|
|
123
|
+
Returns:
|
|
124
|
+
`True` if `.update()` was called, `False` otherwise.
|
|
125
|
+
"""
|
|
126
|
+
return _update_behavior_context_var.get()._update_called
|
|
127
|
+
|
|
128
|
+
def reset_update_called(self):
|
|
129
|
+
"""
|
|
130
|
+
Resets the update-called flag for the current context.
|
|
131
|
+
"""
|
|
132
|
+
_update_behavior_context_var.get()._update_called = False
|
|
133
|
+
|
|
113
134
|
def auto_update_enabled(self) -> bool:
|
|
114
135
|
"""
|
|
115
136
|
Returns whether auto-update is enabled in the current context.
|
|
@@ -143,6 +164,7 @@ class UpdateBehavior:
|
|
|
143
164
|
"""
|
|
144
165
|
|
|
145
166
|
_auto_update_enabled: bool = True
|
|
167
|
+
_update_called: bool = False
|
|
146
168
|
|
|
147
169
|
|
|
148
170
|
_context_page = ContextVar("flet_session_page", default=None)
|
|
@@ -435,8 +435,9 @@ class Session:
|
|
|
435
435
|
control: Control that handled the event, or `None`.
|
|
436
436
|
"""
|
|
437
437
|
# call auto-update
|
|
438
|
-
if context.auto_update_enabled():
|
|
438
|
+
if context.auto_update_enabled() and not context.was_update_called():
|
|
439
439
|
await self.__auto_update(control)
|
|
440
|
+
context.reset_update_called()
|
|
440
441
|
|
|
441
442
|
# unregister unreferenced services
|
|
442
443
|
self.page._services.unregister_services()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flet
|
|
3
|
-
Version: 0.82.3.
|
|
3
|
+
Version: 0.82.3.dev7877
|
|
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.dev7877; extra == "cli"
|
|
13
|
+
Requires-Dist: flet-web==0.82.3.dev7877; 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.dev7877; extra == "all"
|
|
21
|
+
Requires-Dist: flet-web==0.82.3.dev7877; extra == "all"
|
|
22
|
+
Requires-Dist: flet-desktop==0.82.3.dev7877; extra == "all"
|
|
23
23
|
Provides-Extra: cli
|
|
24
|
-
Requires-Dist: flet-cli==0.82.3.
|
|
24
|
+
Requires-Dist: flet-cli==0.82.3.dev7877; extra == "cli"
|
|
25
25
|
Provides-Extra: desktop
|
|
26
|
-
Requires-Dist: flet-desktop==0.82.3.
|
|
26
|
+
Requires-Dist: flet-desktop==0.82.3.dev7877; extra == "desktop"
|
|
27
27
|
Provides-Extra: web
|
|
28
|
-
Requires-Dist: flet-web==0.82.3.
|
|
28
|
+
Requires-Dist: flet-web==0.82.3.dev7877; 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>
|
|
@@ -294,4 +294,5 @@ tests/test_object_diff_memory_churn.py
|
|
|
294
294
|
tests/test_object_diff_performance.py
|
|
295
295
|
tests/test_observable.py
|
|
296
296
|
tests/test_patch_dataclass.py
|
|
297
|
-
tests/test_session_disconnect_buffering.py
|
|
297
|
+
tests/test_session_disconnect_buffering.py
|
|
298
|
+
tests/test_skip_double_update.py
|
|
@@ -2,10 +2,10 @@ repath>=0.9.0
|
|
|
2
2
|
msgpack>=1.1.0
|
|
3
3
|
|
|
4
4
|
[:extra == "cli"]
|
|
5
|
-
flet-cli==0.82.3.
|
|
5
|
+
flet-cli==0.82.3.dev7877
|
|
6
6
|
|
|
7
7
|
[:extra == "web"]
|
|
8
|
-
flet-web==0.82.3.
|
|
8
|
+
flet-web==0.82.3.dev7877
|
|
9
9
|
|
|
10
10
|
[:platform_system != "Pyodide"]
|
|
11
11
|
oauthlib>=3.2.2
|
|
@@ -15,15 +15,15 @@ httpx>=0.28.1
|
|
|
15
15
|
typing-extensions
|
|
16
16
|
|
|
17
17
|
[all]
|
|
18
|
-
flet-cli==0.82.3.
|
|
19
|
-
flet-web==0.82.3.
|
|
20
|
-
flet-desktop==0.82.3.
|
|
18
|
+
flet-cli==0.82.3.dev7877
|
|
19
|
+
flet-web==0.82.3.dev7877
|
|
20
|
+
flet-desktop==0.82.3.dev7877
|
|
21
21
|
|
|
22
22
|
[cli]
|
|
23
|
-
flet-cli==0.82.3.
|
|
23
|
+
flet-cli==0.82.3.dev7877
|
|
24
24
|
|
|
25
25
|
[desktop]
|
|
26
|
-
flet-desktop==0.82.3.
|
|
26
|
+
flet-desktop==0.82.3.dev7877
|
|
27
27
|
|
|
28
28
|
[web]
|
|
29
|
-
flet-web==0.82.3.
|
|
29
|
+
flet-web==0.82.3.dev7877
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"""Tests for skipping auto-update when .update() was already called."""
|
|
2
|
+
|
|
3
|
+
from unittest.mock import AsyncMock, patch
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
|
|
7
|
+
from flet.controls.context import UpdateBehavior, _update_behavior_context_var, context
|
|
8
|
+
from flet.messaging.connection import Connection
|
|
9
|
+
from flet.messaging.session import Session
|
|
10
|
+
from flet.pubsub.pubsub_hub import PubSubHub
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@pytest.fixture(autouse=True)
|
|
14
|
+
def _fresh_update_behavior():
|
|
15
|
+
"""Ensure each test starts with a clean UpdateBehavior."""
|
|
16
|
+
token = _update_behavior_context_var.set(UpdateBehavior())
|
|
17
|
+
yield
|
|
18
|
+
_update_behavior_context_var.reset(token)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _make_session():
|
|
22
|
+
conn = Connection()
|
|
23
|
+
conn.pubsubhub = PubSubHub()
|
|
24
|
+
return Session(conn)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# --- Context flag unit tests ---
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def test_update_called_flag_defaults_to_false():
|
|
31
|
+
assert context.was_update_called() is False
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def test_mark_update_called_sets_flag():
|
|
35
|
+
context.mark_update_called()
|
|
36
|
+
assert context.was_update_called() is True
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_reset_update_called_clears_flag():
|
|
40
|
+
context.mark_update_called()
|
|
41
|
+
context.reset_update_called()
|
|
42
|
+
assert context.was_update_called() is False
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def test_reset_auto_update_starts_with_clean_flag():
|
|
46
|
+
context.mark_update_called()
|
|
47
|
+
context.reset_auto_update()
|
|
48
|
+
assert context.was_update_called() is False
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# --- after_event integration tests ---
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@pytest.mark.asyncio
|
|
55
|
+
async def test_after_event_skips_auto_update_when_update_was_called():
|
|
56
|
+
session = _make_session()
|
|
57
|
+
context.mark_update_called()
|
|
58
|
+
|
|
59
|
+
with patch.object(
|
|
60
|
+
session, "_Session__auto_update", new_callable=AsyncMock
|
|
61
|
+
) as mock_auto:
|
|
62
|
+
await session.after_event(session.page)
|
|
63
|
+
mock_auto.assert_not_called()
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@pytest.mark.asyncio
|
|
67
|
+
async def test_after_event_runs_auto_update_when_update_was_not_called():
|
|
68
|
+
session = _make_session()
|
|
69
|
+
|
|
70
|
+
with patch.object(
|
|
71
|
+
session, "_Session__auto_update", new_callable=AsyncMock
|
|
72
|
+
) as mock_auto:
|
|
73
|
+
await session.after_event(session.page)
|
|
74
|
+
mock_auto.assert_called_once_with(session.page)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@pytest.mark.asyncio
|
|
78
|
+
async def test_after_event_resets_flag_after_check():
|
|
79
|
+
session = _make_session()
|
|
80
|
+
context.mark_update_called()
|
|
81
|
+
|
|
82
|
+
with patch.object(session, "_Session__auto_update", new_callable=AsyncMock):
|
|
83
|
+
await session.after_event(session.page)
|
|
84
|
+
|
|
85
|
+
assert context.was_update_called() is False
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@pytest.mark.asyncio
|
|
89
|
+
async def test_after_event_resets_flag_even_when_auto_update_disabled():
|
|
90
|
+
session = _make_session()
|
|
91
|
+
context.mark_update_called()
|
|
92
|
+
context.disable_auto_update()
|
|
93
|
+
|
|
94
|
+
with patch.object(session, "_Session__auto_update", new_callable=AsyncMock):
|
|
95
|
+
await session.after_event(session.page)
|
|
96
|
+
|
|
97
|
+
assert context.was_update_called() is False
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
# --- Generator handler simulation ---
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
@pytest.mark.asyncio
|
|
104
|
+
async def test_generator_handler_flag_resets_between_yields():
|
|
105
|
+
"""Simulate a generator handler where after_event is called after each yield.
|
|
106
|
+
|
|
107
|
+
First yield: .update() was called -> skip auto-update
|
|
108
|
+
Second yield: no .update() called -> auto-update fires
|
|
109
|
+
"""
|
|
110
|
+
session = _make_session()
|
|
111
|
+
|
|
112
|
+
with patch.object(
|
|
113
|
+
session, "_Session__auto_update", new_callable=AsyncMock
|
|
114
|
+
) as mock_auto:
|
|
115
|
+
# First yield segment: user called .update()
|
|
116
|
+
context.mark_update_called()
|
|
117
|
+
await session.after_event(session.page)
|
|
118
|
+
assert mock_auto.call_count == 0
|
|
119
|
+
|
|
120
|
+
# Second yield segment: no .update() called
|
|
121
|
+
await session.after_event(session.page)
|
|
122
|
+
assert mock_auto.call_count == 1
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
# --- Page.update() marks the flag ---
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def test_page_update_marks_flag():
|
|
129
|
+
session = _make_session()
|
|
130
|
+
page = session.page
|
|
131
|
+
|
|
132
|
+
# Page.update() internally calls patch_control which needs a real connection,
|
|
133
|
+
# so we mock __update to isolate the flag-setting behavior.
|
|
134
|
+
with patch.object(page, "_Page__update"):
|
|
135
|
+
page.update()
|
|
136
|
+
|
|
137
|
+
assert context.was_update_called() is True
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/providers/github_oauth_provider.py
RENAMED
|
File without changes
|
{flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/auth/providers/google_oauth_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flet-0.82.3.dev7876 → flet-0.82.3.dev7877}/src/flet/controls/core/reorderable_drag_handle.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|