Coverage for src/integrify/lsim/types.py: 100%
15 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-01 02:22 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-01 02:22 +0000
1from datetime import datetime
2from typing import Annotated, Union
4from pydantic import BeforeValidator, Field
6FORMAT = '%Y-%m-%d %H:%M:%S'
9def timestamp_to_str(value: Union[str, datetime]) -> Union[str, None]:
10 """Verilmiş datetime-i uyğun string formata salır.
11 Əgər string şəklində verilibsə, format uyğunluğu yoxlanılır."""
12 if isinstance(value, str):
13 if value != 'NOW':
14 try:
15 datetime.strptime(value, FORMAT)
16 return value
17 except ValueError:
18 return None
20 return value
22 return value.strftime(FORMAT)
25DateTime = Annotated[
26 Union[str, datetime],
27 Field(default='NOW'),
28 BeforeValidator(timestamp_to_str),
29 'LSIM-ə göndəriləcək timestamp (YYYY-mm-DD HH:MM:SS formatına salınır)',
30]