def rescale(self, quantity: pq.Quantity): if not isinstance(quantity, pq.Quantity): raise TypeError(f"Expected Quantity, got '{type(quantity)}'") dimensionality = quantity.dimensionality.simplified for reference in self.units_all: if reference.dimensionality.simplified == dimensionality: return quantity.rescale(reference) raise ValueError(f"Unknown units: '{quantity.units}'")
def quantity_concat(a: Quantity, b: Quantity) -> Quantity: return np.concatenate([a, b.rescale(a.units)]) * a.units
def put(self, obj: pq.Quantity): assert isinstance(obj, pq.Quantity) obj = obj.rescale(pq.mL) return obj.item()