Source code for piel.units.match

from typing import Optional
from piel.types import Unit


[docs] def get_unit_by_datum(datum: str) -> Optional[Unit]: """ Retrieves a Unit instance based on the datum type. Args: datum (str): The datum type (e.g., 'voltage', 'current'). Returns: Optional[Unit]: The corresponding Unit instance if found, else None. """ import piel.types.units as units exact_match = None for attr_name in dir(units): attr = getattr(units, attr_name) if isinstance(attr, Unit) and attr.datum.lower() == datum.lower(): if attr.base == 1: # Prioritize units with base 1 (e.g., 's' for second) return attr if exact_match is None: exact_match = attr return exact_match