U
    zh                     @   s   d Z ddlZddlmZmZmZ ddlZdd Zdd Zddd	Z	d
d Z
dd Zdd Zeeegef ee ee dddZdd Zdd ZdS )z'
Python polyfills for common builtins.
    N)AnyCallableSequencec                 C   s   | D ]}|s dS qdS NFT iteratorelemr   r   H/var/www/html/venv/lib/python3.8/site-packages/torch/_dynamo/polyfill.pyall   s    r   c                 C   s   | D ]}|r dS qdS )NTFr   r   r   r   r
   any   s    r   c                 C   sH   t t| || D ]\}}||kr|  S qt| dt|  d S )Nz is not in )	enumeratelist
ValueErrortype)r   itemstartendir	   r   r   r
   index   s    
r   c                 c   s   t |D ]
}| V  qd S N)range)r   countr   r   r   r
   repeat"   s    r   c                 C   s   t jd |  S )Ng     f@)mathpi)xr   r   r
   radians'   s    r   c                 C   s,   t |}| jd kr|| _n| j| d S r   )torchcloneZgradZadd_)r   Znew_gradr   r   r
   accumulate_grad+   s    

r    )opleftrightc                 C   s<   t ||D ]\}}||kr
| ||  S q
| t|t|S )zemulate `(1,2,3) > (1,2)` etc)ziplen)r!   r"   r#   abr   r   r
   list_cmp3   s    r(   c                 C   s   | D ]}||kr dS qdS r   r   )Zset1Zset2r   r   r   r
   set_isdisjoint;   s    r)   c                 c   s2   t |}|D ]}| |s|V   q$q|E d H  d S r   )iter)	predicateiterabler   r   r   r
   	dropwhileB   s    r-   )r   N)__doc__r   typingr   r   r   r   r   r   r   r   r   r    boolr(   r)   r-   r   r   r   r
   <module>   s   
&