
    EgN                         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
Z
ej        dk    rd Zn	 d dlmZ d Zn# e$ r d ZY nw xY w G d d          Z G d	 d
          ZdS )    N)      c                 ,    t          | t                    S N
isinstanceExceptionGroupexcs    N/var/www/sysmax/venv/lib/python3.11/site-packages/loguru/_better_exceptions.pyis_exception_groupr      s    #~...    )r	   c                 ,    t          | t                    S r   r   r
   s    r   r   r      s    c>222r   c                     dS )NF r
   s    r   r   r      s    5r   c                   
   e Zd Zddddddddddd
Z e ee                    Zh d	Zh d
Z	e
j        hZdZej        dk    r.e                    e
j        e
j        e
j        h           e
j        ZddZd Zed             Z
dS )SyntaxHighlighterz[30m[1m{}[0mz[35m[1m{}[0m
[1m{}[0m[36m{}[0mz[34m[1m{}[0m[36m[1m{}[0mz{})
commentkeywordbuiltinstringnumberoperatorpunctuationconstant
identifierother>   NoneTrueFalse>	   {}(),:;[]N)r      c                 "    |p| j         | _        d S r   )_default_style_style)selfstyles     r   __init__zSyntaxHighlighter.__init__8   s    2t2r   c                 F   | j         }d\  }}d}|                     |          D ]n}|\  }}\  }	}
\  }}}|| j        k    r.||                    d          |                    d          z   z  }|t          j        k    rJ|| j        v r	|d         }nt          j        |          r	|d         }n|| j        v r	|d         }n|d         }nw|t          j	        k    r|| j
        v r	|d	         }nU|d
         }nL|t          j        k    r	|d         }n3|| j        v r	|d         }n!|t          j        k    r	|d         }n|d         }|	|k    r||d          }|	d}}|t          j        k    r-||||
         z  }||                    ||
