
    Vpf'                    l   U d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dlZ	d dl
Z
d dlZd dlZd dlZd dlZd dlmZ d dlZd dlmZ d dlmZ  ej        e           ej        Z G d de          Ze	j                            ej        j                  e	j        z    ej        d	          e	j                            ej                  gZ d
e!d<   ej"        dLd            Z#dMdZg Z$d
e!d<   ej"        dLd            Z%dMdZ& G d de          Z' G d de          Z( ej)        d           G d d                      Z*dNdOdZ+ G d  d!          Z,dPd"Z-ej"        dQd%            Z.ej/        d&k    rdRd+Z0ndRd,Z0dSd/Z1 ej2        d01          dTd3            Z3dUd5Z4dVdWd7Z5 G d8 d9ej6                  Z7 e7            Z8dPd:Z9 G d; d<e:          Z;d=Z<d> Z=ej>        dd?dXdD            Z?dYdEZ@ej>        dZdG            ZAej>        d[dI            ZBej>        d\dJ            ZCej>        dZdK            ZDdS )]    )annotations)IteratorN)
NamedTuple)
xla_client)traceback_utilc                  L    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   d	S )
Framestr	file_namefunction_nameint
start_linestart_columnend_line
end_columnN)__name__
__module____qualname____annotations__     Y/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/_src/source_info_util.pyr	   r	   '   sL         ...///---/////r   r	   stdlibz	list[str]_exclude_pathsreturnre.Pattern[str]c                     t          t                    dk    sJ t          j        d                    d t          D                                 S )Nr   |c              3  D   K   | ]}d t          j        |           V  dS )^Nreescape.0paths     r   	<genexpr>z&_exclude_path_regex.<locals>.<genexpr>>   s3      NNt2422NNNNNNr   )lenr   r"   compilejoinr   r   r   _exclude_path_regexr+   :   sH     
^		q	 	 	 	 	CHHNN~NNNNN	O	OOr   r&   r
   c                    t                               |            t                                           t                                           d S N)r   appendr+   cache_clearis_user_filenamer&   s    r   register_exclusionr2   A   @    !!###     r   _include_pathsc                     d t           D             } |                     d           t          j        d                    |                     S )Nc                <    g | ]}d t          j        |           S )r    r!   r$   s     r   
<listcomp>z'_include_path_regex.<locals>.<listcomp>L   s)    ???#")D//##???r   z	_test.py$r   )r4   r.   r"   r)   r*   )patternss    r   _include_path_regexr9   J   sC    ?????(
//+	CHHX&&	'	''r   c                    t                               |            t                                           t                                           d S r-   )r4   r.   r9   r/   r0   r1   s    r   register_inclusionr;   P   r3   r   c                  "    e Zd ZU ded<   ddZdS )	Scoper
   namestacktuple[str, ...]r   c                    | j         g|R S r-   r>   selfr?   s     r   wrapz
Scope.wrapY   s    Ir   Nr?   r@   r   r@   r   r   r   r   rE   r   r   r   r=   r=   V   s3         )))     r   r=   c                  "    e Zd ZU ded<   ddZdS )		Transformr
   r>   r?   r@   r   c                H    |r| j          d|d          dg|dd          R S dS )N(r   )   r   rB   rC   s     r   rE   zTransform.wrap_   s?     ((U1X(((559555Rr   NrF   rG   r   r   r   rI   rI   \   s3         )))     r   rI   T)frozenc                  \    e Zd ZU dZded<   ddZdd	ZddZddZd Z	ddZ
ddZddZdS )	NameStackr   ztuple[Scope | Transform, ...]r?   r>   tuple[str, ...] | strr   c                    t          |t                    s|f}t          t          t          |                    }t	          | j        |z             S r-   )
isinstancetuplemapr=   rP   r?   )rD   r>   scopess      r   extendzNameStack.extendi   sG    dE"" Wd3ud##$$FTZ&()))r   r
   c                "    | j         s|S |  d| S )N/)r?   )rD   r>   s     r   	wrap_namezNameStack.wrap_nameo   s%    : kTr   transform_namec                N    t          g | j        t          |          R           S r-   )rP   r?   rI   )rD   r[   s     r   	transformzNameStack.transformt   s(    =tz=9^#<#<==>>>r   idxslicec                6    t          | j        |                   S r-   rP   r?   )rD   r^   s     r   __getitem__zNameStack.__getitem__w   s    TZ_%%%r   c                *    t          | j                  S r-   )r(   r?   rD   s    r   __len__zNameStack.__len__z   s    tz??r   otherc                :    t          | j        |j        z             S r-   ra   rD   rf   s     r   __add__zNameStack.__add__}   s    TZ%+-...r   c                :    t          |j        | j        z             S r-   ra   rh   s     r   __radd__zNameStack.__radd__   s    U[4:-...r   c                    d}| j         d d d         D ]}|                    |          }d                    |          S )Nr   rY   )r?   rE   r*   )rD   scopeelems      r   __str__zNameStack.__str__   sF    E
