Add FastAPI backend for energy trading system
Implements FastAPI backend with ML model support for energy trading, including price prediction models and RL-based battery trading policy. Features dashboard, trading, backtest, and settings API routes with WebSocket support for real-time updates.
This commit is contained in:
36
backend/app/utils/helpers.py
Normal file
36
backend/app/utils/helpers.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Optional
|
||||
import pytz
|
||||
|
||||
|
||||
def utcnow() -> datetime:
|
||||
"""Get current UTC datetime."""
|
||||
return datetime.now(pytz.UTC)
|
||||
|
||||
|
||||
def parse_date(date_str: str) -> datetime:
|
||||
"""Parse date string to datetime."""
|
||||
formats = ["%Y-%m-%d", "%Y-%m-%dT%H:%M:%S", "%Y-%m-%d %H:%M:%S"]
|
||||
for fmt in formats:
|
||||
try:
|
||||
return datetime.strptime(date_str, fmt)
|
||||
except ValueError:
|
||||
continue
|
||||
raise ValueError(f"Unable to parse date: {date_str}")
|
||||
|
||||
|
||||
def format_timestamp(dt: datetime, format_str: str = "%Y-%m-%dT%H:%M:%S") -> str:
|
||||
"""Format datetime to string."""
|
||||
return dt.strftime(format_str)
|
||||
|
||||
|
||||
def calculate_time_delta(start: datetime, end: datetime) -> timedelta:
|
||||
"""Calculate time delta between two datetimes."""
|
||||
return end - start
|
||||
|
||||
|
||||
def safe_divide(a: float, b: float, default: float = 0.0) -> float:
|
||||
"""Safely divide two numbers with default fallback."""
|
||||
if b == 0:
|
||||
return default
|
||||
return a / b
|
||||
Reference in New Issue
Block a user