flexmeasures.data.schemas.units

Classes

class flexmeasures.data.schemas.units.QuantityField(to_unit: str, *args, **kwargs)

Marshmallow/Click field for validating quantities against a unit registry.

The FlexMeasures unit registry is based on the pint library.

For example:
>>> percentage_field = QuantityField("%", validate=validate.Range(min=0, max=1))
>>> percentage_field.deserialize("2.5%")
<Quantity(2.5, 'percent')>
>>> percentage_field.deserialize(0.025)
<Quantity(2.5, 'percent')>
>>> power_field = QuantityField("kW", validate=validate.Range(max=ur.Quantity("1 kW")))
>>> power_field.deserialize("120 W")
<Quantity(0.12, 'kilowatt')>
__init__(to_unit: str, *args, **kwargs)
_deserialize(value, attr, obj, **kwargs) Quantity

Turn a quantity describing string into a Quantity.

_serialize(value, attr, data, **kwargs)

Turn a Quantity into a string in scientific format.

class flexmeasures.data.schemas.units.QuantityValidator(*, error: str | None = None)

Validator which succeeds if the value passed to it is a valid quantity.

__init__(*, error: str | None = None)