Ë
    èÿæiL"  ã                   óì  — d Z ddlZddlmZmZ ddlmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZ ddlmZ  G d„ de«      Z G d	„ d
ej0                  «      Z G d„ de«      Z G d„ dej6                  «      Z e	j:                  e«      d„ «       Z e	j:                  e«      d„ «       Z e
d«      d„ «       Z  e
e«      d„ «       Z! ee«       G d„ dejD                  «      «       Z# ee«       G d„ dejD                  «      «       Z$ eedd«        eedd«        eedd«       d„ Z%d„ Z& ed e«      d!„ «       Z' ed e«      d"„ «       Z( edeejR                  «      d#„ «       Z* edeejR                  «      d$„ «       Z+ eeejR                  e«      d%„ «       Z, ee«      d&„ «       Z- ee«      d'„ «       Z. ee«      d(„ «       Z/ ee«      d)„ «       Z0 eed*«      d+„ «       Z1 ee2«      d,„ «       Z3 eed-«      d.„ «       Z4y)/z.
Implementation of a minimal Pandas-like API.
é    N)ÚtypesÚcgutils)Úmodels)Útypeof_implÚtype_callableÚregister_modelÚlower_builtinÚboxÚunboxÚNativeValueÚoverloadÚoverload_attributeÚoverload_methodÚmake_attribute_wrapper)Úimpl_ret_borrowedc                   ó<   — e Zd ZdZd„ Zd„ Zed„ «       Zed„ «       Zy)ÚIndexz-
    A minimal pandas.Index-like object.
    c                 ól   — t        |t        j                  «      sJ ‚|j                  dk(  sJ ‚|| _        y ©Né   )Ú
isinstanceÚnpÚndarrayÚndimÚ_data)ÚselfÚdatas     úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/pdlike_usecase.pyÚ__init__zIndex.__init__   s-   € Ü˜$¤§
¡
Ô+Ð+Ð+Ø�y‰y˜AŠ~Ðˆ~Øˆ�
ó    c                 ó,   — t        | j                  «      S ©N)Úiterr   ©r   s    r   Ú__iter__zIndex.__iter__   s   € Ü�D—J‘JÓÐr    c                 ó.   — | j                   j                  S r"   )r   Údtyper$   s    r   r'   zIndex.dtype   ó   € à�z‰z×ÑÐr    c                 ó.   — | j                   j                  S r"   )r   Úflagsr$   s    r   r*   zIndex.flags!   r(   r    N©	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r%   Úpropertyr'   r*   © r    r   r   r      s9   „ ñòò
 ð ñ ó ð ð ñ ó ñ r    r   c                   óN   ‡ — e Zd ZdZdZˆ fd„Zed„ «       Zed„ «       Zdd„Z	ˆ xZ
S )Ú	IndexTypez+
    The type class for Index objects.
    éè  c                 ó>   •— || _         t        t        | �  |d|«       y r   )ÚpyclassÚsuperr3   r   )r   r'   Úlayoutr6   Ú	__class__s       €r   r   zIndexType.__init__,   s   ø€ ØˆŒÜŒi˜Ñ'¨¨q°&Õ9r    c                 óH   — | j                   | j                  | j                  fS r"   )r6   r'   r8   r$   s    r   ÚkeyzIndexType.key0   s   € à�|‰|˜TŸZ™Z¨¯©Ð4Ð4r    c                 óX   — t        j                  | j                  d| j                  «      S r   )r   ÚArrayr'   r8   r$   s    r   Úas_arrayzIndexType.as_array4   s   € ä�{‰{˜4Ÿ:™: q¨$¯+©+Ó6Ð6r    c                 ó†   — |dk(  sJ ‚|€| j                   }|xs | j                  } t        | «      ||| j                  «      S r   )r'   r8   Útyper6   ©r   r'   r   r8   s       r   ÚcopyzIndexType.copy8   sC   € Ø�qŠyÐˆyØˆ=Ø—J‘JˆEØÒ&˜4Ÿ;™;ˆØŒt�D‹z˜% ¨¯©Ó6Ð6r    )Nr   N©r,   r-   r.   r/   Úarray_priorityr   r0   r;   r>   rB   Ú__classcell__©r9   s   @r   r3   r3   &   sA   ø„ ñð €Nô:ð ñ5ó ð5ð ñ7ó ð7÷7r    r3   c                   ó<   — e Zd ZdZd„ Zd„ Zed„ «       Zed„ «       Zy)ÚSeriesz.
    A minimal pandas.Series-like object.
    c                 óž   — t        |t        j                  «      sJ ‚t        |t        «      sJ ‚|j                  dk(  sJ ‚|| _        || _        y r   )r   r   r   r   r   Ú_valuesÚ_index)r   r   Úindexs      r   r   zSeries.__init__E   sD   € Ü˜$¤§
