Source code for semi_cr.core.lab.parameters.betterdelegate
from qcodes.parameters import DelegateParameter, Parameter
from typing import Any
[docs]
class BetterDelegateParameter(DelegateParameter):
# def get_ramp_values(self, value: float | Sized, step: float | None = None) -> Sequence[float | Sized]:
# if step is None:
# return [value]
# if isinstance(value, Sized) and len(value) > 1:
# raise RuntimeError("...")
# if self.get_latest() is None:
# if self.get() is not None:
# start_value = self.get()
# else:
# start_value = 0
# else:
# start_value = self.get_latest()
# if TYPE_CHECKING:
# assert isinstance(value, float)
# return permissive_range(start_value, value, step)[1:] + [value]
[docs]
def validate(self, value: Any | None) -> None:
if value is None:
value = 0
super().validate(value)
def __repr__(self) -> str:
def repr_(obj: Parameter | None) -> str:
return (
(f"{obj.__module__}.{type(obj).__name__}: {obj.full_name} at {id(obj)}")
if obj is not None else "None"
)
return f"<{repr_(self)} with source <{repr_(self.source)}>>"
[docs]
class NoneParameter(Parameter):
def __init__(self, **kwargs: Any):
super().__init__(name="NoneParameter", **kwargs)