44R4   iiee88E??r   N)r>   rQ   r   rP   )r>   r
   r   r
   )r[   r
   r   rP   )r^   r_   r   rP   )rf   rP   r   rP   )r   r
   )r   r   r   r?   r   rW   rZ   r]   rb   re   ri   rk   rp   r   r   r   rP   rP   e   s         )+%++++* * * *   
? ? ? ?& & & &  / / / // / / /     r   rP    r>   c                P    t                      }| r|                    |           }|S r-   )rP   rW   )r>   
name_stacks     r   new_name_stackrt      s,    {{*	 )""4((J	r   c                  D    e Zd ZU ded<   ded<   ddgZddZddddd
ZdS )
SourceInfoTraceback | None	tracebackrP   rs   c                "    || _         || _        d S r-   rx   rs   rD   rx   rs   s      r   __init__zSourceInfo.__init__   s    DN DOOOr   Nrz   NameStack | Noner   c               F    t          || j        n||| j        n|          S r-   )rv   rx   rs   r{   s      r   replacezSourceInfo.replace   s0    #+%-:  r   )rx   rw   rs   rP   )rx   rw   rs   r}   r   rv   )r   r   r   r   	__slots__r|   r   r   r   r   rv   rv      st          L))! ! ! ! 6:%)       r   rv   c                 :    t          d t                                S r-   )rv   rP   r   r   r   new_source_infor      s    	D)++	&	&&r   filenameboolc                    t                                          |           dup"t                                          |           du S )zHHeuristic that guesses the identity of the user's code in a stack trace.N)r9   searchr+   )r   s    r   r0   r0      sF     


&
&x
0
0
< < ""))(33t;=r   )      codetypes.CodeTypelastir   c                    t           j                            | |          }|\  }}}}t          | j        | j        ||||          S )Nr   r   r   r   r   r   )r   	Tracebackcode_addr2locationr	   co_filenameco_qualname)r   r   locr   r   r   r   s          r   raw_frame_to_framer      sT    


1
1$
>
>C582Jh
4+".%L!j: : : :r   c                |    t          | j        | j        t          j                            | |          ddd          S )Nr   r   )r	   r   co_namer   r   code_addr2line)r   r   s     r   r   r      s@    4+"l%/>>tUKKq: : : :r   source_infoIterator[Frame]c                    | j         }|r|                                ng g f\  fdt          t                              D             S )z?Iterator over the user's frames, filtering jax-internal frames.c              3     K   | ]:}t          |         j                  t          |         |                   V  ;d S r-   )r0   r   r   )r%   ir   r   s     r   r'   zuser_frames.<locals>.<genexpr>   s]       
4 
4Ad1g122
4
T!WeAh
/
/ 
4 
4 
4 
4 
4 
4r   )rx   
raw_framesranger(   )r   rx   r   r   s     @@r   user_framesr      sn     #)*3A	$$&&&"b+$
4 
4 
4 
4 
4s4yy9I9I 
4 
4 
4 4r   @   )maxsizeFrame | Nonec                <    t          t          |           d           S r-   )nextr   r   s    r   
user_framer      s    	k+&&	-	--r   framec                    | j         dk    r"| j         d| j         d| j          d| j         dS | j         d| j         d| j         dS )Nr   :z (rL   )r   r   r   r   )r   s    r   _summarize_framer      s    
1 ' '!1 ' 'E4F ' '#' ' ' ( oJJ 0JJE4GJJJJr   rM   c                    t          j        t          |           |          }d |D             }d                    t	          |                    S )Nc                4    g | ]}|rt          |          nd S )unknown)r   )r%   r   s     r   r7   zsummarize.<locals>.<listcomp>   s;     % % % ,1? '''i % % %r   
)	itertoolsislicer   r*   reversed)r   
num_framesframes
frame_strss       r   	summarizer      sT    K44jAA&% %#% % %*	8J''	(	((r   c                       e Zd ZU ded<   d ZdS )_SourceInfoContextrv   contextc                ,    t                      | _        d S r-   )r   r   rd   s    r   r|   z_SourceInfoContext.__init__   s    "$$DLLLr   N)r   r   r   r   r|   r   r   r   r   r      s1         % % % % %r   r   c                     t           j        } | j        s2|                     t          j                                                  } | S )N)rx   )_source_info_contextr   rx   r   r   r   get_tracebackr   s    r   currentr      sA    $,+		 V%%
0D0R0R0T0T%UUK	r   c                      e Zd ZdS )!JaxStackTraceBeforeTransformationN)r   r   r   r   r   r   r   r      s          r   r   zThe preceding stack trace is the source of the JAX operation that, once transformed by JAX, triggered the following exception.

