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
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}")
|