Source code for nrel.hive.model.request.request_rate_structure

from __future__ import annotations

from typing import NamedTuple, Dict

from nrel.hive.util.units import Currency


[docs]class RequestRateStructure(NamedTuple): """ A rate structure for a request. """ base_price: Currency = 0 price_per_mile: Currency = 0 minimum_price: Currency = 0
[docs] @classmethod def from_row(cls, row: Dict[str, str]) -> RequestRateStructure: if "base_price" not in row: raise IOError("cannont load rate structure without base_price") elif "price_per_mile" not in row: raise IOError("cannont load rate structure without price_per_mile") elif "minimum_price" not in row: raise IOError("cannont load rate structure without minimum_price") else: return RequestRateStructure( base_price=float(row["base_price"]), price_per_mile=float(row["price_per_mile"]), minimum_price=float(row["minimum_price"]), )