From bcee9797d8ff2bfaea0a52f3fdc5e8c2bc09e699 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Fri, 7 Feb 2025 13:17:25 +0100 Subject: [PATCH] added deprecated decorator; deprecated ascan, a2scan and rscan --- slic/core/scanner/scanner.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/slic/core/scanner/scanner.py b/slic/core/scanner/scanner.py index 9fc840b4e..6db95b0a4 100644 --- a/slic/core/scanner/scanner.py +++ b/slic/core/scanner/scanner.py @@ -1,3 +1,6 @@ +from functools import wraps +from warnings import warn + import numpy as np from slic.core.adjustable import DummyAdjustable @@ -11,6 +14,22 @@ from .scanbackend import ScanBackend make_positions = nice_linspace +def deprecated(replacement): + if not isinstance(replacement, str): + replacement = replacement.__name__ + def decorator(func): + what = func.__name__ + msg = f"{what} is deprecated, use {replacement} instead." + @wraps(func) + def wrapper(*args, **kwargs): + warn(msg, category=DeprecationWarning, stacklevel=2) + return func(*args, **kwargs) + wrapper.__doc__ = f"Warning: {msg}\n\n{wrapper.__doc__}" + return wrapper + return decorator + + + class Scanner: """ Scanner contains several different types of scans as methods. @@ -194,6 +213,7 @@ class Scanner: return self.make_scan(adjustables, positions, *args, **kwargs) + @deprecated(scan1D) @forwards_to(make_scan, nfilled=3) def ascan(self, adjustable, start_pos, end_pos, n_intervals, *args, **kwargs): """Absolute scan @@ -217,6 +237,7 @@ class Scanner: return self.make_scan(adjustables, positions, *args, **kwargs) + @deprecated(scan2D) @forwards_to(make_scan, nfilled=3) def a2scan(self, adjustable1, start_pos1, end_pos1, adjustable2, start_pos2, end_pos2, n_intervals, *args, **kwargs): """Absolute scan -- 2 adjustables @@ -246,6 +267,7 @@ class Scanner: return self.make_scan(adjustables, positions, *args, **kwargs) + @deprecated("scan1D(..., relative=True)") @forwards_to(make_scan, nfilled=3) def rscan(self, adjustable, start_pos, end_pos, n_intervals, *args, **kwargs): """Relative scan