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

1from datetime import datetime 

2from typing import Annotated, Union 

3 

4from pydantic import BeforeValidator, Field 

5 

6FORMAT = '%Y-%m-%d %H:%M:%S' 

7 

8 

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 

19 

20 return value 

21 

22 return value.strftime(FORMAT) 

23 

24 

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]