fix(core): fix beta decorator for properties (#32497)

This commit is contained in:
Christophe Bornet 2025-08-11 18:43:53 +02:00 committed by GitHub
parent 374f414c91
commit f55186b38f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View File

@ -147,7 +147,6 @@ def beta(
return cast("T", obj)
elif isinstance(obj, property):
# note(erick): this block doesn't seem to be used?
if not _obj_type:
_obj_type = "attribute"
wrapped = None
@ -168,6 +167,7 @@ def beta(
self.__orig_fget = fget
self.__orig_fset = fset
self.__orig_fdel = fdel
self.__doc__ = doc
def __get__(
self, instance: Any, owner: Union[type, None] = None

View File

@ -91,8 +91,8 @@ class ClassWithBetaMethods:
"""Original doc."""
return "This is a beta staticmethod."
@beta() # type: ignore[prop-decorator]
@property
@beta()
def beta_property(self) -> str:
"""Original doc."""
return "This is a beta property."
@ -226,10 +226,10 @@ def test_beta_property() -> None:
warning = warning_list[0].message
assert str(warning) == (
"The method `ClassWithBetaMethods.beta_property` is in beta. "
"The attribute `ClassWithBetaMethods.beta_property` is in beta. "
"It is actively being worked on, so the API may change."
)
doc = ClassWithBetaMethods.beta_property.__doc__
doc = ClassWithBetaMethods.__dict__["beta_property"].__doc__
assert isinstance(doc, str)
assert doc.startswith(".. beta::")