Source code for mcp_server_webcrawl.utils
import re
from datetime import datetime
[docs]
def to_isoformat_zulu(dt: datetime):
"""
Convert datetime to iso Z.
python<=3.10 struggles with Z and fractions of seconds, will
throw. smooth out the iso string, second precision isn't key here
"""
return dt.isoformat().replace("+00:00", "Z")
[docs]
def from_isoformat_zulu(dt_string: str | None) -> datetime:
"""
Convert ISO string to datetime.
python<=3.10 struggles with Z and fractions of seconds, will
throw. smooth out the iso string, second precision isn't key here
"""
if not dt_string:
return None
dt_string = dt_string.replace("Z", "+00:00")
match = re.match(r"(.*\.\d{6})\d*([-+]\d{2}:\d{2}|$)", dt_string)
if match:
dt_string = match.group(1) + (match.group(2) or "")
return datetime.fromisoformat(dt_string)