fix: Import date type explicitly to fix isinstance checks
When we import datetime from the datetime module, we get the datetime class, not the module. This caused isinstance() checks to fail when checking against datetime.date (which doesn't exist when datetime is a class). Solution: Import date explicitly from datetime module and use it in isinstance checks. Order matters - check datetime before date since datetime is a subclass of date. Fixes: "isinstance() arg 2 must be a type, a tuple of types, or a union" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"""Data transformation from MySQL to PostgreSQL format."""
|
||||
from typing import Dict, Any, List, Tuple
|
||||
from datetime import datetime, time, timedelta
|
||||
from datetime import datetime, time, timedelta, date
|
||||
from config import (
|
||||
RAWDATACOR_COLUMNS,
|
||||
ELABDATADISP_FIELD_MAPPING,
|
||||
@@ -15,25 +15,25 @@ class DataTransformer:
|
||||
"""Transform MySQL data to PostgreSQL format."""
|
||||
|
||||
@staticmethod
|
||||
def _convert_date(event_date: Any) -> datetime.date:
|
||||
"""Convert event_date to datetime.date object.
|
||||
def _convert_date(event_date: Any) -> date:
|
||||
"""Convert event_date to date object.
|
||||
|
||||
Handles multiple input types:
|
||||
- str: Parse from "YYYY-MM-DD" format
|
||||
- datetime.date: Return as-is
|
||||
- datetime.datetime: Extract date component
|
||||
- date: Return as-is
|
||||
- datetime: Extract date component
|
||||
|
||||
Args:
|
||||
event_date: Date value from MySQL (str or date)
|
||||
|
||||
Returns:
|
||||
datetime.date object
|
||||
date object
|
||||
"""
|
||||
if isinstance(event_date, str):
|
||||
return datetime.strptime(event_date, "%Y-%m-%d").date()
|
||||
elif isinstance(event_date, datetime):
|
||||
return event_date.date()
|
||||
elif isinstance(event_date, datetime.date):
|
||||
elif isinstance(event_date, date):
|
||||
return event_date
|
||||
else:
|
||||
raise ValueError(f"Unsupported event_date type: {type(event_date)}")
|
||||
|
||||
Reference in New Issue
Block a user