Tags: flet-dev/flet
Tags
Prepare Flet 0.83.0 release (#6334) * Prepare Flet 0.83.0 release * Add dataclass validation entry to CHANGELOG Document lightweight dataclass validation and deprecation using Annotated, plus auto-added deprecation admonitions in the docs (PR #6278 by @ndonkoHenri). Adds a new line to CHANGELOG.md under the upcoming changes.
chore: lightweight dataclass validation and deprecation with `Annotat… …ed` + auto-added deprecation admonitions in docs (#6278) * initial commit * refactor: Simplify outbound validation rules by removing unnecessary parameters * refactor: Remove `allow_none` parameter from validation functions and improve `None` handling * refactor: Remove `allow_left_none` and `allow_right_none` parameters from validation functions and adjust tests accordingly * refactor: Replace manual validation with annotated constraints and remove redundant `before_update` methods * refactor: Add `V.visible_control` validation and replace `before_update` methods in core and material controls * refactor: Use `Annotated` with `V.str_or_visible_control` and `V.visible_control` across controls, remove redundant `before_update` methods * refactor more controls * delete `HeroTag` and make `Hero.tag` control of type `str` only * refactor more controls * refactor: Use `V.visible_controls` with `Annotated` across controls, remove redundant outbound rules * refactor: Rename `__outbound_rules__` to `__validation_rules__` across multiple files * refactor: Add field-vs-field validation methods (`gt_field`, `ge_field`, `lt_field`, `le_field`), update tests accordingly * refactor more controls * refactor: Remove unused field comparison methods and streamline validation logic * refactor: Enable `unwrap_annotated` in mkdocs configuration * public validation file * skill initial * skill initial * rename function * refactor more controls * refactor: Introduce `ValidationDeclarationError` for invalid validation rule declarations, update usages * more controls * Update validation documentation to use canonical wording for Raises entries * refactor: Update validation module docstrings for clarity and consistency * refactor: Rename ControlRule to ClassRule and update related types and usages * refactor: Remove `V.control()` method and replace usages with `ClassRule` * consistent icon and content checks * refactor: Replace "control" with "instance" in validation module for clarity and consistency * move validation.py to utils * Add deprecated validation warnings * Implement custom Griffe deprecations * Show deprecation admonitions * Fix deprecation admonitions * Add `docs_reason` support for deprecation docs tooling * improve error messages and docstrings for better consistency and readability. * add validation error suppression feature with tests and utils * add stacklevel resolution for deprecation warnings to target user code * Add runtime deprecation utilities and tests, improve Griffe deprecation handling. * Refactor `python_xref` patching * Update .gitignore to exclude Python cache files * Add deprecation skill * update failing cross refs * use Icon as docs example * Optimize validation fast paths and add benchmarks Improve validation performance and add benchmark tests. - V.or_: avoid allocating the errors list unless needed, short-circuit on first successful rule, and fix error joining/formatting. - Add @cache to _resolve_allow_none_for_field and simplify _prepare_field_value and _prepare_field_comparison_values with early returns to avoid redundant checks. - Only clear reported set when it is non-empty. - Add pytest conftest to auto-skip benchmark tests by default and a new benchmark suite (test_validation_benchmark.py) to measure validation overhead in _before_update_safe and construction time. These changes reduce validation overhead (notably in _before_update_safe) and introduce tests to catch regressions. * Fix Copilot review notes Introduce HeroTag (Union[str,int,float,bool]) as a type alias and export it from flet.__init__.py; update Hero control to accept and validate HeroTag values and add docs entry for the alias. Remove deprecated_class usage and related deprecated methods/import from Icon control to clean up legacy deprecations. Also fix a minor grammar typo in TextField docs ("won't be shown"). * Add Linux desktop flavor option to docs Document the two Linux desktop client flavors ("full" and "light") in the installation guide. Explain that the light flavor (default) excludes audio/video support, and show how to select the flavor via the FLET_DESKTOP_FLAVOR environment variable or the [tool.flet].desktop_flavor setting in pyproject.toml. Note that users of the light flavor must install audio/video libraries themselves and link to the Audio and Video setup guides. (Updated sdk/python/packages/flet/docs/getting-started/installation.md) * remove deprecation leftovers + more docs * refactor: update Hero control to use string type for tag * add support for parsing and linking environment variables in CLI help docs * update map example to use memomaps tile server url * add documentation for Android signing environment variables --------- Co-authored-by: Feodor Fitsner <feodor@appveyor.com>
fix: include top-level directory in template zips for cookiecutter Cookiecutter requires zip files to have a top-level directory. Zip from the parent so build/ and app/ are included as roots. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: avoid YAML anchors in patched pubspec by using separate dict ins… …tances pyyaml deduplicates identical dict objects as &id001/*id001 anchors, which Flutter's pubspec parser doesn't support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: align Dart-side defaults with Python across all packages (#6330) * Adjust map defaults and switch to BaseControl Multiple map-related fixes and defaults: - Example: set SafeArea expand=True in basic map example to allow full expansion. - Tile layer: use BaseControl instead of LayoutControl when composing TileLayerControl. - Map utils: change fadeIn start/reload opacities default to 0.0; set pinch_move_threshold default to 40.0; provide fallback durations for performLeapTriggerDuration and animationCurveReverseDuration; make cursor keyboard trigger nullable when trigger_keys is absent; set WMS tile layer defaults for format ('image/png') and version ('1.1.1'). These changes prevent null/undefined behavior and ensure sensible defaults for map interactions and tile rendering. * fix: align Dart-side defaults with Python for props not sent when unchanged - Dismissible: read "movement_duration"/"resize_duration" instead of "duration" for both - Image: add default `false` for gapless_playback - ExpansionTile: add default `true` for enable_feedback - DataTable2: fix sort_arrow_animation_duration unit (microseconds → milliseconds) - Geolocator: fix notification_set_ongoing default (true → false) - SecureStorage: fix WebOptions db_name/public_key to use "Flet" prefix * docs: add warning about matching Python↔Dart default values for extension developers
PreviousNext