Source code for tests.example.example

import sys
import warnings

from tests.example.utils import deprecated, refactored


[docs]@deprecated('0.6', '1.8') class DeprecatedClass: """Example of a deprecated class.""" pass
@deprecated('0.2', '0.8', details='Use new method instead') def deprecated_method(): """Example of a deprecated method.""" pass @refactored('0.4', '2.0', parameter_map={'old_kwarg2': 'new_kwarg1'}) def renamed_parameter(kwarg1=5, new_kwarg1=False): """Example of a method with changed signature.""" pass def _merged_parameters(old_kwarg2=True, old_kwarg3=False): if not old_kwarg2 and not old_kwarg3: new_kwarg1 = 'cat-1' elif old_kwarg2 and not old_kwarg3: new_kwarg1 = 'cat-2' else: new_kwarg1 = 'error' return dict(new_kwarg1=new_kwarg1) @refactored('0.4', parameter_map=_merged_parameters) def merged_parameter(kwarg1=5, new_kwarg1='error'): """Example of a method with changed signature.""" pass if 'sphinx' in sys.modules: def document_warning(runnable, **kwargs): warnings.filterwarnings('once') with warnings.catch_warnings(record=True) as w: runnable(**kwargs) warning = '.\nReplace'.join(str(w[-1].message).split('. Replace')) runnable.__doc__ += ("\n" "\n" ">>> {}({}) # Generates warning:\n" "{}").format(runnable.__name__, ', '.join(['{}={}'.format(a, b) for a, b in kwargs.items()]), warning) document_warning(DeprecatedClass) document_warning(deprecated_method) document_warning(renamed_parameter, old_kwarg2=True) document_warning(merged_parameter, old_kwarg2=True) document_warning(merged_parameter, old_kwarg2=False, old_kwarg3=True)