
    a,j                       d Z ddlmZ ddl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 e	rddlmZ g d	Z e
d
          Z eej        d          d!d            Z eej        d          d!d            Z eej        d          d"d#d            Z eej        d          d"d$d            Z G d d          Z e            ZefdZ eej        d          d%d             ZdS )&z
Python polyfills for builtins
    )annotationsN)Callable)TYPE_CHECKINGTypeVar   )substitute_in_graph)Iterable)allanycast	enumeratesum_TT)can_constant_fold_throughiterableIterable[object]returnboolc                   | D ]}|s dS dS )NFT r   elems     `/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/torch/_dynamo/polyfills/builtins.pyr
   r
   !   s*       	55	4    c                   | D ]}|r dS dS )NTFr   r   s     r   r   r   )   s*       	44	5r   )is_embedded_typeIterable[_T]startintIterable[tuple[int, _T]]c              #     K   t          |t                    s$t          t          |          j        d          | D ]}||fV  |dz  }d S )Nz+ object cannot be interpreted as an integer   )
isinstancer   	TypeErrortype__name__)r   r   xs      r   r   r   1   sr      eS!! 
E{{#RRR
 
 	
   Qh
 r   c               B    t          j        t          j        | |          S N)	functoolsreduceoperatoradd)r   r   s     r   r   r   =   s    HL(E:::r   c                       e Zd Zd Zd Zd ZdS )_CallableIteratorc                "    || _         || _        d S r)   )fnsentinel)selfr1   r2   s      r   __init__z_CallableIterator.__init__C   s     r   c                    | S r)   r   )r3   s    r   __iter__z_CallableIterator.__iter__G   s    r   c                R    |                                  }|| j        k    rt          |S r)   )r1   r2   StopIteration)r3   rs     r   __next__z_CallableIterator.__next__J   s-     GGII  r   N)r&   
__module____qualname__r4   r6   r:   r   r   r   r/   r/   B   sA        ! ! !  
 
 
 
 
r   r/   c                  |t           u r| }t          |d          rF|                                }t          |d          r|S t          dt	          |           d          t          |d          rd } ||          S t          dt	          |           d          | }t          |t                    st          d          t          ||          S )Nr6   r:   'z' object is not iterable__getitem__c              3  l   K   d}	 	 |                      |          V  |dz  }n# t          $ r Y d S w xY w0)Nr   Tr"   )r?   
IndexError)r   is     r   sequence_protocolz iter_.<locals>.sequence_protocoli   sa      &22155555Q%   	s   $ 
22z iter(v, w): v must be a callable)_sentinel_missinghasattrr6   r$   r%   r#   r   r/   )fn_or_iterabler2   r   iteratorrC   r1   s         r   iter_rH   [   s     $$$!8Z(( 	N((**Hx,, N LDNN L L LMMM8]++ 	/   %$X...DDNNDDDEEE "h'' 	@>??? X...r   typr%   valc                    |S r)   r   )rI   rJ   s     r   r   r      s    Jr   )r   r   r   r   )r   )r   r   r   r   r   r    )r   r   r   r   r   r   )rI   r%   rJ   r   r   r   )__doc__
__future__r   builtinsr*   r,   typingcollections.abcr   r   r   
decoratorsr   r	   __all__r   r
   r   r   r   r/   objectrD   rH   r   r   r   r   <module>rT      s+    # " " " " "        $ $ $ $ $ $ ) ) ) ) ) ) ) ) , , , , , ,  )((((((   WT]] X\TBBB   CB X\TBBB   CB X'$???    @? X\TBBB; ; ; ; CB;       * FHH  $5 !/ !/ !/ !/H V[DAAA   BA  r   