Spaces:
Running
Running
from datetime import datetime | |
from pydantic import BeforeValidator | |
def timestamp_to_str(timestamp: datetime | str) -> str: | |
if isinstance(timestamp, str): | |
# Just check if the string is a valid datetime | |
try: | |
datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S %Z") # noqa: DTZ007 | |
result = timestamp | |
except ValueError as e: | |
msg = f"Invalid timestamp: {timestamp}" | |
raise ValueError(msg) from e | |
else: | |
result = timestamp.strftime("%Y-%m-%d %H:%M:%S %Z") | |
return result | |
def timestamp_with_fractional_seconds(timestamp: datetime | str) -> str: | |
if isinstance(timestamp, str): | |
# Just check if the string is a valid datetime | |
try: | |
datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S.%f %Z") # noqa: DTZ007 | |
result = timestamp | |
except ValueError as e: | |
msg = f"Invalid timestamp: {timestamp}" | |
raise ValueError(msg) from e | |
else: | |
result = timestamp.strftime("%Y-%m-%d %H:%M:%S.%f %Z") | |
return result | |
timestamp_to_str_validator = BeforeValidator(timestamp_to_str) | |
timestamp_with_fractional_seconds_validator = BeforeValidator(timestamp_with_fractional_seconds) | |