Fix issues 2
This commit is contained in:
@@ -177,24 +177,29 @@ class TrainingDataOrchestrator:
|
||||
raise ValueError(f"Failed to prepare training data: {str(e)}")
|
||||
|
||||
def _extract_sales_date_range(self, sales_data: List[Dict[str, Any]]) -> DateRange:
|
||||
"""Extract date range from sales data with timezone handling"""
|
||||
"""Extract date range from sales data with timezone handling and strict date format."""
|
||||
if not sales_data:
|
||||
raise ValueError("No sales data provided")
|
||||
|
||||
dates = []
|
||||
|
||||
for record in sales_data:
|
||||
date_value = record.get('date')
|
||||
if date_value:
|
||||
# ✅ FIX: Ensure timezone-aware datetime
|
||||
if isinstance(date_value, str):
|
||||
dt = pd.to_datetime(date_value)
|
||||
if dt.tz is None:
|
||||
dt = dt.replace(tzinfo=timezone.utc)
|
||||
dates.append(dt.to_pydatetime())
|
||||
elif isinstance(date_value, datetime):
|
||||
if date_value.tzinfo is None:
|
||||
date_value = date_value.replace(tzinfo=timezone.utc)
|
||||
dates.append(date_value)
|
||||
if not date_value:
|
||||
continue # Skip records with missing date
|
||||
|
||||
if isinstance(date_value, str):
|
||||
# Parse string with explicit format
|
||||
dt = pd.to_datetime(date_value, format='mixed', errors='raise')
|
||||
if dt.tz is None:
|
||||
dt = dt.tz_localize('UTC') # Assign UTC timezone if none
|
||||
dates.append(dt.to_pydatetime())
|
||||
elif isinstance(date_value, datetime):
|
||||
if date_value.tzinfo is None:
|
||||
date_value = date_value.replace(tzinfo=timezone.utc)
|
||||
dates.append(date_value)
|
||||
else:
|
||||
continue
|
||||
|
||||
if not dates:
|
||||
raise ValueError("No valid dates found in sales data")
|
||||
|
||||
Reference in New Issue
Block a user