
    Vpf<                       d dl mZ d dlmZ d dlZd dlmZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmZ 	 d dlZn# e$ r dZY nw xY w ej        d ej        d	d
          d          Zd\dZ e            Z G d dej                  Z G d de          Z e            Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z e            Z G d de          Z  ej!        d g d!          Z" ej!        d"g d#          Z# G d$ d%e          Z$ ej!        d&d'd(g          Z%d]d.Z&d^d/Z' G d0 d1e
          Z( G d2 d3e
          Z) G d4 d5e
          Z*d_d:Z+d; Z,d`d@Z-dadAZ.dbdcdEZ/dddHZ0dedfdKZ1dgdLZ2dhdNZ3ddddOdidUZ4djdXZ5 ee4e#j6        e"j7        Y          Z8 ee4e#j9        e"j:        Y          Z;dkd[Z<dS )l    annotations)SequenceN)partial)Any
NamedTuple)config)utiljax_pprint_use_colorJAX_PPRINT_USE_COLORTz?Enable jaxpr pretty-printing with colorful syntax highlighting.)helpreturnboolc                 
   	 t                      } | j        j        }|dk    rdS dt          | j                  v rdS n# t          $ r Y nw xY wt          t          j        d          ot          j                                        S )NZMQInteractiveShellTcolabisatty)	get_ipython	__class____name__str	NameErrorhasattrsysstdoutr   )ipythonshells     W/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/_src/pretty_printer.py_can_use_colorr   3   s    	mmG&E%%%T	C)**	*	*T 
+ 
 	 	 	D	 
X	&	&	>3:+<+<+>+>>s    = = 
A
	A
c                  6    e Zd ZdZ	 dddddddZd ZddZdS )Doc P   Nz # 	use_colorannotation_prefix
source_mapwidthintr%   bool | Noner&   r   r'   'list[list[tuple[int, int, Any]]] | Noner   c               T    |t           ot          j        }t          | ||||          S )z
    Formats a pretty-printer document as a string.

    Args:
    source_map: for each line in the output, contains a list of
      (start column, end column, source) tuples. Each tuple associates a
      region of output text with a source.
    Nr$   )CAN_USE_COLOR_PPRINT_USE_COLORvalue_format)selfr(   r%   r&   r'   s        r   formatz
Doc.formatH   s>     ;$5$;i4)%6:O O O O    c                *    |                                  S N)r2   r1   s    r   __str__zDoc.__str__Z   s    ;;==r3   otherc                $    t          | |g          S r5   )concat)r1   r8   s     r   __add__zDoc.__add__]   s    4-   r3   )r#   )
r(   r)   r%   r*   r&   r   r'   r+   r   r   )r8   r!   r   r!   )r   
__module____qualname__	__slots__r2   r7   r;   r"   r3   r   r!   r!   E   st        ) O7;":>O O O O O O$  ! ! ! ! ! !r3   r!   c                      e Zd Zd ZdS )_NilDocc                    dS )Nnilr"   r6   s    r   __repr__z_NilDoc.__repr__a   s    UUr3   N)r   r<   r=   rC   r"   r3   r   r@   r@   `   s        """""r3   r@   c                  8    e Zd ZU dZded<   ded<   d	d
dZd ZdS )_TextDoc)text
annotationr   rF   
str | NonerG   Nc                    t          |t                    s
J |            |t          |t                    s
J |            || _        || _        d S r5   )
isinstancer   rF   rG   )r1   rF   rG   s      r   __init__z_TextDoc.__init__j   sU    dC  &&$&&&J!<!<jDI DOOOr3   c                L    | j         d| j         d| j          dS d| j         dS )Nztext("z", annotation="z"))rG   rF   r6   s    r   rC   z_TextDoc.__repr__p   s:    "GtyGG4?GGGG%ty%%%%r3   r5   )rF   r   rG   rH   r   r<   r=   r>   __annotations__rK   rC   r"   r3   r   rE   rE   e   sX         $))))! ! ! ! !& & & & &r3   rE   c                  ,    e Zd ZU dZded<   ddZd ZdS )	
_ConcatDocchildrenz	list[Doc]rR   Sequence[Doc]c                    t          |          | _        t          d | j        D                       sJ | j                    d S )Nc              3  @   K   | ]}t          |t                    V  d S r5   )rJ   r!   ).0docs     r   	<genexpr>z&_ConcatDoc.__init__.<locals>.<genexpr>|   s,      ==z#s##======r3   )listrR   all)r1   rR   s     r   rK   z_ConcatDoc.__init__z   sD    NNDM==t}=====LLt}LLLLLr3   c                    d| j          dS )Nzconcat()rQ   r6   s    r   rC   z_ConcatDoc.__repr__~   s    7t}7777r3   N)rR   rS   rM   r"   r3   r   rP   rP   v   sF         )M M M M 87777r3   rP   c                  ,    e Zd ZU dZded<   ddZd ZdS )	_BreakDocrF   r   rF   c                R    t          |t                    s
J |            || _        d S r5   )rJ   r   rF   )r1   rF   s     r   rK   z_BreakDoc.__init__   s+    dC  &&$&&&DIIIr3   c                    d| j          dS )Nzbreak(r\   r_   r6   s    r   rC   z_BreakDoc.__repr__   s    2di2222r3   N)rF   r   rM   r"   r3   r   r^   r^      s?         ))))    32222r3   r^   c                  ,    e Zd ZU dZded<   ddZd ZdS )	_GroupDocchildr!   re   c                R    t          |t                    s
J |            || _        d S r5   )rJ   r!   re   )r1   re   s     r   rK   z_GroupDoc.__init__   s+    eS!!((5(((DJJJr3   c                    d| j          dS )Nzgroup(r\   rd   r6   s    r   rC   z_GroupDoc.__repr__   s    3dj3333r3   N)re   r!   rM   r"   r3   r   rc   rc      s?         )***    43333r3   rc   c                  6    e Zd ZU dZded<   ded<   d	dZd ZdS )
_NestDocnre   r)   rk   r!   re   c                `    t          |t                    s
J |            || _        || _        d S r5   )rJ   r!   rk   re   )r1   rk   re   s      r   rK   z_NestDoc.__init__   s2    eS!!((5(((DFDJJJr3   c                &    d| j         | j        f dS )Nznest(r\   rj   r6   s    r   rC   z_NestDoc.__repr__   s    :TVTZ$8::::r3   N)rk   r)   re   r!   rM   r"   r3   r   ri   ri      sH         )&&&***   
 ;::::r3   ri   c                  6    e Zd ZU dZded<   ded<   d	dZd ZdS )
_SourceMapDocre   sourcer!   re   r   rq   c                `    t          |t                    s
J |            || _        || _        d S r5   )rJ   r!   re   rq   )r1   re   rq   s      r   rK   z_SourceMapDoc.__init__   s2    eS!!((5(((DJDKKKr3   c                (    d| j          d| j         dS )Nzsource(z, r\   rp   r6   s    r   rC   z_SourceMapDoc.__repr__   s    CtzCCT[CCCCr3   N)re   r!   rq   r   rM   r"   r3   r   ro   ro      sI         !)***+++   
 DCCCCr3   ro   _Color)	BLACKREDGREENYELLOWBLUEMAGENTACYANWHITERESET
_Intensity)DIMNORMALBRIGHTc                  N    e Zd ZU dZded<   ded<   ded<   ded<   d	d	d	d
ddZd	S )	_ColorDoc)
foreground
background	intensityre   Color | Noner   r   Intensity | Noner   r!   re   Nr   r   r   c               |    t          |t                    s
J |            || _        || _        || _        || _        d S r5   )rJ   r!   re   r   r   r   )r1   re   r   r   r   s        r   rK   z_ColorDoc.__init__   sB     eS!!((5(((DJ DO DODNNNr3   )re   r!   r   r   r   r   r   r   )r   r<   r=   r>   rN   rK   r"   r3   r   r   r      so         @)***?C*.-1       r3   r   
_BreakModeFLATBREAKrW   r(   r)   agenda!list[tuple[int, _BreakMode, Doc]]c                   |dk    rt          |          dk    r|                                \  } t          | t                    rnt          | t                    r|t          | j                  z  }nZt          | t                    r6|                    fdt          | j	                  D                        nt          | t                    r*t          j        k    rdS |t          | j                  z  }nt          | t                    r&|                    | j        z   | j        f           nt          | t"                    r(|                    t          j        | j        f           nXt          | t&                    st          | t(                    r|                    | j        f           nt+          d|           |dk    rt          |          dk    |dk    S )Nr   c              3  "   K   | ]	}|fV  
d S r5   r"   )rV   dims     r   rX   z_fits.<locals>.<genexpr>   s)      >>!Q1I>>>>>>r3   TInvalid document )lenpoprJ   r@   rE   rF   rP   extendreversedrR   r^   r   r   ri   appendrk   re   rc   r   r   ro   
ValueError)rW   r(   r   r   r   s      @@r   _fitsr      s   

s6{{Q

IAq##w 1
	C	"	" 1s38}}ee	C	$	$ 1mm>>>>>x'='=>>>>>>>	C	#	# 1	
j		ts38}}ee	C	"	" 1mmQY39-....	C	#	# 1mmQ
34444	C	#	# 1z#}'E'E 1mmQ39%&&&&*C000' 	

s6{{Q* 
!r3   c                (   | g}d}d}t          |          dk    rv|                                } t          | t                    rn7t          | t                    r| j        |dk    r|rdS |dz  }n
t          | t                    r(|                    t          | j	                             nt          | t                    rd}nt          | t                    r|                    | j                   nt          | t                    r|                    | j                   nUt          | t                    st          | t                     r|                    | j                   nt#          d|           t          |          dk    vdS )Nr   F   Tr   )r   r   rJ   r@   rE   rG   rP   r   r   rR   r^   ri   r   re   rc   r   ro   r   )rW   r   num_annotations
seen_breaks       r   _sparser      s}   5&/*Fa
**,,C#w 1
	C	"	" 1		#aJ1	C	$	$ 1mmHS\**++++	C	#	# 	1jj	C	"	" 1mmCI	C	#	# 1mmCI	C	#	# 1z#}'E'E 1mmCI*C000) 	Fa, 
r3   c                  .    e Zd ZU ded<   ded<   ded<   dS )_ColorStateColorr   r   	Intensityr   Nr   r<   r=   rN   r"   r3   r   r   r     s6         r3   r   c                  B    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   dS )_Stater)   indentr   moder!   rW   r   colorr   r'   Nr   r"   r3   r   r   r   	  sC         +++
(((/////r3   r   c                  .    e Zd ZU ded<   ded<   ded<   dS )_Liner   rF   r)   r(   zstr | None | list[str]r   Nr   r"   r3   r   r   r     s0         )))***%%%%%%r3   r   r%   stateupdatetuple[_ColorState, str]c                   | rt           |dfS d}|j        |j        k    r4|t          t           j        t	          |j        j                            z  }|j        |j        k    r4|t          t           j        t	          |j        j                            z  }|j        |j        k    rH|t           j	        j
        z  }|t          t           j	        t	          |j        j                            z  }||fS )N )coloramar   getattrForer   namer   Backr   Styler   )r%   r   r   	color_strs       r   _update_colorr     s    	 h&2:)
***F,=,B(C(CDDDI
***F,=,B(C(CDDDI
_(((&&IV-=-B)C)CDDDI		r3   c           	        t          d | D                       }g }| D ]-}t          |j                  dk    r*|                    |                    d                      Et          |j                  dk    rI|                    |                    |j        d||j        z
  z  z   |j        d                              |                    |                    |j        d||j        z
  z  z   |j        d                              |j        dd          D ]/}|                    t          d|z  |j        |                     0/|S )Nc              3  $   K   | ]}|j         V  d S r5   )r(   )rV   ls     r   rX   z%_align_annotations.<locals>.<genexpr>(  s$      &&1qw&&&&&&r3   r   r   r    )rF   r   )rF   r(   r   )maxr   r   r   _replacerF   r(   r   )linesmaxlenoutr   as        r   _align_annotationsr   %  so    &&&&&&&&
# 
K 
Ka
1=Q	jj--....	Q]		q	 	 	jj#!'1A*B!B()a(8  : : ; ; ; ; 
jj#!'1A*B!B()a(8  : : ; ; ;}QRR  K K!

5cFl!'qIIIJJJJK	*r3   r&   r   r'   r+   c          	     d   g }t          t          j        t          j        t          j                  }t          t          j        t          j        t          j                  }|}d}	t          g }
t          dt          j	        | |          g}d}d}g }t          |          dk    r!|                                \  } }|@|k    r:t          |          }|	|k    r!t          ur|
                    |	|f           ||}	t          | t                    rnt          | t                    r]t!          ||          \  }}||z  }|| j        z  }| j        |                    | j                   |t          | j                  z  }n(t          | t&                    r8|                    fdt+          | j                  D                        nt          | t.                    rt          j	        k    rt          |          dk    rt!          |||          \  }}||z  }|                    t1          |||                     |Ot          |          }|	|k    r!t          ur|
                    |	|f           |                    |
           g }
}	dz  }g }}n
t!          ||          \  }}||z  }|| j        z  }|t          | j                  z  }nt          | t2                    r5|                    t          | j        z   | j                             nt          | t8                    rt;          |           r^t=          | ||z
  t          j        | j        fg          r7|                    t          t          j        | j                             n|                    t          t          j	        | j                             nt          | t@                    rat          | j!        pj!        | j"        pj"        | j#        pj#                  |                    t          | j                             nVt          | tH                    r1|                    t          | j        | j%                             ntM          d|           t          |          dk    !t          |          dk    rt!          |||          \  }}||z  }|Kt          |          }|	|k    r!t          ur|
                    |	|f           |                    |
           |                    t1          |||                     tO          |          }d(                    fd|D                       }t!          |||          \  }}||z   S )Nr   r   c              3  >   K   | ]}t          |          V  d S r5   )r   )rV   r   r   r   r   rq   s     r   rX   z_format.<locals>.<genexpr>Z  sG       5 5 1aE622 5 5 5 5 5 5r3   r   r   
c              3  X   K   | ]$}|j         |j        n|j          |j          V  %d S r5   )r   rF   )rV   r   r&   s     r   rX   z_format.<locals>.<genexpr>  sb       G G;< m#AFFF	6%	6q}	6	6G G G G G Gr3   ))r   r   r}   r   r   r   
_NO_SOURCEr   r   r   r   r   r   rJ   r@   rE   r   rF   rG   rP   r   r   rR   r^   r   ri   rk   re   rc   r   r   r   r   r   r   r   ro   rq   r   r   join)rW   r(   r%   r&   r'   r   default_colorsannotation_colorscolor_statesource_startline_source_mapr   k	line_textline_annotationsagenda_sourceposr   r   r   r   r   rq   s      `               @@@@r   r0   r0   9  s    %u{EK9IJJ.!%+u{IMJJ+,&/1j&^VDDE&!)Fa&,jjll#Aq#um-6"9"9	NNc			z!9!9c6:;;;fl#w 41
	C	"	" 21,YUKKk99i38i		#///3sx==aa	C	$	$ +1mm 5 5 5 5 5 5 5%cl335 5 5 5 5 5 5	C	#	# (1	
j		  1$$#0K1B$D $D
 +y
y
 )U9a)9::;;;!I#S  V:%=%=""L#v#>???


O
,
,
,/,!G	!.y+u!M!MYY	SX		S]]	C	"	" 1mmF1su9aE6BBCCCC	C	#	# 1 #,, MCa#)%D$EFFMfQ
E6JJKKKKfQ
 0#)UFKKLLLL	C	#	# 1#.<E,<.<E,<-:5?< <e mmF1aE6::;;;;	C	'	' 1mmF1aE3:>>????*C000y 	Fa| 		Q*9k+<> >KI
i..CsvZ77lC8999o&&&,,uY#344555
U
#
#%		 G G G G@EG G G 	G 	G# )K)79 9+y	yr3   c                     t           S )zAn empty document.)_nilr"   r3   r   rB   rB     s    	+r3   srG   rH   c                "    t          | |          S )zLiteral text.)rE   )r   rG   s     r   rF   rF     s    	!Z	 	  r3   docsrS   c                t    t          |           } t          |           dk    r| d         S t          |           S )zConcatenation of documents.r   r   )rY   r   rP   )r   s    r   r:   r:     s3    	d$YY!^^7N	D		r3   r   rF   c                     t          |           S )zYA break.

  Prints either as a newline or as `text`, depending on the enclosing group.
  )r^   r_   s    r   brkr     s    
 
4r3   c                     t          |           S )zLayout alternative groups.

  Prints the group with its breaks as their text (typically spaces) if the
  entire group would fit on the line when printed that way. Otherwise, breaks
  inside the group as printed as newlines.
  )rc   )rW   s    r   groupr     s     
3r3   rk   c                "    t          | |          S )z'Increases the indentation level by `n`.)ri   )rk   rW   s     r   nestr     s    	!S		r3   r   r   r   r   r   r   c               (    t          | |||          S )zANSI colors.

  Overrides the foreground/background/intensity of the text for the child doc.
  Requires use_colors=True to be set when printing and the `colorama` package
  to be installed; otherwise does nothing.
  r   )r   )rW   r   r   r   s       r   r   r     s$     
3:*&
( 
( 
( (r3   rq   r   c                "    t          | |          S )ao  Source mapping.

  A source map associates a region of the pretty-printer's text output with a
  source location that produced it. For the purposes of the pretty printer a
  ``source`` may be any object: we require only that we can compare sources for
  equality. A text region to source object mapping can be populated as a side
  output of the ``format`` method.
  )ro   )rW   rq   s     r   r'   r'     s     
sF	#	##r3   )r   r   sepc                    t          |          }t          |          dk    rt                      S |d         g}|dd         D ],}|                    |            |                    |           -t	          |          S )z(Concatenates `docs`, separated by `sep`.r   r   N)rY   r   rB   r   r:   )r   r   xsrW   s       r   r   r     ss    	d$YY!^^55LQy"!""X  cIIcNNNIIcNNNN	r3   )r   r   )rW   r!   r(   r)   r   r   r   r   )rW   r!   r   r   )r%   r   r   r   r   r   r   r   )rW   r!   r(   r)   r%   r   r&   r   r'   r+   r   r   )r   r!   r5   )r   r   rG   rH   r   r!   )r   rS   r   r!   )r   )rF   r   r   r!   )rW   r!   r   r!   )rk   r)   rW   r!   r   r!   )rW   r!   r   r   r   r   r   r   )rW   r!   rq   r   )r   r!   r   rS   r   r!   )=
__future__r   collections.abcr   enum	functoolsr   r   typingr   r   jax._srcr	   r
   r   ImportError	bool_flagbool_envr.   r   r-   	StrictABCr!   r@   r   rE   rP   r^   rc   ri   objectr   ro   Enumr   r   r   r   r   r   r   r   r   r   r   r0   rB   rF   r:   r   r   r   r   r'   r   rz   type_annotationr   ry   keywordr   r"   r3   r   <module>r      s  8 # " " " " " $ $ $ $ $ $        



 " " " " " " " "            ////   ((( %F$FO*D11	J   ? ? ? ?    ! ! ! ! !$. ! ! !6# # # # #c # # # wyy& & & & &s & & &"8 8 8 8 8 8 8 83 3 3 3 3 3 3 34 4 4 4 4 4 4 4
; 
; 
; 
; 
;s 
; 
; 
; VXX

D 
D 
D 
D 
DC 
D 
D 
D 		( B B B 	C 	CDIl$?$?$?@@	       " TY|fg%677
   8   8    *   
    Z   & & & & &J & & &     (] ] ] ]H   ! ! ! ! !             
 37%)(,
( 
( 
( 
( 
( 
(	$ 	$ 	$ 	$ '%9+;%*]4 4 4
'%9#3

K
K
K	 	 	 	 	 	s   5 ??