o
    i                  	   @   sV   d dl Z d dlZd dlZd dlmZ d dlmZ e	ddededed	 fd
dZdS )    N)	Generator)contextmanager	trace.fxt/tmp/magic-traceoutputmagic_trace_cachereturn)NNNc              	   c   sD   t  }t j|s$td|  tdd|ddg tdd|g |dd	t|d
| g}tj|tj	dd}|j
d us>J 	 |j
 }t| d|v rMnq?z,d V  W |tj | }|j
d urnt|j
  |j
  |dkrytd| d S |tj | }|j
d urt|j
  |j
  |dkrtd| w )NzDownloading magic_trace to: wgetz-Oz-qzNhttps://github.com/janestreet/magic-trace/releases/download/v1.0.2/magic-tracechmodz+xattachz-pidz-ozutf-8)stderrencodingTAttachedr   zmagic_trace exited abnormally: )osgetpidpathexistsprint
subprocessrunstrPopenPIPEr   readlinesend_signalsignalSIGINTwaitreadclose
ValueError)r   r   pidargspxr r&   [/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/functorch/dim/magic_trace.pymagic_trace   sN   	




r(   )r   r   )	r   r   r   collections.abcr   
contextlibr   r   r(   r&   r&   r&   r'   <module>   s   