Source code for smif.convert.unit
"""Handles conversion between units used in the `SosModel`
First implementation delegates to pint.
"""
import logging
from pint import UndefinedUnitError, UnitRegistry
LOGGER = logging.getLogger()
UNIT_REGISTRY = UnitRegistry()
[docs]def parse_unit(unit_string):
"""Parse a unit string (abbreviation or full) into a Unit object
Parameters
----------
unit : str
Returns
-------
quantity : :class:`pint.Unit`
"""
try:
unit = UNIT_REGISTRY.parse_units(unit_string)
except UndefinedUnitError:
LOGGER.warning("Unrecognised unit: %s", unit_string)
unit = None
return unit