
    xKgH                     x   d Z ddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZmZmZmZ ddlmZmZmZ ddlmZ dd	lmZ dd
lmZ ej6                  j9                  d      xZZ eeej>                        Zej@                  fdz  Z!d Z"d Z#d Z$d Z%d Z&dGdZ'dGdZ(d Z)d Z* eeg d      Z+ eeg d      Z, eeg d      Z- eeg d      Z. eej^                         eej@                        d               Z0 eejb                  ej@                        d        Z2 eejf                  ej@                        d        Z4 ee5ej@                        d        Z6d Z7 eejp                  ge!  eejr                  ge! d               Z: eejv                  ge!  eejx                  ge! d                Z=d! Z> eej~                  ej@                  ej                         eej                  ej@                  ej                         eej~                  ej@                  ej                         eej                  ej@                  ej                        d"                             ZC eej~                  ej                  ej@                         eej                  ej                  ej@                         eej~                  ej                  ej@                         eej                  ej                  ej@                        d#                             ZD eej                  ej@                  ej                         eej                  ej@                  ej                         eej                  ej@                  ej                         eej                  ej@                  ej                         eej                  ej@                  ej                         eej                  ej@                  ej                         eej                  ej@                  ej                         eej                  ej@                  ej                        d$                                                         ZI eej                  ge!  eej                  ge! d%               ZJ eej                  ge! d&        ZKd' ZLd( ZMd) ZN eMd*e	j                        ZP eMd+e	j                        ZR eNd,      ZS eNd-      ZT eNd.      ZU eNd/      ZVej                  ePfej                  eRfej                  eSfej                  eTfej                  eUfej                  eVffD ]  \  Z]Z^  ee]ge! e^        d0 Z_d1 Z`d2 Zad3 Zbd4 Zc ecd5      Zd ecd6      Ze eejp                  ej^                  ej@                         eejr                  ej^                  ej@                        d7               Zf eejp                  ej@                  ej^                         eejr                  ej@                  ej^                        d8               Zg eejv                  ej^                  ej@                         eejx                  ej^                  ej@                        d9               Zh eejv                  ej^                  ej^                        d:        Zid; Zj ejd*      Zk ejd+      Zl ejd,      Zm ejd-      Zn ejd.      Zo ejd/      Zpej                  ekfej                  elfej                  emfej                  enfej                  eofej                  epffD ]"  \  ZqZ^  eeqgej^                  gdz   e^       $ d< Zr erd=      Zs erd>      Ztd? Zu eud=      Zv eud>      Zwd@ Zx exd=      Zy exd>      ZzdA Z{ e{d=      Z| e{d>      Z}dB Z~ eej                  ej^                         eej                  ej@                        dC               Z eej^                  ej                         eej@                  ej                        dD               Z eej@                  dE       eej^                  dE      dF               Z  eej                  ej^                  ej^                        ev         eej                  ej@                  ej@                        ev         eej                  ej^                  ej^                        es         eej                  ej@                  ej@                        es       y)Hz4
Implementation of operations on numpy timedelta64.
    N)Constant)typescgutils)create_constant_array)lower_builtinlower_constantimpl_ret_untracked
lower_cast)npdatetime_helpersnumpy_supportnpyfuncs)overload_method	IS_32BITS)LoweringError@      c                 B    | j                  |t        t        |            S )z2
    Multiply *val* by the constant *factor*.
    )mulr   TIMEDELTA64buildervalfactors      W/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/np/npdatetime.pyscale_by_constantr      s     ;;sH[&9::    c                 B    | j                  |t        t        |            S )z0
    Divide *val* by the constant *factor*.
    )sdivr   r   r   s      r   unscale_by_constantr    "   s     <<Xk6:;;r   c                 B    | j                  |t        t        |            S )z(
    Add constant *const* to *val*.
    )addr   r   )r   r   consts      r   add_constantr$   )   s     ;;sH[%899r   c                     t        j                  |j                  |j                        }|'d|j                   d|j                   }t        |      t	        |||      S )zk
    Scale the timedelta64 *val* from *srcty* to *destty*
    (both numba.types.NPTimedelta instances)
    z cannot convert timedelta64 from  to )r   get_timedelta_conversion_factorunitr   r   )contextr   r   srctydesttyr   msgs          r   scale_timedeltar-   0   sZ    
  ??