¡
Ô+Ð+Ð+Ü˜%¤Ô'Ð'Ð'Ø�y‰y˜AŠ~Ðˆ~ØˆŒØˆ�r    c                 ó,   — t        | j                  «      S r"   )r#   rJ   r$   s    r   r%   zSeries.__iter__L   s   € Ü�D—L‘LÓ!Ð!r    c                 ó.   — | j                   j                  S r"   )rJ   r'   r$   s    r   r'   zSeries.dtypeO   ó   € à�|‰|×!Ñ!Ð!r    c                 ó.   — | j                   j                  S r"   )rJ   r*   r$   s    r   r*   zSeries.flagsS   rO   r    Nr+   r1   r    r   rH   rH   @   s9   „ ñòò"ð ñ"ó ð"ð ñ"ó ñ"r    rH   c                   óN   ‡ — e Zd ZdZdZˆ fd„Zed„ «       Zed„ «       Zdd„Z	ˆ xZ
S )Ú
SeriesTypez,
    The type class for Series objects.
    r4   c                 óÊ   •— t        |t        «      sJ ‚|| _        || _        t	        j
                  | j                  dd«      | _        d|›d|›d�}t        t        | �'  |«       y )Nr   ÚCzseries(z, Ú))
r   r3   r'   rL   r   r=   Úvaluesr7   rR   r   )r   r'   rL   Únamer9   s       €r   r   zSeriesType.__init__^   sR   ø€ Ü˜%¤Ô+Ð+Ð+ØˆŒ
ØˆŒ
Ü—k‘k $§*¡*¨a°Ó5ˆ�Ú#(ª%Ð0ˆÜŒj˜$Ñ(¨Õ.r    c                 ó2   — | j                   | j                  fS r"   )r'   rL   r$   s    r   r;   zSeriesType.keyf   s   € à�z‰z˜4Ÿ:™:Ð%Ð%r    c                 ó   — | j                   S r"   )rV   r$   s    r   r>   zSeriesType.as_arrayj   s   € à�{‰{Ðr    c                 ór   — |dk(  sJ ‚|dk(  sJ ‚|€| j                   } t        | «      || j                  «      S ©Nr   rT   )r'   r@   rL   rA   s       r   rB   zSeriesType.copyn   s?   € Ø�qŠyÐˆyØ˜Š}Ðˆ}Øˆ=Ø—J‘JˆEØŒt�D‹z˜% §¡Ó,Ð,r    r[   rC   rF   s   @r   rR   rR   X   sA   ø„ ñð €Nô/ð ñ&ó ð&ð ñó ð÷-r    rR   c                 ó¤   — t        | j                  |«      }|j                  dk(  sJ ‚t        |j                  |j
                  t        | «      «      S r   )r   r   r   r3   r'   r8   r@   )ÚvalÚcÚarrtys      r   Útypeof_indexr`   v   s=   € ä˜Ÿ	™	 1Ó%€EØ�:‰:˜Š?Ðˆ?Ü�U—[‘[ %§,¡,´°S³	Ó:Ð:r    c                 óÊ   — t        | j                  |«      }t        | j                  |«      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚t        |j                  |«      S r[   )r   rK   rJ   r   r8   rR   r'   )r]   r^   rL   r_   s       r   Útypeof_seriesrb   |   sU   € ä˜Ÿ