|                   z  }|}p|||d          z  }|S )N)r   r    r$   r%   r   r   r   r   r   r   r   r   r   r    r   )r0   tokenize_fstring_middlecountNAME
_constantsr   	iskeyword	_builtinsOP_punctationNUMBER_stringsCOMMENTENCODINGformat)r1   sourcer2   rowcolumnoutputtokentype_r   	start_rowstart_column_
end_columnlinecolors                  r   	highlightzSyntaxHighlighter.highlight;   s   V]]6** '	  '	 ENSKE64I|oq*t,,, fll3//&,,s2C2CCC
%%T_,,!*-EE&v.. 0!),EEt~--!),EE!,/EE(+%%T---!-0EE!*-EE(/))h$-''h(***i(gC'V)))$vl233%,,tL,C'DEEEFF&/!r   c              #      K   |                      d          } t          j        |           } 	 t          j        | j                  E d {V  d S # t          j        $ r Y d S w xY w)Nzutf-8)encodeioBytesIOr6   readline
TokenError)rD   s    r   r6   zSyntaxHighlighter.tokenizem   s}       w''F##	(99999999999" 	 	 	FF	s   A A! A!r   )__name__
__module____qualname__r/   setdirbuiltinsr<   r:   r>   r6   STRINGr@   r7   sysversion_infoupdateFSTRING_STARTFSTRING_MIDDLEFSTRING_ENDr3   rP   staticmethodr   r   r   r   r       s        --%%,.).( N CCMM""I***J???K HO
7""/1H(J^_```"13 3 3 30 0 0d   \  r   r   c                       e Zd Zddddddddddd	d
Z	 	 	 	 	 	 	 	 	 d#dZed             Zeddd            Zd Zd Z	ddddZ
d Zd Zd Zd Zdddddd Zdd!d"ZdS )$ExceptionFormatterz[33m[1m{}[0mr   z[32m{}[0mz[32m[1m{}[0mz[33m{}[0mz[35m{}[0mz[31m[1m{}[0mr   r   )introductioncausecontextdirnamebasenamerN   functionexception_typeexception_valuearrowsvalueFTN   asciir5   c
                 X   || _         || _        |p| j        | _        || _        t          |          | _        || _        || _        || _	        |	| _
        |                                 | _        |                     dd          | _        |                     dd          | _        d| _        d S )Nu   │|u   └z->z <Loguru catch point here>)	_colorize	_diagnose_default_theme_theme
_backtracer   _syntax_highlighter_max_length	_encoding_hidden_frames_filename_prefix_get_lib_dirs	_lib_dirs	_get_char
_pipe_char	_cap_char_catch_point_identifier)
r1   colorize	backtracediagnosethemer2   
max_lengthencodinghidden_frames_filenameprefixs
             r   r3   zExceptionFormatter.__init__   s     "!2t2##4U#;#; %!'=$++--..377$77'C$$$r   c                  f    t          j                    } g dfd| D             }d |D             S )N)stdlib
platstdlibplatlibpurelibc                 D    h | ]}D ]}t          j        ||          S r   )	sysconfigget_path).0schemenamenamess      r   	<setcomp>z3ExceptionFormatter._get_lib_dirs.<locals>.<setcomp>   s4    ZZZfTYZZD#D&11ZZZZr   c                     g | ]N}|t           j        v t          j                            |                                          t          j        z   OS r   )r^   pathosabspathlowersep)r   r   s     r   
<listcomp>z4ExceptionFormatter._get_lib_dirs.<locals>.<listcomp>   sG    ]]]4DTWT\L\L\%%++--6L\L\L\r   )r   get_scheme_names)schemespathsr   s     @r   r   z ExceptionFormatter._get_lib_dirs   sI    ,..>>>ZZZZZZZ]]5]]]]r   z| r   c             #      K   |dk    r| V  d S |                      d          D ]&}d|z  |z   |z   }|                                dz   V  'd S )Nr   T  
)
splitlinesrstrip)textr8   r   rN   indenteds        r   _indentzExceptionFormatter._indent   ss      A::JJJFOOD)) 	+ 	+De|f,t3H//##d*****	+ 	+r   c                 n    	 |                     | j                   |S # t          t          f$ r |cY S w xY wr   )rR   r|   UnicodeEncodeErrorLookupError)r1   chardefaults      r   r   zExceptionFormatter._get_char   sM    	KK''' K #K0 	 	 	NNN	s    44c                     t           j                            |                                                              d          sdS t          fd| j        D                        S )Nz.pyFc              3   B   K   | ]}                     |          V  d S r   )
startswith)r   dfilepaths     r   	<genexpr>z3ExceptionFormatter._is_file_mine.<locals>.<genexpr>   s1      FF!x**1--FFFFFFr   )r   r   r   r   endswithanyr   )r1   filer   s     @r   _is_file_minez ExceptionFormatter._is_file_mine   se    7??4((..00  '' 	5FFFFt~FFFFFFFr   limitfrom_decoratorc                ~    g d }}||
|dk    r||fS  fd}d }g }	 ||j                   r0|	                     ||j         |j                  |j         f           |o j         }
 j        r|s|
ru|j         j        }|r> ||          r*|	                    d |||j                  |f           |
rn	|j        }|>|	r'|
s%|	d         \  \  }}}}}| j        z  }||||f|f|	d<   |j        }|rI ||j                   r0|	                     ||j         |j                  |j         f           |j        }|I||	| d          }	|	D ]\  \  }}}}}|}|rʉ j	        o 
                    |          }g }|r.|                     j                            |                     n|                    |            j        rK                     ||          }                     t!          |          |          }|t!          |          z  }d                    |          }|                    ||||f           ||fS )Nr   c                 .    | j         j        j        k    S r   )f_codeco_filenamer}   )framer1   s    r   is_validz4ExceptionFormatter._extract_frames.<locals>.is_valid   s    <+t/KKKr   c                     | j         j        }| j         j        }t          j        ||                                          }||||fS r   )r   r   co_name	linecachegetlinestrip)r   linenofilenamerl   rD   s        r   get_infoz4ExceptionFormatter._extract_frames.<locals>.get_info   sC    |/H|+H&x88>>@@FVXv55r   z
    )tb_frameappend	tb_linenory   f_backinsertf_linenor   tb_nextru   r   rz   rP   rv   _get_relevant_values_format_relevant_valueslistjoin)r1   tbis_firstr   r   framesfinal_sourcer   r   infosget_parent_onlyr   r   r   rl   rD   r   linesrelevant_valuesvaluess   `                   r   _extract_framesz"ExceptionFormatter._extract_frames   s   !4:%+

<''	L 	L 	L 	L 	L	6 	6 	6 8BK   	MLL((2;==r{KLLL(@-@O 	J 	J_ 	JK&E %8E?? LLXXeU^%D%De$LMMM&   %  J_ J>CBi;468VeD88&&A5Ib	Z 	x$$ Qhhr{BLAA2;OPPPB  	
 5&''NE;@ 	@ 	@70Xvx%!L .>Jd.@.@.J.J )LL!9!C!CF!K!KLLLLLL(((> *&*&?&?&N&NO!99$:O:OQYZZFT&\\)E!u--MM8VXv>????|##r   c              #     K   d }d }d}d}d}| j                             |          D ]}|^}	}
\  }}}||	t          j        k    s|
dk    s|r|V  d }|	t          j        k    rt	          j        |
          s|sE|j        |j        fD ]5}	 ||
         }d}||                     |          f} n# t          $ r Y 2w xY w|rB	 t          j        ||
          }||                     |          fV  # t          $ r d}Y w xY w|	t          j        k    r|
