o
    2g                     @   s  U d dl mZ d dlmZ d dl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mZ d dlmZ dZeed< dd	 ed
dD ddedddddeded edeejdej ejd ej d ddddddddg Zed7deded ed fd!d"Zd efd#d$Zd efd%d&Zed'Zed(Zed)Z 		*d8d+eee ef d,e	e
e   d-e!d eee eeef f fd.d/Z"ed0ed1Z#G d2d3 d3ee  eee f Z$d4e#d e#fd5d6Z%dS )9    )contextmanager)IteratorN)Anyr   TypeVar	GeneratorOptionalListTupleSequenceUnionCallable	AwaitableGeneric)Finalg     @\FLOAT_MAGICc                 C   s   g | ]}t |d  qS )g      ?)float).0n r   Y/home/garg/my-data/venv/lib/python3.10/site-packages/mypyc/test-data/fixtures/testutil.py
<listcomp>   s    r   i
   g       gUUUUUU?g       @gƅoٵyigFf"tgg S+gHinfnangg      g4c g      gg       gy5+ g        typmsgreturnc              
   c   s    zd V  W n3 t y9 } z't|| sJ |d| j |t|v s.J d| d| dW Y d }~d S d }~ww J d| j d)Nz
 is not a z	Message "z" does not match ""Fz	Expected z but got no exception)	Exception
isinstance__name__str)r   r   er   r   r   assertRaises+   s   
0r$   c                   C   
   t tdS )Nzmath domain error)r$   
ValueErrorr   r   r   r   assertDomainError5      
r'   c                   C   r%   )Nzmath range error)r$   OverflowErrorr   r   r   r   assertMathRangeError8   r(   r*   TUVFgeninputspc              
   C   s   g }d}	 z|dkr|r|  || }nt| ds|  d }nt| }W n2 ty= } zt||jfW  Y d }~S d }~w tyV } zt|t|fW  Y d }~S d }~ww |r]t| |	| |d7 }q)NTr   __next__   )
sendhasattrnextStopIterationtuplevaluer   r"   printappend)r.   r/   r0   resivalr#   r   r   r   run_generator?   s,   

r?   F)boundc                   @   s6   e Zd ZdeddfddZdeeeef fddZdS )	async_valr>   r   Nc                 C   s
   || _ d S Nr>   )selfr>   r   r   r   __init__Z   r(   zasync_val.__init__c                 c   s    | j V }|S rC   rD   )rE   zr   r   r   	__await__]   s   zasync_val.__await__)r!   
__module____qualname__r+   rF   r   r-   rH   r   r   r   r   rB   Y   s    rB   fc                    s   dt dt dt f fdd}|S )Nargskwargsr   c                     s    | i |S rC   r   )rL   rM   rK   r   r   ge   s   zmake_python_function.<locals>.g)r   )rK   rO   r   rN   r   make_python_functiond   s   rP   )r   )NF)&
contextlibr   collections.abcr   mathtypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   __annotations__rangesqrtr   pi
float_valstyper"   r$   r'   r*   r+   r,   r-   boolr?   r@   rB   rP   r   r   r   r   <module>   sj   8
	

