You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
620 B
Python

from __future__ import annotations
from datetime import (
datetime,
)
from logging import (
INFO,
Logger,
)
log = Logger(__name__)
def multi_strptime(text: str, *format: str, log_level: int = INFO) -> datetime:
log.debug(f"try multi_strptime on {text!r} with {format!r}")
for fmt in format:
try:
return datetime.strptime(text, fmt)
except:
log.log(
level=log_level,
msg=f"failed multi_strptime on {text!r} with {fmt!r}, continue",
)
raise ValueError(f"failed all multi_strptime on {text!r} with {format!r}")