dk    rd}d}|	t          j        k    r|
dk    rd}d}d}d}d}d}||V  d S d S )NFT=.r*   )rz   r6   r=   r9   r   r;   f_locals	f_globals_format_valueKeyErrorinspectgetattr_staticAttributeError)r1   rD   r   rp   pendingis_attributeis_valid_valueis_assignmentrH   rI   r   rL   col	variabless                 r   r   z'ExceptionFormatter._get_relevant_values   s     -66v>> %	& %	&E*/'E68Asa"HK''6S==M=!MMM%%g.?.G.G%# ?&+neo%F " "	"$-f$5E .2N'*D,>,>u,E,E&FG!E  ( % % %$H% $ ?? ' 6uf E E  #D$6$6u$=$=>>>>> * / / /)./? (+%%&C--# %(+%%&C-- $$!&$!& %MMMMM s$   
B--
B:9B:C00C?>C?c              #   @  K   t          t          t          |                              D ]}||         \  }}d |d |         D             }d}d}|D ]}	|d|	|z
  z  | j        z   z  }|	dz   }|d||z
  z  z  }|                    d          }
t          |
          D ]\  }}|dk    r|| j        z   dz   }n|dt          | j                  dz   z  z   }|r@| j        d                             |          }| j        d                             |          }||z   V  d S )	Nc                     g | ]\  }}|S r   r   )r   pcolrL   s      r   r   z>ExceptionFormatter._format_relevant_values.<locals>.<listcomp>4  s    AAA'$AAAr   r5   r       r   ro   rp   )	reversedrangelenr   split	enumerater   rx   rC   )r1   r   r   ir   rp   	pipe_colspre_lineindexpcvalue_linesn
