26 lines
859 B
Python
26 lines
859 B
Python
"""Formatting helpers used to convert things."""
|
|
|
|
from amberelectric.models.price_descriptor import PriceDescriptor
|
|
|
|
DESCRIPTOR_MAP: dict[str, str] = {
|
|
PriceDescriptor.SPIKE: "spike",
|
|
PriceDescriptor.HIGH: "high",
|
|
PriceDescriptor.NEUTRAL: "neutral",
|
|
PriceDescriptor.LOW: "low",
|
|
PriceDescriptor.VERYLOW: "very_low",
|
|
PriceDescriptor.EXTREMELYLOW: "extremely_low",
|
|
PriceDescriptor.NEGATIVE: "negative",
|
|
}
|
|
|
|
|
|
def normalize_descriptor(descriptor: PriceDescriptor | None) -> str | None:
|
|
"""Return the snake case versions of descriptor names. Returns None if the name is not recognized."""
|
|
if descriptor in DESCRIPTOR_MAP:
|
|
return DESCRIPTOR_MAP[descriptor]
|
|
return None
|
|
|
|
|
|
def format_cents_to_dollars(cents: float) -> float:
|
|
"""Return a formatted conversion from cents to dollars."""
|
|
return round(cents / 100, 2)
|