o
    7f                     @   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 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 Z#d4e"d e"fd5d6Z$dS )9    )contextmanager)IteratorN)Anyr   TypeVar	GeneratorOptionalListTupleSequenceUnionCallable	Awaitable)Finalg     @\FLOAT_MAGICc                 C   s   g | ]}t |d  qS )g      ?)float).0n r   Z/home/ertert/spirit/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.   r/   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 rB   rC   )rD   zr   r   r   	__await__]   s   zasync_val.__await__)r    
__module____qualname__r*   rE   r   r,   rG   r   r   r   r   rA   Y   s    rA   fc                    s   dt dt dt f fdd}|S )Nargskwargsr   c                     s    | i |S rB   r   )rK   rL   rJ   r   r   ge   s   zmake_python_function.<locals>.g)r   )rJ   rN   r   rM   r   make_python_functiond   s   rO   )r   )NF)%
contextlibr   collections.abcr   mathtypingr   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?   rA   rO   r   r   r   r   <module>   sj   4
	

