add parse date flexible

This commit is contained in:
Manoj Aggarwal 2026-02-04 13:18:33 -08:00
parent 48e646607b
commit 33165830e5
2 changed files with 43 additions and 2 deletions

View file

@ -28,6 +28,34 @@ def get_current_timestamp() -> datetime:
return datetime.now(UTC)
def parse_date_flexible(date_str: str) -> datetime:
"""
Parse date from multiple common formats.
Args:
date_str: Date string to parse
Returns:
Parsed datetime object
Raises:
ValueError: If unable to parse the date string
"""
formats = ["%Y-%m-%d", "%Y-%m-%dT%H:%M:%S"]
for fmt in formats:
try:
return datetime.strptime(date_str.rstrip("Z"), fmt)
except ValueError:
continue
# Try ISO format as fallback
try:
return datetime.fromisoformat(date_str.replace("Z", "+00:00"))
except ValueError:
raise ValueError(f"Unable to parse date: {date_str}")
async def check_duplicate_document_by_hash(
session: AsyncSession, content_hash: str
) -> Document | None:
@ -168,7 +196,13 @@ def calculate_date_range(
"adjusting end date to next day to ensure valid date range"
)
# Parse end_date and add 1 day
end_dt = datetime.strptime(end_date_str, "%Y-%m-%d")
try:
end_dt = parse_date_flexible(end_date_str)
except ValueError:
logger.warning(
f"Could not parse end_date '{end_date_str}', using current date"
)
end_dt = datetime.now()
end_dt = end_dt + timedelta(days=1)
end_date_str = end_dt.strftime("%Y-%m-%d")
logger.info(f"Adjusted end date to {end_date_str}")

View file

@ -27,6 +27,7 @@ from .base import (
get_connector_by_id,
get_current_timestamp,
logger,
parse_date_flexible,
update_connector_last_indexed,
)
@ -226,7 +227,13 @@ async def index_google_calendar_events(
"adjusting end date to next day to ensure valid date range"
)
# Parse end_date and add 1 day
end_dt = datetime.strptime(end_date_str, "%Y-%m-%d")
try:
end_dt = parse_date_flexible(end_date_str)
except ValueError:
logger.warning(
f"Could not parse end_date '{end_date_str}', using current date"
)
end_dt = datetime.now()
end_dt = end_dt + timedelta(days=1)
end_date_str = end_dt.strftime("%Y-%m-%d")
logger.info(f"Adjusted end date to {end_date_str}")