value_linero   s                 r   r   z*ExceptionFormatter._format_relevant_values1  sn     %O 4 45566 	* 	*A(+JCAA_RaR-@AAAIHE  SBJ/4?BBQsU{++H++d++K!*;!7!7 
* 
*:66%6<FF%s4>/B/BQ/F(GGF I![299&AAF!%W!5!<!<Z!H!HJz)))))
*	* 	*r   c                     	 t          |          }n'# t          $ r dt          |          j        z  }Y nw xY w| j        }|#t          |          |k    r|d |dz
           dz   }|S )Nz<unprintable %s object>r   ...)repr	ExceptiontyperW   r{   r   )r1   vr   s      r   r   z ExceptionFormatter._format_valueK  s    	=QAA 	= 	= 	=)DGG,<<AAA	= %
!c!ffz&9&9"JN"#e+As    !66c             #   r  K   |}d}|D ]}t          j        ||          }|r|                    ddd          \  }}}	|                     |          }
|	d}nd}| j        rF|	rD|	                    | j                  r*|	d t          | j                            }	d|dd          z   }| j        r|
rt          j
                            |          \  }}|r|t          j        z  }| j        d	                             |          }| j        d
                             |          }||z   }| j        d                             |          }| j        d                             |	          }	| j        r	|
s|rd|z   }|                    |||	          }|||                                d          z   }|
}|V  d S )NzI^  File "(?P<file>.*?)", line (?P<line>[^,]+)(?:, in (?P<function>.*))?\nr   rN   rl   z  File "{}", line {}, in {}
z  File "{}", line {}
>r   rj   rk   r   )rematchgroupr   ry   r   r   r   ru   r   r   r   r   rx   rC   rv   end)r1   frames_lineshas_introductionprepend_with_new_lineregexr   r  r   rN   rl   is_minepatternrj   rk   locations                  r   _format_locationsz$ExceptionFormatter._format_locationsV  s      0\! "	 "	EHUE**E 0',{{66:'N'N$dH,,T22'=GG6G? 0x 0H4E4EdFb4c4c 0'(L3t/K+L+L*L(LMH!GABBK/G> Hg H(*d(;(;%GX *26)"k)4;;GDDG#{:6==hGGH"X-D;v.55d;;D#{:6==hGGH> -w -2G -"WnG">>$h?? 5#77(/%KKKKE"	 "	r   r   )seenr   r   group_nestingc             #     K   t          |          ||}	}}|t                      }|                    t          |                     |r|j        t          |j                  |vr|                     |j        |j        j        ||          E d {V  d}
| j        r | j        d         	                    |
          }
| j
        r#|                     d|
z   dz   |          E d {V  n|                     d|
z   dz   |          E d {V  n|j        t          |j                  |vr|j        s|                     |j        |j        j        ||          E d {V  d}| j        r | j        d         	                    |          }| j
        r#|                     d|z   dz   |          E d {V  n"|                     d|z   dz   |          E d {V  t          |          }|r)|d	k    r#|                     |||d
||          E d {V  d S 	 t          j        }n# t"          $ r d }Y nw xY w|                     |	|||          \  }}t'          j        ||          }t+          |          D ]\  }}|                    d          s n||         d d         }| j        rd|v rb|                    dd
          \  }}| j        d         	                    |          }| j        d         	                    |          }|dz   |z   }n | j        d         	                    |          }| j
        rV|rTt1          |t2                    r:t5          |          s+|r)| j        r| j                            |          }|d|z   z  }d|z   }|dz   ||<   |r	| j        V  t=          |          }|ru|rd}nd}| j        r | j        d         	                    |          }|d
k    r"|                     |dz   |d          E d {V  n|                     |dz   |          E d {V  t'          j        |          |z   }| j        s| j         s| j
        r| !                    ||          }|                     d"                    |          |          E d {V  |r=t+          |j#        d
          D ]\  }}dd|dk    rdn|z  $                    dd           z   }|                     |||d
k    rd!nd"          E d {V  |dk    r;d#tK          |j#                  dz
  z  }|                     ||d
