| class VersionedDeprecationWarning(DeprecationWarning): | |
| """A custom deprecation warning class that includes version information. | |
| Attributes: | |
| message (str): The deprecation message describing why the feature is deprecated. | |
| remove_version (str): The version in which the feature will be removed. | |
| Example: | |
| >>> def deprecated_function(): | |
| ... warnings.warn( | |
| ... VersionedDeprecationWarning( | |
| ... "Function XYZ is deprecated.", | |
| ... remove_version="2.0.0" | |
| ... ) | |
| ... ) | |
| ... | |
| >>> deprecated_function() | |
| DeprecationWarning: Function XYZ is deprecated. It will be removed in version 2.0.0. | |
| """ | |
| def __init__(self, message: str, remove_version: str) -> None: | |
| super().__init__(message + f' It will be removed in version {remove_version}.') | |
| class ExperimentalWarning(Warning): | |
| """A warning for experimental features. | |
| Attributes: | |
| feature_name (str): The name of the experimental feature. | |
| """ | |
| def __init__(self, feature_name: str) -> None: | |
| super().__init__(f'{feature_name} is experimental and may change with future versions.') |