added Deprecator

This commit is contained in:
2021-06-18 17:27:44 +02:00
parent 85d4ed17cd
commit f6dbb0419e

View File

@ -3,7 +3,7 @@ from time import sleep
from epics import PV from epics import PV
#from slic.core.adjustable import Adjustable from slic.core.adjustable import PVAdjustable
from slic.devices.device import Device from slic.devices.device import Device
from slic.devices.simpledevice import SimpleDevice from slic.devices.simpledevice import SimpleDevice
from slic.devices.general.motor import Motor from slic.devices.general.motor import Motor
@ -52,3 +52,31 @@ class TXS(Device):
from colorama import Fore, Style
class Deprecator:
def __init__(self, old_name, new_name):
self._old_name = old_name
self._new_name = new_name
def __repr__(self):
return ""
def __getattr__(self, name):
print(
Fore.RED +
f"\"{self._old_name}\" has been renamed \"{self._new_name}\""
+ Style.RESET_ALL
)
return lambda *args, **kwargs: self._method(self._new_name, name, *args, **kwargs)
def _method(self, new_name, meth_name, *args, **kwargs):
args = [repr(v) for v in args]
args += [f"{k}={repr(v)}" for k, v in kwargs.items()]
args = ", ".join(args)
print(f"please use the following command instead:\n {new_name}.{meth_name}({args})")