
    i                         d dl m Z mZmZ 	 d dlmZ defdZdefdZde d	e fd
Z	de d	efdZ
de d	efdZy# e$ r dZY .w xY w)    )datetimetimezone	timedelta)ZoneInfoNtz_namec                     t         	 t        |       S | dk(  rt        t        d            S t        j                  S # t        $ r Y 5w xY w)NzEurope/Moscow   )hours)r   	Exceptionr   r   utc)r   s    E/home/konnilol/Documents/work/radario-client-data/scripts/tz_utils.pyget_tzr   	   sP    	G$$ /!	*++<<  		s   
= 	A	A	dt_strc                     | sy	 t        j                  |       S # t        $ r9 	 t        j                  | j                  dd            cY S # t        $ r Y Y yw xY ww xY w)zh
    Parses ISO strings like:
    2026-02-14T11:00:00.000+00:00
    Returns aware datetime or None.
    NZz+00:00)r   fromisoformatr   replace)r   s    r   parse_iso_datetimer      sb     %%f-- 	))&..h*GHH 		s,    	A$AA	AAAAdtreturnc                     | y | j                    | j                  t        j                        } | j	                  |      S )N)tzinfo)r   r   r   r   
astimezone)r   tzs     r   to_timezoner   &   s7    	z	yyZZx||Z,==    c                 ,    | r| j                  d      S dS )Nz%Y-%m-%d %H:%M strftimer   s    r   format_moscow_ymd_hmr"   .       ,.2;;'(6B6r   c                 ,    | r| j                  d      S dS )Nz%d-%m-%Y_%H-%Mr   r   r!   s    r   format_stamp_ddmmyyyy_hhmmr%   2   r#   r   )r   r   r   zoneinfor   r   strr   r   r   r"   r%    r   r   <module>r)      s{    2 2!
	C 	s "H X 7X 7# 778 7 7[  Hs   7 A A