
    xKg                     H   d Z ddlmZmZ ddlmZmZmZmZm	Z	m
Z
mZ  edej                        d        Z eeej                         eeej                  ej                         d               Z edej$                         eej&                        d               Z ee ej,                  ej.                              d	        Z edej2                         eej&                        d
               Z edej6                         eej8                        d               Zy)z8
Implementation of various iterable and iterator types.
    )typescgutils)lower_builtiniternext_implcall_iternextcall_getiterimpl_ret_borrowedimpl_ret_new_refRefTypegetiterc                 :    |\  }t        | ||j                  |      S N)r	   return_type)contextbuildersigargsits        [/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cpython/iterators.pyiterator_getiterr      s    DRWgsCC    c                 r   t        |      dk(  st        |      dk(  sJ |j                  d   }t        |      dk(  r&|d   }| j                  t        j                  d      }nEt        |      dk(  r7|d   }| j                  ||d   |j                  d   t        j                        }t        | ||      }| j                  ||j                        }t        j                  |j                        }	|j                  ||	       |	|_        ||_        |j                         }
t!        | ||j                  |
      S )N      r   )lenr   get_constantr   intpcastr   make_helperr   r   alloca_oncetypestorecountiter	_getvaluer
   )r   r   r   r   srctysrc	start_valiterobjenumcountptrress              r   make_enumerate_objectr-      s    t9>SY!^++HHQKE
4yA~1g((Q7		Ta1gLL$q'388A;

K	7GUC8Gw8D""7INN;HMM)X&DJDI
..
CGWcoosCCr   iternextc           	      l   |j                   \  }|\  }| j                  |||      }|j                  |j                        }|j	                  || j                  t        j                  d            }|j                  ||j                         t        | ||j                  |j                        }	|	j                         }
|j                  |
       |j                  |
      5  |	j                         }|j!                  | j#                  ||j$                  ||g             d d d        y # 1 sw Y   y xY w)Nvaluer   )r   r   loadr#   addr   r   r   r"   r   source_typer$   is_valid	set_validif_thenyielded_valueyield_
make_tuple
yield_type)r   r   r   r   resultenumtyr*   r#   ncountsrcresr5   srcvals               r   iternext_enumeraterA   .   s     xxHVFTwd;DLL$E[[ 4 4UZZ CDFMM&$**%7GV-?-?KF H
X		"%%'g((&2C2C*/: 	; 
#	"	"s   "?D**D3c                 J   |j                   }t        |      t        |j                        k(  sJ | j                  ||      }t	        t        ||j                              D ]  \  }\  }}t        | |||      ||<    |j                         }	t        | ||j                   |	      S r   )
r   r   source_typesr   	enumeratezipr   r   r%   r
   )
r   r   r   r   zip_typezipobjiargr&   r,   s
             r   make_zip_objectrJ   G   s    Ht9H112222  (3F$Ssxx%89<C '5#>q	 : 


CGWcoosCCr   c                    |j                   \  }|\  }| j                  |||      }t        |      dk(  r|j                          y t	        j
                  || j                  |j                              }t	        j                  |t        j                        }t        t        ||j                              D ]  \  }	\  }
}|j                  |      }|j                  |      5  t        | |||
      }|j!                  ||j#                               }|j%                  ||       |j'                         }t	        j(                  ||d|	      }|j%                  ||       d d d         |j                  |      }|j+                  |       |j                  |      5  |j-                  |j                  |             d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr0   r   )r   r   r   set_exhaustedr   r    get_value_typer;   alloca_once_valuetrue_bitrD   rE   rC   r2   r7   r   and_r5   r"   r8   gep_inboundsr6   r9   )r   r   r   r   r<   rF   rG   	p_ret_tup
p_is_validrH   r)   r&   r5   r?   valptrs                   r   iternext_ziprV   U   s    JXHV  (& AF
6{a##G$+$:$:8;N;N$OQI**7':J:JKJ(VX5J5J)KLGU<<
+__X&"7GUGDF||Hfoo.?@HMM(J/&&(C&&w	1a@CMM#s# '&  M ||J'H
X		"gll9-. 
#	" '& 
#	"s   $A;G!GG	Gc           	         |j                   \  }|\  }| j                  |      } || |||      \  }}	| j                  t        |dd             t	        j
                  ||j                        5  |j                  d       |j                  |	       d d d        t	        j                  ||j                        5  |j                          d d d        t	        j                  ||j                  |j                  |j                  |j                                    5  | j                  j!                  ||       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nlibs T)r   get_generator_impladd_linking_libsgetattrr   	if_likelyis_okr6   r9   if_unlikelyis_stop_iterationrL   rP   is_errornot_	call_convreturn_status_propagate)
r   r   r   r   r<   gentygenimplstatusretvals
             r   rV   rV   {   s(    XXFEDC%%e,D'7C6NFFWT6267			7FLL	1f 
2 
		Wf&>&>	? 
@			W$\\&//*1,,v7O7O*PR
S 	11'6B
S 
S 
2	1 
@	?
S 
Ss$   .#E9EEE
EE"N)__doc__
numba.corer   r   numba.core.imputilsr   r   r   r   r	   r
   r   IteratorTyper   rD   IterableTypeIntegerr-   EnumerateTypeNEWrA   rE   VarArgAnyrJ   ZipTyperV   	GeneratorBORROWEDrY   r   r   <module>rw      sB   &2 2 2 y%,,-D .D y%,,-y%,,emm<D = .D0 z5../w{{;  0;. sLELL+,D -D z5==)w{{/  */H z5??+w C ! ,Cr   