Source code for dran.calibration.row_accessors

# =========================================================================== #
# File: row_accessors.py                                                      #
# Author: Pfesesani V. van Zyl                                                #
# Email: pfesi24@gmail.com                                                    #
# =========================================================================== #


# Library imports
# --------------------------------------------------------------------------- #
from typing import Any, Iterable, Mapping, MutableMapping
import numpy as np
# =========================================================================== #


# def require_keys(row: Mapping[str, Any], keys: Iterable[str], 
#                  context: str = "") -> None:
#     """
#     Ensure required keys exist in row.

#     Raises:
#         KeyError: If any key is missing.
#     """
#     missing = [k for k in keys if k not in row]
#     if missing:
#         prefix = f"{context}: " if context else ""
#         raise KeyError(f"{prefix} Missing required keys: {missing}")


[docs] def get_float( row: Mapping[str, Any], key: str, default: float = float("nan"), ) -> float: """ Read a float from a mapping. Returns default if the key is missing or invalid. """ try: value = row[key] if value is None: return default return float(value) except (KeyError, TypeError, ValueError): return default
# def set_if_finite(row: MutableMapping[str, Any], # key: str, value: float) -> None: # """ # Set key to value only if value is finite. # """ # if np.isfinite(value): # row[key] = value