[docs]defunproven_feature(message=None):"""The decorator to mark a function or class as an unproven feature. .. code-block:: python @unproven_feature def my_experimental_function(): pass @unproven_feature(message="This is a custom message.") class MyExperimentalClass: pass Args: message (Optional[str]): The warning message to be displayed. If not provided, a default message will be used. The default message is: .. code-block:: python f"This feature '{name}' is unproven, we can not guarantee the correctness." Returns: The decorated function or class, which will issue a warning when called or instantiated. """defdecorator(func_or_cls:U)->U:"""The actual decorator function. Args: func_or_cls (Union[Callable, Type]): The function or class to be marked. Returns: Union[Callable, Type]: The decorated function or class, which will issue a warning when called or instantiated. """name=func_or_cls.__qualname__warn_message=(messageorf"This feature '{name}' is unproven, we can not guarantee the correctness.")ifinspect.isclass(func_or_cls):original_init=func_or_cls.__init__@functools.wraps(original_init)defwrapped_init(self,*args,**kwargs):warnings.warn(warn_message,QurryUnprovenFeatureWarning,stacklevel=2)returnoriginal_init(self,*args,**kwargs)func_or_cls.__init__=wrapped_initfunc_or_cls.__unproven_feature__=Truereturnfunc_or_cls# type: ignore[return-value]ifinspect.isfunction(func_or_cls):warnings.warn(warn_message,QurryUnprovenFeatureWarning,stacklevel=2)returnfunc_or_cls# type: ignore[return-value]raiseTypeError("The decorator can only be applied to functions or classes."+f" Got {type(func_or_cls)}.")returndecorator