FKK!F~0DNC  Wc622r   c                    t        j                  |j                  |j                        }|t        |||      |fS t        j                  |j                  |j                        }||t        |||      fS t	        d|d|      )ze
    Scale either *left* or *right* to the other's unit, in order to have
    homogeneous units.
    zcannot normalize z and )r   r'   r(   r   RuntimeError)r)   r   leftrightlefttyrighttyr   s          r   normalize_timedeltasr4   >   s    
  ??W\\#F $7>>??fkk#F&wv>>>
vwG
HHr   c                 j    t        j                  | t        |      }| j                  t        |       |S )zM
    Allocate a NaT-initialized datetime64 (or timedelta64) result slot.
    name)r   alloca_oncer   storeNATr   r7   rets      r   alloc_timedelta_resultr=   O   s+     

g{
>CMM#sJr   c                 p    t        j                  | t        j                  j	                  d      |      }|S )z8
    Allocate an uninitialized boolean result slot.
       r6   )r   r8   llvmliteirIntTyper;   s      r   alloc_boolean_resultrC   X   s,     

gx{{':':1'=D
ICJr   c                 0    | j                  d|t              S )z?
    Return a predicate which is true if *val* is not NaT.
    !=)icmp_unsignedr:   )r   r   s     r   
is_not_natrG   `   s       sC00r   c                     t        |      dk\  sJ t        | |d         }|dd D ]  }| j                  |t        | |            }  |S )zH
    Return a predicate which is true if all of *vals* are not NaT.
    r?   r   N)lenrG   and_)r   valspredr   s       r   are_not_natrM   g   sP     t9>>gtAw'DABx||D*Wc":; Kr   )      rN      rN   rP   rN   rN   rP   rN   rP   rN   )rN      rN   rP   rN   rP   rN   rN   rP   rN   rP   rN   )r   rN   ;   Z   x               i  i0  iN  )r   rN   <   [   y               i  i1  iO  c                 R    t        |j                  t        j                              S N)
DATETIME64astypenpint64)r)   r   typyvals       r   datetime_constantrh      s     ell288,--r   c                 <    |d   }t        | ||j                  |      S Nr   )r	   return_typer)   r   sigargsress        r   timedelta_pos_implrp      s     
q'CgwEEr   c                 Z    |j                  |d         }t        | ||j                  |      S rj   )negr	   rk   rl   s        r   timedelta_neg_implrs      s)    
++d1g
CgwEEr   c                    |\  }t        |      }|j                  t        j                  ||            5 \  }}|5  |j	                  |j                  |      |       d d d        |5  |j	                  ||       d d d        d d d        |j                  |      }t        | ||j                  |      S # 1 sw Y   WxY w# 1 sw Y   FxY w# 1 sw Y   JxY wra   )	r=   if_elser   is_scalar_negr9   rr   loadr	   rk   )	r)   r   rm   rn   r   r<   then	otherwisero   s	            r   timedelta_abs_implrz      s    DC
 
)C	..w<	=AR$	MM'++c*C0 MM#s#  
>
 ,,s
CgwEE TY 
>	=s:   C"B3
C'B?:C3B<	8C?C	CCc           
         |\  }t        |      }t        t        d      }|j                  |j	                  d||            5 \  }}|5  |j                  t        t        d      |       ddd       |5  |j                  |j                  d||            5 \  }	}
|	5  |j                  t        t        d      |       ddd       |
5  |j                  t        t        d      |       ddd       ddd       ddd       ddd       |j                  |      }t        | ||j                  |      S # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   fxY w# 1 sw Y   jxY w# 1 sw Y   nxY w)z
    np.sign(timedelta64)
    r   >r?   N==)
r=   r   r   ru   icmp_signedr9   rF   rw   r	   rk   )r)   r   rm   rn   r   r<   zerogt_zerole_zeroeq_zerolt_zeroro   s               r   timedelta_sign_implr      s+    DC
 
)CK#D	,,S#t< 
0wMM(;2C8 !6!6tS$!G #&8wMM(;":C@ MM(;";SA 	# 	
 ,,s
CgwEE W
 WW	# # W	
 
s   E-!D1)
E-3#E!E!D=	=
E!E		(E0E!8E-1D:	6E-=EE	EEEE!!E*	&E--E6c                    |\  }}|j                   \  }}t        |      }t        j                  |t	        |||g            5  t        | ||||j                        }t        | ||||j                        }|j                  |j                  ||      |       d d d        |j                  |      }	t        | ||j                  |	      S # 1 sw Y   2xY wra   )rn   r=   r   	if_likelyrM   r-   rk   r9   r"   rw   r	   
r)   r   rm   rn   vavbtatbr<   ro   s
             r   timedelta_add_implr           HRxxHR
 
)C			7K"b$B	CWgr2sGWgr2sGgkk"b)3/ 
D ,,s
CgwEE 
D	C   ACCc                    |\  }}|j                   \  }}t        |      }t        j                  |t	        |||g            5  t        | ||||j                        }t        | ||||j                        }|j                  |j                  ||      |       d d d        |j                  |      }	t        | ||j                  |	      S # 1 sw Y   2xY wra   )rn   r=   r   r   rM   r-   rk   r9   subrw   r	   r   s
             r   timedelta_sub_implr      r   r   c                    t        |      }t        j                  |t        ||            5  t	        |t
        j                        r<|j                  ||j                        }|j                  ||      }t        | ||      }n|j                  ||      }t        | ||||      }|j                  ||       d d d        |j                  |      S # 1 sw Y   xY wra   )r=   r   r   rG   
isinstancer   Floatsitofptypefmul_cast_to_timedeltar   r-   r9   rw   )	r)   r   td_argtd_type
number_argnumber_typerk   r<   r   s	            r   _timedelta_times_numberr      s    
 
)C			7Jw$?	@k5;;/..9C,,sJ/C$Wgs;C++fj1C gwWkJc3 
A << 
A	@s   B
CCc           	          t        | ||d   |j                  d   |d   |j                  d   |j                        }t        | ||j                  |      S )Nr   r?   r   rn   rk   r	   rl   s        r   timedelta_times_numberr      Q    
 "'7"&q'388A;Q!"%//3C gwEEr   c           	          t        | ||d   |j                  d   |d   |j                  d   |j                        }t        | ||j                  |      S Nr?   r   r   rl   s        r   number_times_timedeltar      r   r   c           	         |\  }}|j                   d   }t        |      }|j                  t        ||      |j	                  t        j                  ||                  }t        j                  ||      5  t        |t        j                        r<|j                  ||j                        }	|j                  |	|      }	t        | ||	      }	n|j                  ||      }	t!        | ||	|j                   d   |j"                        }	|j%                  |	|       d d d        |j'                  |      }
t)        | ||j"                  |
      S # 1 sw Y   2xY wr   )rn   r=   rJ   rG   not_r   is_scalar_zero_or_nanr   r   r   r   r   r   fdivr   r   r-   rk   r9   rw   r	   )r)   r   rm   rn   r   r   r   r<   okr   ro   s              r   timedelta_over_numberr      s    FJ((1+K
 
)C	j&1ll7#@#@*#UV
XB			7B	'k5;;/..9C,,sJ/C$Wgs;C,,vz2C gw!hhqk3??<c3 
( ,,s
CgwEE 
(	's   5B!EEc           	      P   |\  }}|j                   \  }}t        |||g      }| j                  |j                        }	t	        j
                  ||	d      }
|j                  t        |	t        d            |
       t	        j                  ||      5  t        | |||||      \  }}|j                  ||	      }|j                  ||	      }|j                  |j                  ||      |
       d d d        |j                  |
      }t        | ||j                  |      S # 1 sw Y   2xY w)Nr<   r6   nan)rn   rM   get_value_typerk   r   r8   r9   r   floatr   r4   r   r   rw   r	   )r)   r   rm   rn   r   r   r   r   not_nanll_ret_typer<   ro   s               r   timedelta_over_timedeltar     s     HRxxHR'B8,G((9K


g{
?CMM(;e5s;			7G	,%gwBBGB^^B,^^B,gll2r*C0	 
-
 ,,s
CgwEE 
-	,s   ADD%c                 P   |\  }}|j                   \  }}| j                  |j                        }t        |||g      }	t	        j
                  ||d      }
t        |d      }t        |d      }|j                  ||
       t	        j                  ||	      5  t        | |||||      \  }}|j                  |j                  d||            }t	        j                  ||      5  |j                  d||      }|j                  ||j                  d||            }|j                  |      5 \  }}|5  |j                  |      5 \  }}|5  |j                  ||      }|j                  ||      }|j                  ||
       d d d        |5  |j!                  ||      }|j                  ||      }|j                  ||
       d d d        d d d        d d d        |5  |j                  ||      }|j                  ||
       d d d        d d d        d d d        d d d        |j#                  |
      }t%        | ||j                  |      S # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   ~xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr<   r6   r   r?   r}   <)rn   r   rk   rM   r   r8   r   r9   r   r4   r   r   or_ru   r   r   r"   rw   r	   )r)   r   rm   rn   r   r   r   r   r   r   r<   r   onedenom_okvanegrr   rx   ry   negthennegotherwisetopdivro   s                          r   timedelta_floor_div_timedeltar   +  s?   HRxxHR((9K'B8,G


g{
?CK#D
;
"CMM$			7G	,%gwBBGB<< 3 3D"d CDw1''R6E++eW%8%8b$%GHC%):$	 /3JG\$")++b#"6C"),,sB"7C#MM#s3 % *")++b#"6C"),,sB"7C#MM#s3 * 0  !,,r2.CMM#s+  &	 2	 
-, ,,s
CgwEE %W *\ 0/ T Y &%	 21	 
-	,s   AJ"AJ*J0I,	I 7I?
I 	7I I I,	
J%I8	?JJJII II  I)%I,	,I51J8J=JJ	JJ	JJ%c           
      *   |\  }}|j                   \  }}t        |||g      }| j                  |j                        }	t	        |      }
|j                  t        |
       t        |	d      }t        j                  ||      5  t        | |||||      \  }}|j                  |j                  d||            }t        j                  ||      5  |j                  d||      }|j                  d||      }|j                  ||      }|j                  |j                  ||      |j                  d||            }|j!                  |      5 \  }}|5  |j                  ||
       d d d        |5  |j                  |j#                  ||      |
       d d d        d d d        d d d        d d d        |j%                  |
      }t'        | ||j                  |      S # 1 sw Y   wxY w# 1 sw Y   VxY w# 1 sw Y   ZxY w# 1 sw Y   ^xY w# 1 sw Y   bxY w)Nr   r}   r|   )rn   rM   r   rk   r=   r9   r:   r   r   r   r4   r   r   sremr   rJ   ru   r"   rw   r	   )r)   r   rm   rn   r   r   r   r   r   r   r<   r   r   vaposvbposremcondrx   ry   ro   s                       r   timedelta_mod_timedeltar   N  s    HRxxHR'B8,G((9K
 
)CMM#sK#D			7G	,%gwBBGB<< 3 3D"d CDw1''R6E''R6E,,r2&C;;w||E59&224dCED&*;4MM#s+ MM'++c2"6<  ' 2	 
-" ,,s
CgwEE TY '& 21	 
-	,sn   AH	A=G=
G1G	#
G1-#G%	G1G= H	G"G1%G.*G11G:6G==H	H		Hc                       fd}|S )Nc           
         |\  }}|j                   \  }}t        |      }|j                  t        |||g            5 \  }	}
|	5  	 t	        | |||||      \  }}|j                  |j                  ||      |       d d d        |
5  dk(  r!|j                  t        j                  |       n |j                  t        j                  |       d d d        d d d        |j                  |      }t        | ||j                  |      S # t        $ r |j                  |       Y w xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   kxY wNrE   )rn   rC   ru   rM   r4   r9   rF   r/   r   true_bit	false_bitrw   r	   rk   )r)   r   rm   rn   r   r   r   r   r<   rx   ry   norm_anorm_bro   default_valuell_ops                 r   implz/_create_timedelta_comparison_impl.<locals>.implt  s'   R88R"7+__[2r(;<@QyU%9"b"b&:NFF MM'"7"7vv"NPST   D=MM'"2"2C8MM'"3"3S9  =" ll3!'7COOSII $ 6MM-56	   =<s`   D?D'D#D'<
D?AD3D?D$!D'#D$$D''D0	,D?3D<	8D??E )r   r   r   s   `` r   !_create_timedelta_comparison_implr   s  s    J0 Kr   c                       fd}|S )Nc           
         |\  }}|j                   \  }}t        |      }|j                  t        |||g            5 \  }	}
