
    ȅiE                       S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	J
r
  SSKJr  \	(       a  SSKJr  / S	Qr\
" S
5      r\" \R                   SS9SS j5       r\" \R"                  SS9SS j5       r\" \R$                  SS9SSS jj5       r\" \R&                  SS9SSS jj5       r " S S5      r\" 5       r\4S jrg)z
Python polyfills for builtins
    )annotationsN)Callable)TYPE_CHECKINGTypeVar   )substitute_in_graph)Iterable)allany	enumeratesum_TT)can_constant_fold_throughc               (    U  H  nU(       a  M    g   g)NFT iterableelems     Z/home/james-whalen/.local/lib/python3.13/site-packages/torch/_dynamo/polyfills/builtins.pyr
   r
      s    t      c               (    U  H  nU(       d  M    g   g)NTFr   r   s     r   r   r   '   s    4  r   )is_embedded_typec              #     #    [        U[        5      (       d"  [        [        U5      R                  < S35      eU  H  nX4v   US-  nM     g 7f)Nz+ object cannot be interpreted as an integer   )
isinstanceint	TypeErrortype__name__)r   startxs      r   r   r   /   sQ     eS!!E{##&&QR
 	
 h
 s   AAc               L    [         R                  " [        R                  X5      $ N)	functoolsreduceoperatoradd)r   r    s     r   r   r   ;   s    HLL(::r   c                  &    \ rS rSrS rS rS rSrg)_CallableIterator@   c                    Xl         X l        g r#   fnsentinel)selfr-   r.   s      r   __init___CallableIterator.__init__A   s     r   c                    U $ r#   r   )r/   s    r   __iter___CallableIterator.__iter__E   s    r   c                P    U R                  5       nXR                  :X  a  [        eU$ r#   )r-   r.   StopIteration)r/   rs     r   __next___CallableIterator.__next__H   s(     GGI  r   r,   N)r   
__module____qualname____firstlineno__r0   r3   r8   __static_attributes__r   r   r   r)   r)   @   s    !
r   r)   c               r   U[         L a  U n[        US5      (       a;  UR                  5       n[        US5      (       a  U$ [        S[	        U5       S35      e[        US5      (       a  S nU" U5      $ [        S[	        U5       S35      eU n[        U[        5      (       d  [        S5      e[        XQ5      $ )Nr3   r8   'z' object is not iterable__getitem__c              3  f   #    Sn  U R                  U5      v   US-  nM  ! [         a     g f = f7f)Nr   r   )r@   
IndexError)r   is     r   sequence_protocol iter_.<locals>.sequence_protocolg   sD     &22155Q  & s   1! 1
.1.1z iter(v, w): v must be a callable)_sentinel_missinghasattrr3   r   r   r   r   r)   )fn_or_iterabler.   r   iteratorrD   r-   s         r   iter_rJ   Y   s     $$!8Z((((*Hx,,!DN#33K LMM8]++ %X..!DN++CDEE "h''>?? ..r   )r   zIterable[object]returnbool)r   )r   Iterable[_T]r    r   rK   zIterable[tuple[int, _T]])r    r   r   rM   rK   r   )__doc__
__future__r   builtinsr$   r&   collections.abcr   typingr   r   
decoratorsr   r	   __all__r   r
   r   r   r   r)   objectrF   rJ   r   r   r   <module>rV      s    #    $ ) , ( T] X\\TB C X\\TB C X''$? @ X\\TB; C; * H  $5 !/r   