--------------------c                J    |  t          | t                    rdS | j        } |  dS )NTF)rS   r   	__cause__)es    r   has_user_contextr      s4    	!677 T	A 	
 
r   rs   crw   rs   r}   c             #  J  K   t           j        }t           j                            | |          t           _        d }	 d V  n# t          $ r}| t	          |          r t          j        |                                           }|rtt          j        |          }| dt           }t          |                              |          }|j        |_        |j        |_        |j        |_        d |_        ||_         d }~ww xY w	 |t           _        ~d S # |t           _        ~w xY w)Nrz   z

)r   r   r   	Exceptionr   r   filter_tracebackas_python_tracebackformat_exception_only_messager   with_traceback__context__r   __suppress_context__)r   rs   prevfiltered_tbr   msgexps          r   user_contextr      s<     		%$!5!=!E!Ej "F "* "*+	EEEE	 
 
 
y$Q''y 1!2G2G2I2IJJK 033c""""c-c22AA+NNccokcm!"!7camak	
 
  $(  $( OOOOs*   A D 
D B/C;;D  D D"c                 $    t           j        j        S r-   )r   r   rs   r   r   r   current_name_stackr     s    		%	00r   Iterator[NameStack]c              #     K   t           j        }|j        }|                    |                    |                     }|t           _        	 t           j        j        V  |t           _        d S # |t           _        w xY wNr   )r   r   rs   r   rW   r>   prev_contextcurr_name_stacknew_contexts       r   extend_name_stackr     s~      %-, +/$$0F0Ft0L0L$MM+!,0

&
1111#/   < ////   A- -A;Iterator[None]c              #     K   t           j        }|                    |           }|t           _        	 d V  |t           _        d S # |t           _        w xY wr   )r   r   r   )rs   r   r   s      r   set_name_stackr     s_      %-,$$
$;;+!,0	EEE#/   < ////s   A Ac               #  z   K   t          t                                5  d V  d d d            d S # 1 swxY w Y   d S r-   )r   rP   r   r   r   reset_name_stackr   (  s      ikk"" 
 
	EEE
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   044c              #     K   t           j        }|j        }|                    |                    |                     }|t           _        	 t           j        j        V  |t           _        d S # |t           _        w xY wr   )r   r   rs   r   r]   r   s       r   transform_name_stackr   -  s~      %-, +/$$0I0I$0O0O$PP+!,0

&
1111#/   < ////r   )r   r   )r&   r
   )rq   )r>   r
   r   rP   )r   rv   )r   r
   r   r   )r   r   r   r   r   r	   )r   rv   r   r   )r   rv   r   r   )r   r	   r   r
   )rM   )r   rv   r   r
   )r   rw   rs   r}   )r   rP   )r>   r
   r   r   )rs   rP   r   r   )r   r   )E
__future__r   collections.abcr   
contextlibdataclasses	functoolsr   os.pathosr"   sys	sysconfig	threadingtypestypingr   jax.versionjaxjax._src.libr   jax._srcr   r2   __file__r   r	   r&   dirnameversionsepget_pathr   r   cacher+   r4   r9   r;   r=   rI   	dataclassrP   rt   rv   r   r0   version_infor   r   	lru_cacher   r   r   localr   r   r   r   r   r   r   contextmanagerr   r   r   r   r   r   r   r   r   <module>r      s-   # " " " " " " $ $ $ $ $ $                  				 



                    # # # # # # # # # # # # ! !( + + +  	    J    GOOCK())BF2 Ix  GOOI&''     P P P P! ! ! !     
( ( ( (
! ! ! !    J       
    d###! ! ! ! ! ! ! $#!H           $' ' ' ' = = = =
 w: : : : :: : : :4 4 4 4 R   . . . ! .K K K K) ) ) ) )% % % % % % % % *)++     9 8 8 8 8	 8 8 8 	
   HL      21 1 1 1 0 0 0 0 0 0 0 0 
 
 
 
 0 0 0 0 0 0r   