Source code for semi_cr.core.station.units
from pint import Quantity, UnitRegistry
ureg: UnitRegistry = UnitRegistry()
Q = ureg.Quantity
type VoltageLike = float | Quantity | str
[docs]
def as_volts(value: VoltageLike) -> float:
"""Converts to volts. Strings are parsed by pint, e.g. "20 mV"; bare numbers are taken as volts."""
if isinstance(value, str):
value = Q(value)
if isinstance(value, Quantity):
return float(value.m_as("V"))
return float(value)