Spaces:
Paused
Paused
File size: 1,726 Bytes
df9e23e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #!/usr/bin/env python3
"""Debug script to test the _parse_day function."""
import datetime as _dt
def _parse_day(day_value) -> _dt.date:
if isinstance(day_value, _dt.date):
return day_value
if isinstance(day_value, _dt.datetime):
print(f"Input is datetime: {day_value}, type: {type(day_value)}")
result = day_value.date()
print(f"Result of .date(): {result}, type: {type(result)}")
return result
if not day_value:
raise ValueError("Дата не зададзена.")
# Handle Unix timestamp (float) from Gradio DateTime component
try:
timestamp = float(str(day_value).strip())
# Unix timestamps are typically in seconds, check if it's reasonable
if timestamp > 1e9: # Unix timestamp for dates after 2001
# Use UTC to avoid timezone issues
result = _dt.datetime.fromtimestamp(timestamp, tz=_dt.timezone.utc).date()
print(f"Timestamp {timestamp} -> datetime -> date: {result}")
return result
except (ValueError, TypeError):
pass
# Try to parse as ISO format string
try:
return _dt.date.fromisoformat(str(day_value).strip())
except ValueError as exc:
raise ValueError(f"Няправільны фармат даты: {day_value}") from exc
if __name__ == "__main__":
# Test the datetime case
test_datetime = _dt.datetime(2025, 10, 24, 14, 30, 0)
print(f"Testing with datetime: {test_datetime}")
result = _parse_day(test_datetime)
print(f"Result: {result}, type: {type(result)}")
print(f"Expected: {_dt.date(2025, 10, 24)}, type: {type(_dt.date(2025, 10, 24))}")
print(f"Equal? {result == _dt.date(2025, 10, 24)}")
|