z             E d {V   n_|d$k    r1t          |          r"d%}|                     ||d
z             E d {V  |                     ||j        ||d
z             E d {V  t          |          r|d$k    r%|                     d&|d
z   d!          E d {V  d S d S d S )'N)r  r  zDThe above exception was the direct cause of the following exception:rh   z

z


r   zCDuring handling of the above exception, another exception occurred:ri   r   r   )r  r  r   r   r   r   r   r)   rm   rn   z: z2Exception Group Traceback (most recent call last):z"Traceback (most recent call last):rg   z+ r   )r  r5   )start+z %s    r  #   -z+-r   zand %d more exceptions

   z... (max_group_depth is 10)
z#-----------------------------------)&r	  rZ   addid	__cause___format_exception__traceback__ru   rx   rC   rv   r   __context____suppress_context__r   r^   tracebacklimitr   r   	tracebackformat_exception_onlyr   r   r   
issubclassAssertionErrorstrrz   rP   r~   boolformat_listry   r  r   
exceptionscenterr   )r1   rp   r   r  r   r   r  exc_type	exc_valueexc_tracebackrh   ri   
is_groupedtraceback_limitr   r   exception_onlyerror_message_indexparterror_messagerm   rn   r  rg   r  r  r   rulermessages                                r   r%  z$ExceptionFormatter._format_exception~  s     
 .2%[[%])<55DI !	T".2i6I3J3JRV3V3V11''5"/	 2          _> ? K077>>E> R#||FUNX,E}UUUUUUUUUU#||D5L6,A=QQQQQQQQQQ %1y,--T99!6 :  11))7"/	 2          `> E"k)4;;GDDG> T#||FW,<x,GWWWWWWWWWW#||D7NV,C]SSSSSSSSS'..
 		-1,,--!- .          F	#!0OO 	# 	# 	#"OOO	#  $338?>  4  
  
 #89MM *3>)B)B 	 	%??3''  '':;CRC@> 	Tm##2?2E2Ec12M2M/!%-=!>!E!En!U!U"&+.?"@"G"G"X"X . 4 F $,< = D D] S S> 	1f 	1(N33 5C	NN 5| 5> T#'#;#E#El#S#SL!44 =0M.;d.B*+ 	,<< 
	L DSC~ P#{>:AA,OO!!<<t(;]SW<XXXXXXXXXX<<t(;]KKKKKKKKK ,V44~E> 	cT_ 	c 	c11,Qa1bbL<< 5 5}EEEEEEEEE 	R#E$4A>>>  3v!b&&a@HHSQQQ<<}QRSVVTTY]<^^^^^^^^^r668C@P<Q<QTV<VWG#||G]Q5FGGGGGGGGGE"b((-?-D-D(=G#||G]Q5FGGGGGGGGGG#55)!&3a&7	  6             &c** Rmr.A.A<<-!2CD<QQQQQQQQQQQ'	R 	R$ /B.As   H H*)H*)r   c             #   H   K   |                      ||d|          E d {V  d S )NT)r   r   )r%  )r1   rI   rp   r   r   s        r   format_exceptionz#ExceptionFormatter.format_exception  s<      ))%dSa)bbbbbbbbbbbr   )	FFTNNrq   rr   Nr5   )rW   rX   rY   rw   r3   rd   r   r   r   r   r   r   r   r   r  r%  r?  r   r   r   rf   rf   y   s       2#%&.#'4-%+ N  #D D D D4 ^ ^ \^ '+ + + + + \+  G G G 6:% >$ >$ >$ >$ >$@/ / /b* * *4	 	 	& & &R "&e[\OR OR OR OR ORb DI c c c c c c cr   rf   )r\   r   rS   r   r   r   r  r^   r   r6   r*  r_   r   exceptiongroupr	   ImportErrorr   rf   r   r   r   <module>rB     sk     				      				 				 



         w/ / / /
3111111	3 	3 	3 	3    	 	 	 	 	V V V V V V V VrWc Wc Wc Wc Wc Wc Wc Wc Wc Wcs   A AA