Advanced Usage¶
Property Deprecation¶
class UserProfile:
@property
@deprecate("3.0.0", "Use full_name instead")
def name(self) -> str:
return self._name
Custom Warning Types¶
@deprecate("4.0.0", "Experimental feature", category=FutureWarning)
def experimental_feature():
pass
Early Error Enforcement¶
@deprecate(
remove_version="2.0.0",
message="Migrate to new_system()",
error_version="1.5.0" # Errors start in 1.5.0
)
def legacy_system():
pass
Context-Specific Version Overrides¶
from pyminideprecator import scoped_version
set_current_version("1.0.0", set_global=True)
with scoped_version("2.0.0"):
legacy_function() # Raises DeprecatedError