
    ukiQ                     |    d Z ddlZddlZddlmZ ddlmZ ddlmZ  G d de      Z	deej                     d	e	fd
Zy)z(Generates source maps for JAX functions.    N)Protocol)Sequence)commonc                   2    e Zd Zdeej
                     fdZy)SourceMapGeneratorFnreturnc                      y )N )selfargskwargss      f/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/experimental/source_mapper/generate_map.py__call__zSourceMapGeneratorFn.__call__   s        N)__name__
__module____qualname__r   r   SourceMapDumpr   r
   r   r   r   r      s    &2F2F)G r   r   passesr   c                 J     dt         t        j                     f fd}|S )zGenerates a SourceMapBundle for the specified compiler passes.

  Args:
    f: The function to compile.
    passes: Which compiler passes to generate sourcemaps for.
    **pass_kwargs: Keyword arguments for individual passes.
  r   c            	         g }i }t        j                         5 }D ]  }|j                  |vrx|j                  j	                  dd      }t
        j                  j                  ||      }t        j                  |d        |j                  |	| |fi 
}|||j                  <   ||j                     }|j                   |j                  |fi 
        	 d d d        |S # 1 sw Y   |S xY w)N:__F)exist_ok)tempfileTemporaryDirectory
compile_fnnamereplaceospathjoinmakedirsappendgenerate_dump)r   r   pass_resultscompile_cachework_dirpass_to_evaldirnamepass_work_dircompile_resultfpass_kwargsr   s            r   wrapperz$generate_sourcemaps.<locals>.wrapper(   s   /1LM		$	$	& G(  G,""-7 %%--c48''',,x9-
++me
42<22Qf0;. 4B-//
0&|'>'>?6L66~ F9DF 	GGG G s   B?C$$C.)r   r   r   )r-   r   r.   r/   s   ``` r   generate_sourcemapsr0      s!    (6+?+?"@ " 
.r   )__doc__r    r   typingr   collections.abcr   jax.experimental.source_mapperr   r   Passr0   r
   r   r   <module>r6      sE    / 	   $ 18 
V[[! 	r   