ó
    „ñ:iù  ã                   óÚ   • S r SSKrSSSSSSSS	S
SSSSSS.r\R                  " S5      R                  \R                  5      rS rS r	SSSSSSSSSSSS.r
S  rS! rS" rS# rS$ rS% rS& rg)'z�
Helper functions for np.timedelta64 and np.datetime64.
For now, multiples-of-units (for example timedeltas expressed in tens
of seconds) are not supported.
é    Né   é   é   é   é   é   é   é	   é
   é   é   é   é   )ÚYÚMÚWÚDÚhÚmÚsÚmsÚusÚnsÚpsÚfsÚasÚ Únatc                 ó4   • [         U    S:  [         U   S:  :H  $ )z:
Whether the *src* and *dest* units are of the same kind.
r   ©ÚDATETIME_UNITS©ÚsrcÚdests     Ú^/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/np/npdatetime_helpers.pyÚ	same_kindr&   (   s#   € ô ˜3Ñ !Ñ#¬¸Ñ)=ÀÑ)AÑBÐBó    c                 óv   • [         U    n [         U   nX:X  a  gU S:X  a  gX:”  a  gUS:X  a  gU S::  a  US:”  a  gg)NTr   Fr   r    r"   s     r%   Úcan_cast_timedelta_unitsr)   /   sO   € ô
 ˜Ñ
€CÜ˜$Ñ€DØ
ƒ{ØØ
ˆbƒyØØ
ƒzØØˆrƒzàØ
ˆaƒx�D˜1“HàØr'   )r   r   )r   r   )r   é   )r   é<   )r   r+   )r	   éè  )r
   r,   )r   r,   )r   r,   )r   r,   )r   r,   )r   r   r   r   r   r   r	   r
   r   r   r   c                 ó€   • U S:X  a  gU nSnX!:  a   [         U   u  p$X4-  nX!:  a  M  X!:X  a  U$ g! [         a     gf = f)z¹
Return an integer multiplier allowing to convert from *big_unit_code*
to *small_unit_code*.
None is returned if the conversion is not possible through a
simple integer multiplication.
r   r   N)Ú_factorsÚKeyError)Úbig_unit_codeÚsmall_unit_codeÚcÚfactorÚmults        r%   Ú_get_conversion_multiplierr5   U   sd   € ð ˜ÓØØ€AØ€FØ
Ó
ð	Ü˜q‘k‰GˆAð 	‰ˆð Õ
ð 	ÓØˆàøô ó 	áð	ús   ’0 °
=¼=c                 ó6   • [        [        U    [        U   5      $ )z`
Return an integer multiplier allowing to convert from timedeltas
of *src_unit* to *dest_unit*.
)r5   r!   )Úsrc_unitÚ	dest_units     r%   Úget_timedelta_conversion_factorr9   o   s"   € ô
 &¤n°XÑ&>Ü&4°YÑ&?óAð Ar'   c                 óŠ  • [         U    n[         U   nUS:X  d  US:X  a  U SS4$ US:  a  US:¼  a  [        SU < SU< S35      eSu  pEUS:X  a  US	:¼  a  S
nSnS	nO,US:X  a  S
nSnSnOUS:X  a  US	:¼  a  S
nSnS	nOUS:X  a  S
nSnSnX2:¼  a  [        X#5      nUc   X#45       eXU-  U4$ [        X25      nUc   X#45       eXXV-  4$ )a  
Compute a possible conversion for combining *datetime_unit* and
*timedelta_unit* (presumably for adding or subtracting).
Return (result unit, integer datetime multiplier, integer timedelta
multiplier). RuntimeError is raised if the combination is impossible.
r   r   r   zcannot combine datetime64(z) and timedelta64(Ú))r   r   r   r   i±: i�  ið
  iÀ  i@ƒ  )r!   ÚRuntimeErrorr5   )Údatetime_unitÚtimedelta_unitÚdt_unit_codeÚtd_unit_codeÚ	dt_factorÚ	td_factorr3   s          r%   Ú!get_datetime_timedelta_conversionrC   x   s1  € ô " -Ñ0€LÜ! .Ñ1€LØ�rÓ˜\¨RÓ/Ø˜a Ð"Ð"Ø�aÓ˜L¨AÓ-åÛ+«^ð=ó >ð 	>àÑ€Ið �qÓØ˜1ÓØ&ˆIØˆIØ‰LØ˜QÓØ&ˆIØˆIØˆLøØ	˜Ó	Ø˜1ÓØ&ˆIØ ˆIØ‰LØ˜QÓØ&ˆIØ$ˆIØˆLàÓ#Ü+¨LÓGˆØÑ!Ð? LÐ#?Ó?Ð!Ø¨6Ñ1°9Ð<Ð<ä+¨LÓGˆØÑ!Ð? LÐ#?Ó?Ð!Ø¨Ñ);Ð;Ð;r'   c                 ór   • [         U    n[         U   nUS:X  a  U$ US:X  a  U $ US:  a  US:¼  a  gX#:”  a  U $ U$ )z¥
Return the unit result of combining *datetime_unit* with *timedelta_unit*
(e.g. by adding or subtracting).  None is returned if combining
those units is forbidden.
r   r   Nr    )r=   r>   r?   r@   s       r%   Ú combine_datetime_timedelta_unitsrE   ¬   sX   € ô " -Ñ0€LÜ! .Ñ1€LØ�rÓØÐØ	˜Ó	ØÐØ�aÓ˜L¨AÓ-ØØÓ"ØÐàÐr'   c                 óX   • [         U    n[         U   nUS:X  a  U$ US:X  a  U $ X2:”  a  U$ U $ )z1
Get the best (i.e. finer-grained) of two units.
r   r    )Úunit_aÚunit_bÚaÚbs       r%   Úget_best_unitrK   À   s?   € ô 	�vÑ€AÜ�vÑ€AØˆBƒwØˆØˆBƒwØˆØƒuØˆØ€Mr'   c                 ó   • g ©N© ©rI   rJ   s     r%   Údatetime_minimumrP   Ï   ó   € Ør'   c                 ó   • g rM   rN   rO   s     r%   Údatetime_maximumrS   Ó   rQ   r'   )Ú__doc__ÚnumpyÚnpr!   Útimedelta64ÚastypeÚint64ÚNATr&   r)   r.   r5   r9   rC   rE   rK   rP   rS   rN   r'   r%   Ú<module>r[      s»   ðñó ð 
Ø	
Ø	
à	
Ø	
Ø	
Ø	
Ø
Ø
Ø
Ø
Ø
Ø
Ø
ñ€ð$ 	‡n‚n�UÓ×"Ñ" 2§8¡8Ó,€òCòð0 ØØØØØØØØØØñ€òò4Aò1<òhò(ò	ó	r'   