Source code for exotools.db.star_system.uncertain_data

from dataclasses import dataclass
from typing import Generic, TypeVar

from astropy.table import Row

T = TypeVar("T")


[docs] @dataclass class UncertainValue(Generic[T]): central: T lower: T upper: T
[docs] class UncertainDataSource: def __init__(self, data: Row): self._value_cache = {} self._row = data def _uncertain_value_from_cache(self, parameter_name: str) -> UncertainValue: if parameter_name not in self._value_cache: c = self._row[parameter_name] lower, upper = self._row[f"{parameter_name}err1"], self._row[f"{parameter_name}err2"] self._value_cache[parameter_name] = UncertainValue( central=c, lower=c - (lower if lower is not None else 0), upper=c + (upper if upper is not None else 0), ) return self._value_cache[parameter_name]