™
 AÓ&€EÜ˜Ÿ™ QÓ'€EØ�:‰:˜Š?Ðˆ?Ø�<‰<˜3ÒÐÐÜ�e—k‘k 5Ó)Ð)r    Ú__array_wrap__c                 ó   — d„ }|S )Nc                 ó”   — t        | t        t        f«      r2| j                  |j                  |j
                  |j                  ¬«      S y )N)r'   r   r8   )r   r3   rR   rB   r'   r   r8   )Ú
input_typeÚresults     r   Útyperztype_array_wrap.<locals>.typer†   s@   € Ü�j¤9¬jÐ"9Ô:Ø—?‘?¨¯©Ø(.¯©Ø*0¯-©-ð #ó 9ð 9ð ;r    r1   ©Úcontextrh   s     r   Útype_array_wraprk   „   s   € ò9ð €Lr    c                 ó   — d„ }|S )Nc                 óÊ   — t        |t        «      rSt        | t        j                  «      r8| j                  dk(  sJ ‚| j
                  dk(  sJ ‚t        | j                  |«      S y y )NrT   r   )r   r3   r   r=   r8   r   rR   r'   )r   rL   s     r   rh   z&type_series_constructor.<locals>.typer�   sU   € Ü�eœYÔ'¬J°t¼U¿[¹[Ô,IØ—;‘; #Ò%Ð%Ð%Ø—9‘9 ’>Ð!�>Ü˜dŸj™j¨%Ó0Ð0ð -JÐ'r    r1   ri   s     r   Útype_series_constructorrn   Ž   s   € ò1ð €Lr    c                   ó   — e Zd Zd„ Zy)Ú
IndexModelc                 óf   — d|j                   fg}t        j                  j                  | |||«       y )Nr   )r>   r   ÚStructModelr   ©r   ÚdmmÚfe_typeÚmemberss       r   r   zIndexModel.__init__�   s/   € Ø˜G×,Ñ,Ð-Ð.ˆÜ×Ñ×#Ñ# D¨#¨w¸Õ@r    N©r,   r-   r.   r   r1   r    r   rp   rp   ›   s   „ óAr    rp   c                   ó   — e Zd Zd„ Zy)ÚSeriesModelc                 ó€   — d|j                   fd|j                  fg}t        j                  j	                  | |||«       y )NrL   rV   )rL   r>   r   rr   r   rs   s       r   r   zSeriesModel.__init__£   s?   € à�g—m‘mÐ$Ø�w×'Ñ'Ð(ðˆô 	×Ñ×#Ñ# D¨#¨w¸Õ@r    Nrw   r1   r    r   ry   ry   ¡   s   „ óAr    ry   r   r   rL   rK   rV   rJ   c                 ó<   —  t        j                  |«      | |fi |¤ŽS r"   ©r   Úcreate_struct_proxy©rj   ÚbuilderÚtypÚkwargss       r   Ú
make_indexr‚   ®   ó!   € Ø+Œ7×&Ñ& sÓ+¨G°WÑGÀÑGÐGr    c                 ó<   —  t        j                  |«      | |fi |¤ŽS r"   r|   r~   s       r   Úmake_seriesr…   ±   rƒ   r    Ú	__array__c                 ób   — t        | ||j                  d   |d   ¬«      }|j                  d«      S )Nr   ©Úrefr   )r‚   ÚargsÚ_get_ptr_by_name©rj   r   ÚsigrŠ   r]   s        r   Úindex_as_arrayrŽ   ´   s/   € ä
�W˜g s§x¡x°¡{¸¸Q¹Ô
@€CØ×Ñ Ó'Ð'r    c                 ób   — t        | ||j                  d   |d   ¬«      }|j                  d«      S )Nr   rˆ   rV   )r…   rŠ   r‹   rŒ   s        r   Úseries_as_arrayr�   ¹   s/   € ä
�g˜w¨¯©°©¸¸a¹Ô
A€CØ×Ñ Ó)Ð)r    c                 ó�   — t        | ||j                  «      }|d   |_        t        | ||j                  |j	                  «       «      S r   )r‚   Úreturn_typer   r   Ú	_getvalue)rj   r   r�   rŠ   Údests        r   Úindex_wrap_arrayr•   ¾   s;   € ä�g˜w¨¯©Ó8€DØ�Q‘€D„IÜ˜W g¨s¯©ÀÇÁÓ@PÓQÐQr    c                 óð   — t        | ||j                  d   |d   ¬«      }t        | ||j                  «      }|d   |_        |j                  |_        t        | ||j                  |j                  «       «      S )Nr   ©Úvaluer   )r…   rŠ   r’   rV   rL   r   r“   )rj   r   r�   rŠ   Úsrcr”   s         r   Úseries_wrap_arrayrš   Ä   sb   € ä
�g˜w¨¯©°©¸4À¹7Ô
C€CÜ�w ¨¯©Ó9€DØ�q‘'€D„KØ—‘€D„JÜ˜W g¨s¯©ÀÇÁÓ@PÓQÐQr    c                 ó¢   — |\  }}t        | ||j                  «      }||_        ||_        t	        | ||j                  |j                  «       «      S r"   )r…   r’   rL   rV   r   r“   )rj   r   r�   rŠ   r   rL   Úseriess          r   Úpdseries_constructorr�   Ì   sI   € à�K€Dˆ%Ü˜ '¨3¯?©?Ó;€FØ€F„LØ€F„MÜ˜W g¨s¯©À×@PÑ@PÓ@RÓSÐSr    c                 ó  — |j                   j                  |d«      }t        |j                  |j                  | «      }|j                  | j                  |«      j                  |_        t        |j                  «       «      S )z7
    Convert a Index object to a native structure.
    r   )ÚpyapiÚobject_getattr_stringr‚   rj   r   r   r>   r˜   r   r   r“   )r€   Úobjr^   r   rL   s        r   Úunbox_indexr¢   Õ   s^   € ð
 �7‰7×(Ñ(¨¨gÓ6€DÜ�q—y‘y !§)¡)¨SÓ1€EØ—‘˜Ÿ™ tÓ,×2Ñ2€E„Jä�u—‘Ó(Ó)Ð)r    c                 ó’  — |j                   j                  |d«      }|j                   j                  |d«      }t        |j                  |j                  | «      }|j                  | j                  |«      j                  |_        |j                  | j                  |«      j                  |_        t        |j                  «       «      S )z8
    Convert a Series object to a native structure.
    rK   rJ   )rŸ   r    r…   rj   r   r   rL   r˜   rV   r   r“   )r€   r¡   r^   rL   rV   rœ   s         r   Úunbox_seriesr¤   à   s’   € ð
 �G‰G×)Ñ)¨#¨xÓ8€EØ�W‰W×*Ñ*¨3°	Ó:€FÜ˜Ÿ™ A§I¡I¨sÓ3€FØ—7‘7˜3Ÿ9™9 eÓ,×2Ñ2€F„LØ—G‘G˜CŸJ™J¨Ó/×5Ñ5€F„Mä�v×'Ñ'Ó)Ó*Ð*r    c                 óN  — t        |j                  |j                  | |¬«      }|j                  j	                  |j                  j                  | j                  «      «      }|j                  | j                  |j                  «      }|j                  j                  ||f«      }|S )z=
    Convert a native index structure to a Index object.
    r—   )r‚   rj   r   rŸ   ÚunserializeÚserialize_objectr6   r
   r>   r   Úcall_function_objargs)r€   r]   r^   rL   ÚclassobjÚarrayobjÚindexobjs          r   Ú	box_indexr¬   î   sx   € ô �q—y‘y !§)¡)¨S¸Ô<€EØ�w‰w×"Ñ" 1§7¡7×#;Ñ#;¸C¿K¹KÓ#HÓI€HØ�u‰u�S—\‘\ 5§:¡:Ó.€HØ�w‰w×,Ñ,¨X¸°{ÓC€HØ€Or    c                 ó�  — t        |j                  |j                  | |¬«      }|j                  j	                  |j                  j                  t        «      «      }|j                  | j                  |j                  «      }|j                  | j                  |j                  «      }|j                  j                  |||f«      }|S )z?
    Convert a native series structure to a Series object.
    r—   )r…   rj   r   rŸ   r¦   r§   rH   r
   rL   r>   rV   r¨   )r€   r]   r^   rœ   r©   r«   rª   Ú	seriesobjs           r   Ú