|	5  t	        | |||||      \  }}|j                  |j                  ||      |       d d d        |
5  |j                  t        j                  |       d d d        d d d        |j                  |      }t        | ||j                  |      S # 1 sw Y   exY w# 1 sw Y   FxY w# 1 sw Y   JxY wra   )rn   rC   ru   rM   r4   r9   r   r   r   rw   r	   rk   )r)   r   rm   rn   r   r   r   r   r<   rx   ry   r   r   ro   r   s                 r   r   z-_create_timedelta_ordering_impl.<locals>.impl  s    R88R"7+__[2r(;<@Qy!5Wb"b""6g11%H#N  g//5  = ll3!'7COOSII   =<s;   C77C;
C7!C+&C7C(	$C7+C4	0C77D r   r   r   s   ` r   _create_timedelta_ordering_implr     s    J Kr   r}   rE   r   <=r|   >=c           
         | j                  |t        t        d            }t        j                  | | j                  |t        t        d                  }t        j                  | | j                  |t        t        d                  }t        j                  | | j                  |t        t        d                  }| j                  || j                  ||            S )z_
    Return a predicate indicating whether *year_val* (offset by 1970) is a
    leap year.
    i     d     )	r"   r   rb   r   is_nullrJ   is_not_nullr   r   )r   year_valactual_yearmultiple_of_4not_multiple_of_100multiple_of_400s         r   is_leap_yearr     s    
 ++hT(BCKOOk8J+BCEM!--k8J+DEGook8J+DEGO<<$7IK Kr   c           
      n   t        j                  | t              }t        | |d      }| j	                  t        j
                  | |            5 \  }}|5  t        | |d      }| j                  |t        | |d            }t        | |d      }| j                  |t        | |d            }t        | |d      }	| j                  |t        | |	d            }| j                  ||       ddd       |5  t        | |d	      }
| j                  |t        | |
d            }t        | |
d
      }| j                  |t        | |d            }| j                  |t        | |d            }| j                  ||       ddd       ddd       | j                  |      S # 1 sw Y   xY w# 1 sw Y   .xY w# 1 sw Y   2xY w)zg
    Given a year *year_val* (offset to 1970), return the number of days
    since the 1970 epoch.
    im  r?      D   r   i,  r   Ni)r   r8   r   r   ru   
is_neg_intr$   r"   r    r   r9   rw   )r   r   r<   daysif_negif_pos	from_1968p_days	from_1900	from_1600	from_1972n_days	from_2000s                r   year_to_daysr     s    

g{
3CWh4D	++GX>	? %Wh:I[[!4Wi!KMF %Wi<I[[!4Wi!MOF %Wi=I[[!4Wi!MOFMM&#&% & 
 %Wh;I[[!4Wi!KMF %Wi=I[[!4Wi!MOF [[!4Wi!MOFMM&#&% + 
@P <<M V& V+ 
@	?s>   F+BF$
F+.BF2F+F	F+F(	$F++F4c                    t         j                  |   }t         j                  |   }|dk  s|dk\  r||fS |dk(  r|}t        | |      }nJt        j                  | dt
              }t        j                  | dt              }	t        j                  | t              }
t        j                  | |d      \  }}| j                  t        | |            5 \  }}|5  | j                  t        j                  | |d|d            }| j                  ||
       d d d        |5  | j                  t        j                  | |	d|d            }| j                  ||
       d d d        d d d        t        | |      }| j                  || j                  |
            }|dk(  rt        j                  | |d      \  }}|d	fS |d
fS # 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   uxY w)Nr   r   leap_year_months_accnormal_year_months_acc   T)inbounds   WD)r   DATETIME_UNITSr   r   global_constantr   r   r8   r   divmod_by_constantru   r   rw   gepr9   r"   )r   dt_valsrc_unit	dest_unitdest_unit_codesrc_unit_coder   days_val
leap_arraynormal_arrayr   yearmonthrx   ry   addendweeks_s                     r   reduce_datetime_for_unitr    s   '66yAN&55h?M]a/x2 ,,W6L-AC
..w8P/EG ""7K8 00&"Ee __\'489=NdI gkk':23UT'K Lfd+   gkk'<23UT'K Lfd+  :  .;;xd);<--gxCqcz}#   :9s<   G<F;
G<GG;G	 GG	GGc                     t        | |||      \  }}t        j                  ||      }|t        d|d|      t	        | ||      S )zC
    Convert datetime *dt_val* from *src_unit* to *dest_unit*.
    zcannot convert datetime64 from r&   )r  r   r'   r   r   )r   r   r   r  dt_unit	dt_factors         r   convert_datetime_for_arithr  )  s]    
 /9.OFG #BB7IVI*2I? @ 	@Wfi88r   c                       fd}|S )Nc                 V   t        |      }t        j                  |t        |||g            5  t	        ||||      }t        j                  ||      }t        |||      } t        |
      ||      }	|j                  |	|       d d d        |j                  |      S # 1 sw Y   xY wra   )r=   r   r   rM   r  r   r'   r   getattrr9   rw   )r)   r   dt_argr  r   td_unitret_unitr<   	td_factorret_val
ll_op_names             r   r   z'_datetime_timedelta_arith.<locals>.impl:  s    $W-wGff=M(NO/07CF*JJ#I&w	BF2ggz266BGMM'3' P ||C   POs   ABB(r   )r  r   s   ` r   _datetime_timedelta_arithr  9  s    ! Kr   r"   r   c           	          |\  }}|j                   \  }}t        | |||j                  ||j                  |j                  j                        }t	        | ||j                  |      S ra   rn   _datetime_plus_timedeltar(   rk   r	   	r)   r   rm   rn   r  r   dt_typer   ro   s	            r   datetime_plus_timedeltar   O  _     NFFxxGW
"7G#)7<<#)7<<#&??#7#79C gwEEr   c           	          |\  }}|j                   \  }}t        | |||j                  ||j                  |j                  j                        }t	        | ||j                  |      S ra   r  )	r)   r   rm   rn   r   r  r   r  ro   s	            r   timedelta_plus_datetimer#  [  r!  r   c           	          |\  }}|j                   \  }}t        | |||j                  ||j                  |j                  j                        }t	        | ||j                  |      S ra   )rn   _datetime_minus_timedeltar(   rk   r	   r  s	            r   datetime_minus_timedeltar&  i  s_     NFFxxGW
#GW$*GLL$*GLL$'OO$8$8:C gwEEr   c                    |\  }}|j                   \  }}|j                  }|j                  }	|j                  j                  }
t        |      }t	        j
                  |t        |||g            5  t        ||||
      }t        |||	|
      }|j                  ||      }|j                  ||       d d d        |j                  |      }t        | ||j                  |      S # 1 sw Y   2xY wra   )rn   r(   rk   r=   r   r   rM   r  r   r9   rw   r	   )r)   r   rm   rn   r   r   r   r   unit_aunit_br  r<   r  ro   s                 r   datetime_minus_datetimer*  w  s    FBXXFBWWFWWF##H
 
)C			7K"b$B	C'VXF'VXF++b"%gs#	 
D
 ,,s
