Skip to content

Commit

Permalink
Allow more general NumberType instead of only float
Browse files Browse the repository at this point in the history
  • Loading branch information
thangleiter committed Jan 27, 2025
1 parent b6f2b32 commit 7f3c6ca
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
10 changes: 5 additions & 5 deletions src/qcodes/parameters/parameter_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -784,8 +784,8 @@ def set_wrapper(value: ParamDataType, **kwargs: Any) -> None:
return set_wrapper

def get_ramp_values(
self, value: float | Sized, step: float | None = None
) -> Sequence[float | Sized]:
self, value: NumberType | Sized, step: NumberType | None = None
) -> Sequence[NumberType | Sized]:
"""
Return values to sweep from current value to target value.
This method can be overridden to have a custom sweep behaviour.
Expand Down Expand Up @@ -859,7 +859,7 @@ def validate(self, value: ParamDataType) -> None:
validator.validate(value, self._validate_context)

@property
def step(self) -> float | None:
def step(self) -> NumberType | None:
"""
Stepsize that this Parameter uses during set operation.
Stepsize must be a positive number or None.
Expand All @@ -883,9 +883,9 @@ def step(self) -> float | None:
return self._step

@step.setter
def step(self, step: float | None) -> None:
def step(self, step: NumberType | None) -> None:
if step is None:
self._step: float | None = step
self._step: NumberType | None = step
elif not all(getattr(vals, "is_numeric", True) for vals in self._vals):
raise TypeError("you can only step numeric parameters")
elif not isinstance(step, NumberType):
Expand Down
9 changes: 6 additions & 3 deletions src/qcodes/parameters/permissive_range.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
from __future__ import annotations

import math
from typing import SupportsAbs
from typing import TYPE_CHECKING, SupportsAbs

if TYPE_CHECKING:
from qcodes.utils.types import NumberType


# could use numpy.arange here, but
# I'd like to be more flexible with the sign of step
def permissive_range(
start: float, stop: float, step: SupportsAbs[float]
) -> list[float]:
start: NumberType, stop: NumberType, step: SupportsAbs[NumberType]
) -> list[NumberType]:
"""
Returns a range (as a list of values) with floating point steps.
Always starts at start and moves toward stop, regardless of the
Expand Down

0 comments on commit 7f3c6ca

Please sign in to comment.