
    i                        S r SSKrSSKrSSKJrJrJrJr   " S S\5      r\" SSS5      r\" SSS5      r	\" SS5      r
S rS	 rS
 r\R                  S:  a  S r\R                   r\R$                  rO
S rSS jr\r\4S jrS rS rg)zDate/Time utilities    N)datetimedate	timedeltatimezonec                   &    \ rS rSrS rS rS rSrg)NullDatetime   c                     g)NF selfs    :/app/mltbenv/lib/python3.13/site-packages/gallery_dl/dt.py__bool__NullDatetime.__bool__   s        c                     gNz[Invalid DateTime]r   r   s    r   __str__NullDatetime.__str__       #r   c                     gr   r   )r   format_specs     r   
__format__NullDatetime.__format__   r   r   r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r   r   r   r   r      s    $$r   r      i  c                     U R                   b-  U R                  [        R                  5      R	                  S SS9$ U R
                  (       a  U R	                  SS9$ U $ )Nr   )tzinfomicrosecond)r#   )r"   
astimezoner   utcreplacer#   dts    r   	normalizer)   !   sN     
yy}}X\\*22$A2NN	~~zzaz((Ir   c                     U (       d  [         $ [        U [        5      (       a  [        U 5      $ [        U [        5      (       a  [        U 5      =n[         La  U$ [        U 5      $ )z.Convert 'value' to a naive UTC datetime object)NONE
isinstancer   r)   str	parse_isoparse_ts)valuer(   s     r   convertr1   +   sO    %""%5)9#92$"F	E?r   c                 n     [        [        R                  " X5      5      $ ! [         a	    [        s $ f = f)z'Parse 'dt_string' according to 'format')r)   r   strptime	Exceptionr+   )	dt_stringformats     r   parser7   6   s1    **9=>>    ! 44i  c                      U S   S:X  a  U SS n OU S   S;   a  U SS  SU SS  3n [        [        R                  " U 5      5      $ ! [         a	    [        s $ f = f)#Parse 'dt_string' as ISO 8601 valueZNz+-:r)   r   fromisoformatr4   r+   r5   s    r   r.   r.   @   sr    		}#%crN	2$&("~.a	"#/?@	X33I>?? 	K	s   AA AAc                 n     [        [        R                  " U 5      5      $ ! [         a	    [        s $ f = f)r:   r@   rB   s    r   r.   r.   R   s1    	X33I>?? 	K	r8   c           	      V    [         R                  " U 5      u	  pp4pV    n[        XX4XV5      $ )z,Convert Unix timestamp to naive UTC datetime)timegmtimer   )tsYmdHMS_s           r   from_tsrO   Y   s+    $(KKO!aA!QaA))r   c                 P     [        [        U 5      5      $ ! [         a    Us $ f = f)z.Create a datetime object from a Unix timestamp)rO   intr4   )rG   defaults     r   r/   r/   a   s*    s2w s    %%c                 "    U [         -
  [        -  $ )z,Convert naive UTC datetime to Unix timestamp)EPOCHSECONDr'   s    r   to_tsrV   i   s    J&  r   c                 V     [        U [        -
  [        -  5      $ ! [         a     gf = f)z3Convert naive UTC datetime to Unix timestamp string )r-   rT   rU   r4   r'   s    r   to_ts_stringrY   n   s-    BJ6)** s    
(()N)__doc__sysrE   r   r   r   r   r   r+   rT   rU   r)   r1   r7   
hexversionr.   utcfromtimestamprO   utcnownowr/   rV   rY   r   r   r   <module>r`      s     
  8 8	$8 	$ Aq!q!	1a >>I ''G
//C*
 C  !
r   