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)