box_seriesr¯   ú   s�   € ô
 ˜Ÿ™ A§I¡I¨s¸#Ô>€FØ�w‰w×"Ñ" 1§7¡7×#;Ñ#;¼FÓ#CÓD€HØ�u‰u�S—Y‘Y §¡Ó-€HØ�u‰u�S—\‘\ 6§=¡=Ó1€HØ—‘×-Ñ-¨h¸À8Ð8LÓM€IØÐr    Úis_monotonic_increasingc                 ó   — d„ }|S )z'
    Index.is_monotonic_increasing
    c                 ód   — | j                   }t        |«      dk(  ry|d   }|D ]  }||k  r y|}Œ y)Nr   TF)r   Úlen)rL   r   ÚuÚvs       r   Úgetterz-index_is_monotonic_increasing.<locals>.getter  s@   € Ø�{‰{ˆÜˆt‹9˜Š>ØØ�‰GˆÛˆAØ�1ŠuÙØ‰Að ð r    r1   )rL   r¶   s     r   Úindex_is_monotonic_increasingr·     s   € ò
	ð €Mr    c                 ó.   — t        | t        «      rd„ }|S y)z
    len(Series)
    c                 ó,   — t        | j                  «      S r"   )r³   rJ   )rœ   s    r   Úlen_implzseries_len.<locals>.len_impl  s   € Ü�v—~‘~Ó&Ð&r    N)r   rR   )rœ   rº   s     r   Ú