CgwEE 
D	Cs   0AC""C+c                       fd}|S )Nc                    |\  }}|j                   \  }}|j                  }|j                  }	t        j                  ||	      }
t	        |      }|j                  t        |||g            5 \  }}|5  t        ||||
      }t        |||	|
      }|j                  ||      }|j                  ||       d d d        |5  dk(  rt        j                  }nt        j                  }|j                  ||       d d d        d d d        |j                  |      }t        | ||j                  |      S # 1 sw Y   }xY w# 1 sw Y   FxY w# 1 sw Y   JxY wr   )rn   r(   r   get_best_unitrC   ru   rM   r  r   r9   r   r   r   rw   r	   rk   )r)   r   rm   rn   r   r   r   r   r(  r)  r  r<   rx   ry   r   r   r  ro   r   s                     r   r   z._create_datetime_comparison_impl.<locals>.impl  s-   BB%33FFC"7+__[2r(;<@Qy3R33R3!--eVVDgs+  D=%..G%//Ggs+  = ll3!'7COOSII   =<s=   ,E2AD04
E>9D<7E0D9	5E<E	EEr   r   s   ` r    _create_datetime_comparison_implr.    s    J0 Kr   c                       fd}|S )Nc                    |\  }}t        ||      }t        ||      }|j                  d||      }|j                  |||      }	
r||}}|j                  ||	|      }	|j                  ||	|      }	t        | ||j                  |	      S Nr   rG   r   selectr	   rk   r)   r   rm   rn   in1in2in1_not_natin2_not_nat
in1_ge_in2ro   NAT_DOMINATESs             r   datetime_max_implz1_gen_datetime_max_impl.<locals>.datetime_max_impl       S #. #.((sC8
nnZc2CCnn[#s3nn[#s3!'7COOSIIr   r   )r:  r;  s   ` r   _gen_datetime_max_implr=        J r   TFc                       fd}|S )Nc                    |\  }}t        ||      }t        ||      }|j                  d||      }|j                  |||      }	
r||}}|j                  ||	|      }	|j                  ||	|      }	t        | ||j                  |	      S Nr   r2  r)   r   rm   rn   r5  r6  r7  r8  
in1_le_in2ro   r:  s             r   datetime_min_implz1_gen_datetime_min_impl.<locals>.datetime_min_impl  r<  r   r   )r:  rD  s   ` r   _gen_datetime_min_implrE    r>  r   c                       fd}|S )Nc                    |\  }}t        ||      }t        ||      }|j                  d||      }|j                  |||      }	
r||}}|j                  ||	|      }	|j                  ||	|      }	t        | ||j                  |	      S r1  r2  r4  s             r   timedelta_max_implz3_gen_timedelta_max_impl.<locals>.timedelta_max_impl  r<  r   r   )r:  rH  s   ` r   _gen_timedelta_max_implrI        J r   c                       fd}|S )Nc                    |\  }}t        ||      }t        ||      }|j                  d||      }|j                  |||      }	
r||}}|j                  ||	|      }	|j                  ||	|      }	t        | ||j                  |	      S rA  r2  rB  s             r   timedelta_min_implz3_gen_timedelta_min_impl.<locals>.timedelta_min_impl  r<  r   r   )r:  rM  s   ` r   _gen_timedelta_min_implrN    rJ  r   c                    |j                  t              }|j                  d||      }|j                  |      5 \  }}|5  |j	                  t
        |       d d d        |5  |j	                  |j                  |t              |       d d d        d d d        |j                  |      S # 1 sw Y   SxY w# 1 sw Y   .xY w# 1 sw Y   2xY w)Nuno)allocar   fcmp_unorderedru   r9   r:   fptosirw   )r)   r   r   temp
val_is_nanrx   elss          r   r   r     s    >>+&D''sC8J		$ )# MM#t$  MM'..k:DA  
% << T S 
%	$s;   C B)
C!'B5C)B2	.C5B>	:CC
c                 2    t        j                  | |||      S ra   )r   np_datetime_isnat_impl)r)   r   rm   rn   s       r   _np_isnat_implrY    s     **7GS$GGr   c                 R    |j                   dk7  rd| d| d| d}t        |      |S )Nr   zCannot cast r&   z as z is not 64 bits wide.)bitwidth
ValueError)r)   r   fromtytotyr   r,   s         r   _cast_npdatetime_int64r_  !  s:     }}VHDd4&8MNoJr   __hash__c                 "    t         rd }|S d }|S )Nc                 6   t        j                  |       } | dk  rt        j                  |       }nNt        j                  |       dz  dz	  }t        j                  |       dz  }t        j                  |d|z  z         }|dk(  rt        j                  d      }|S )Nil            l    iCB r~   r   )rd   re   int32)xyhilos       r   r   z ol_hash_npdatetime.<locals>.impl.  s~    A9}HHQKhhqk$662=hhqk$66HHR7b.01BwHHRLHr   c                     t        j                  |       dk(  rt        j                  d      S t        j                  |       S )Nr~   r   )rd   re   )re  s    r   r   z ol_hash_npdatetime.<locals>.impl:  s.    xx{b xx|#88A;r   r   )re  r   s     r   ol_hash_npdatetimerj  *  s     
	  K		 Kr   )r<   )__doc__numpyrd   operatorllvmlite.irr@   r   
numba.corer   r   numba.core.cgutilsr   numba.core.imputilsr   r   r	   r
   numba.npr   r   r   numba.extendingr   numba.core.configr   numba.core.errorsr   rA   rB   rb   r   r:   NPTimedeltaTIMEDELTA_BINOP_SIGr   r    r$   r-   r4   r=   rC   rG   rM   normal_year_monthsleap_year_monthsr   r   
NPDatetimerh   posrp   rr   rs   absrz   r   r"   iaddr   r   isubr   r   r   Integerimulr   r   r   truedivitruedivfloordiv	ifloordivr   r   r   r   r   r   r   timedelta_eq_timedelta_implr   timedelta_ne_timedelta_impltimedelta_lt_timedelta_impltimedelta_le_timedelta_impltimedelta_gt_timedelta_impltimedelta_ge_timedelta_impleqneltlegtgeop_funcr   r   r  r  r  r  r%  r   r#  r&  r*  r.  datetime_eq_datetime_impldatetime_ne_datetime_impldatetime_lt_datetime_impldatetime_le_datetime_impldatetime_gt_datetime_impldatetime_ge_datetime_implopr=  datetime_maximum_impldatetime_fmax_implrE  datetime_minimum_impldatetime_fmin_implrI  timedelta_maximum_impltimedelta_fmax_implrN  timedelta_minimum_impltimedelta_fmin_implr   isnatrY  r_  rj  datetime_minimumdatetime_maximumr   r   r   <module>r     s	        % 4A A @ @ + ' + $;;..r2 2
[{.223((*Q. ;<:3I"1 +46  )46  /;=  -;= 
   !!!". # ". x||U../F 0F
 x||U../F 0F
 sE%%&	F '	FF, x||212x}}323	F 4 3	F x||212x}}323	F 4 3	F" x||U..>x}}e//?x||U..<x}}e//=F > = @ ?F x||U]]E,=,=>x}}emmU->->?x||U[[%*;*;<x}}ekk5+<+<=F > = @ ?F x!2!2EMMBx  %"3"3U]]Cx  %"3"3U]]Cx!!5#4#4emmDx!2!2EKK@x  %"3"3U[[Ax  %"3"3U[[Ax!!5#4#4ekkBF C B B A E D D CF. x6"56x  7#67F 8 7F  x  7#67 F 8 FD FJ8& @'

 ?'

 =cB =dC =cB =dC ;; ;<;; ;<;;!<=;; ;<;;!<=;; ;<>IC -M#,+,T2>K 3l*Z9   5U; 5e< 
 x||U--u/@/@Ax}}e..0A0ABF C BF x||U..0@0@Ax}}e//1A1ABF C BF x||U--u/@/@Ax}}e..0A0ABF C BF x||U--u/?/?@F AF$8 =TB <TB <SA <TB <SA <TB ++89++89++89++89++89++89;HB -M",(()!+,T2;$ /t4 +E2 $ /t4 +E2 $ 16 -e4 $ 16 -e4  rxx))*rxx**+H , +H Eemm,Eu}}- . - ""J/!!:. / 0* W 1153C3CUEUEU VWl m X 1153D3DeFWFW XYn o V 1153C3CUEUEU VWl m X 1153D3DeFWFW XYn or   