Coverage for packages/postaguvercini/src/integrify/postaguvercini/types.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-10-19 02:39 +0000

1from datetime import datetime 

2from typing import Annotated 

3 

4from pydantic import BeforeValidator, Field 

5 

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

7 

8 

9def timestamp_to_str(value: str | datetime) -> 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 

13 if isinstance(value, str): 

14 try: 

15 datetime.strptime(value, FORMAT) 

16 except ValueError: 

17 return None 

18 

19 return value 

20 

21 return value.strftime(FORMAT) 

22 

23 

24DateTime = Annotated[ 

25 str | datetime, 

26 Field(default=None), 

27 BeforeValidator(timestamp_to_str), 

28 'PostaGuvercin-ə göndəriləcək timestamp (YYYY-mm-DD HH:MM:SS formatına salınır)', 

29]