series_lenr»     s   € ô
 �&œ*Ô%ò	'àˆð &r    Úclipc                 ó   — d„ }|S )z
    Series.clip(...)
    c                 óÊ   — | j                   j                  «       }t        t        |«      «      D ]  }||   }||k  r|||<   Œ||kD  sŒ|||<   Œ t	        || j
                  «      S r"   )rJ   rB   Úranger³   rH   rK   )rœ   ÚlowerÚupperr   Úirµ   s         r   Ú	clip_implzseries_clip.<locals>.clip_impl(  sc   € Ø�~‰~×"Ñ"Ó$ˆÜ”s˜4“yÖ!ˆAØ�Q‘ˆAØ�5ŠyØ��Q’Ø�U“Ø��Q’ð "ô �d˜FŸM™MÓ*Ð*r    r1   )rœ   rÀ   rÁ   rÃ   s       r   Úseries_cliprÄ   #  s   € ò
+ð Ðr    )5r/   Únumpyr   Ú
numba.corer   r   Únumba.core.datamodelr   Únumba.core.extendingr   r   r   r	   r
   r   r   r   r   r   r   Únumba.core.imputilsr   Úobjectr   ÚBufferr3   rH   ÚArrayCompatiblerR   Úregisterr`   rb   rk   rn   rr   rp   ry   r‚   r…   rŽ   r�   r=   r•   rš   r�   r¢   r¤   r¬   r¯   r·   r³   r»   rÄ   r1   r    r   Ú<module>rÎ      s·  ðñó ç %Ý '÷K÷ K÷ Kñ Kõ 2ô ˆFô  ô,7�—‘ô 7ô4"ˆVô "ô0-�×&Ñ&ô -ð< €×Ñ�eÓñ;ó ð;ð
 €×Ñ�fÓñ*ó ð*ñ ÐÓ ñó !ðñ ˆvÓñó ðñ �	ÓôA�×#Ñ#ó Aó ðAñ
 �
ÓôA�&×$Ñ$ó Aó ðAñ �y &¨'Ô 2Ù �z 7¨HÔ 5Ù �z 8¨YÔ 7òHòHñ ˆ{˜IÓ&ñ(ó 'ð(ñ ˆ{˜JÓ'ñ*ó (ð*ñ Ð ¨E¯K©KÓ8ñRó 9ðRñ
 Ð ¨U¯[©[Ó9ñRó :ðRñ ˆv�u—{‘{ IÓ.ñTó /ðTñ €yÓñ*ó ð*ñ €zÓñ
+ó ð
+ñ €Yƒñ	ó ð	ñ €Zƒñ	ó ð	ñ �IÐ8Ó9ñó :ðñ" 
ˆ#ƒñó ðñ �˜VÓ$ñó %ñr    