Use when adding or changing deprecations for Python controls/APIs in sdk/python/packages/, including V.deprecated fields, deprecated decorators, version lifecycle, and docs admonitions/labels.
Use this skill when you:
Annotated[..., V.deprecated(...)],flet.utils.deprecated helpers,deprecated label).Do not use this skill for non-deprecation validation logic; use
flet-validation.
sdk/python/packages/flet/src/flet/utils/deprecated.pysdk/python/packages/flet/src/flet/utils/validation.py (V.deprecated)sdk/python/packages/flet/src/flet/utils/griffe_deprecations.pyUse this order and stop at the first option that fits:
Annotated[..., V.deprecated(...)].@deprecated(...).@deprecated_class(...).Do not add parallel custom warning logic in before_update() when V.deprecated
already covers the field.
Follow the non-copying model:
before_update().Removal phase:
delete_version cleanup, remove old Python property/deprecation and remove
Dart fallback in the same migration.0.82.0 -> remove in 0.85.0.delete_version unless there is an approved exception.version.delete_version using the 3-minor policy by default.reason plain text for runtime warnings.docs_reason for docs-only markdown/xref text.from typing import Annotated, Optional
from flet.utils.validation import V
old_prop: Annotated[
Optional[str],
V.deprecated(
"new_prop",
version="0.17.0",
delete_version="0.18.0",
reason="Use new_prop instead.",
docs_reason="Use [`new_prop`][(c).] instead.",
),
] = None
from flet.utils.deprecated import deprecated
@deprecated(
reason="Use new_func instead.",
docs_reason="Use [`new_func()`][(m).new_func] instead.",
version="0.17.0",
delete_version="0.18.0",
)
def old_func():
...
from flet.utils.deprecated import deprecated_class
@deprecated_class(
reason="Use NewControl instead.",
docs_reason="Use [`NewControl`][flet.] instead.",
version="0.17.0",
delete_version="0.18.0",
)
class OldControl:
...
reason vs docs_reasonreason.docs_reason; fallback is reason.reason to avoid noisy runtime output.For cross-reference shape rules, follow:
docs-cross-referencing
For supported patterns, docs should auto-render:
Deprecated admonition section,deprecated label/badge on the item.Do not duplicate with manual deprecation admonitions in docstrings unless there is a special case not covered by the extension.
When adding/changing deprecations, include tests for:
reason, versions, optional delete version),docs_reason overrides reason in docs),V.deprecated,
@deprecated, @deprecated_class),deprecated) in docs extraction tests.Prefer:
sdk/python/packages/flet/tests/test_deprecated.pysdk/python/packages/flet/tests/test_griffe_deprecations.pysdk/python/packages/flet/tests/test_validation.py (for V.deprecated)reason.delete_version when a removal target is already known.docs_reason (for example malformed [(c).] links).