ó
    Ñ]j=  ã            
       ó  • S SK r S SKrS SKrS SKJr  S SKJr  S SKJrJ	r	  S SKJ
r
  S SKrS SKJr  S SKJr  S SKJrJrJr  S S	KJr  S
SKJrJrJrJrJrJrJr  SrS\\R@                     S\S\!S\\   S\4
S jr" " S S\5      r#g)é    N)ÚSequence)ÚTracebackType)ÚAnyÚOptional)ÚCallable)ÚTerminal256Formatter)ÚToken)ÚThemeÚTokenStreamÚtheme_table)Úget_terminal_sizeé   )Ú	FrameInfoÚTBToolsÚ_safe_stringÚ_tokens_filenameÚeqreprÚget_line_number_of_frameÚnullrepré   ÚlinesÚthemeÚ
has_colorsÚ
lvals_toksÚreturnc                 óð  • [         S-
  n[        S4/nU  GH\  nU[        R                  L a&  [        R                  S4/nUR                  U5        M=  UR                  nUR                  US9R                  S5      S-   n	UR                  (       aH  U[        [        U5      5      -
  n
[        R                  UR                  S5      4[        S4[        U	4/nO[        S4[        S4[        U	4/nUR                  U5        U(       d  Mô  UR                  (       d  GM  U HI  nUR                  [        S[         -  45        UR                  U5        UR                  [        S45        MK     USS	 nGM_     U$ )
z¦
Format tracebacks lines with pointing arrow, leading numbers,
this assumes the stack have been extracted using stackdata.


Parameters
----------
lines : list[Line]
r   Ú
z   (...))Ú	pygmentedé   Ú z...Néÿÿÿÿ)ÚINDENT_SIZEr	   Ú
stack_dataÚLINE_GAPÚLinenoEmÚextendÚlinenoÚrenderÚrstripÚ
is_currentÚlenÚstrÚPromptÚ
make_arrowÚappend)r   r   r   r   Únumbers_widthÚtokensÚ
stack_lineÚtoksr'   ÚlineÚpadÚlvs               ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/IPython/core/doctb.pyÚ_format_traceback_linesr8      sT  € ô   !‘O€MÜ! 4˜=˜/€Fäˆ
Øœ×,Ñ,Ò,Ü—^‘^ ZÐ0Ð1ˆDØ�M‰M˜$ÔÙà×"Ñ"ˆØ× Ñ ¨:Ð Ð6×=Ñ=¸dÓCÀdÑJˆØ× × à¤#¤c¨&£kÓ"2Ñ2ˆCä—‘˜u×/Ñ/°Ó2Ð3Ü˜�Ü˜�ð‰Dô ˜�Ü˜�Ü˜�ð	ˆDð 	�‰�dÔßˆ:˜*×/×/Ò/Û �Ø—‘œu c¬KÑ&7Ð8Ô9Ø—‘˜bÔ!Ø—‘œu d˜mÖ,ñ !ð
 ˜C˜R�[‹FñA ðD €Mó    c                   óà  ^ • \ rS rSr% SrSrSr\\S'   \	\S'   \	\S'   \
\S'           S"S
\
S\	S\S\S\	S\	S\/ S	4   S	-  S\S	-  4U 4S jjjrS\S\
4S jrS\
S\
4S jrS\S\S\4S jrS\S\\   S\\   S\S\\   S\\\
      4S jrS\S\S\S\4S jr   S#S\S\\   S\\   S\\   S\S\\
   4S jjrS$S\	SS	4S jjrS%S\\\\4   S	-  SS	4S jjrS&S\S\S\SS	4S  jjrS!rU =r$ )'ÚDocTBéT   zl

A stripped down version of Verbose TB, simplified to not have too much information when
running doctests

Ú ÚdefaultÚ	tb_offsetÚlong_headerÚinclude_varsÚ_modeNÚ
theme_nameÚcall_pdbÚostreamÚcheck_cacheÚdebugger_clsc	                 ó¸   >• [        U[        5      (       d   e[        T	U ]  UUUUS9  X@l        XPl        X`l        Uc  [        R                  nXpl	        SU l
        g)a7  Specify traceback offset, headers and color scheme.

Define how many frames to drop from the tracebacks. Calling it with
tb_offset=1 allows use of this handler in interpreters which will have
their own code at the top of the traceback (VerboseTB will first
remove that frame before printing the traceback info).)rC   rD   rE   rG   NT)Ú
isinstancer,   ÚsuperÚ__init__r?   r@   rA   Ú	linecacheÚ
checkcacherF   Úskip_hidden)
ÚselfrC   rD   rE   r?   r@   rA   rF   rG   Ú	__class__s
            €r7   rK   ÚDocTB.__init__d   sj   ø€ ô$ ˜*¤c×*Ñ*Ð*Ð*Ü‰ÑØ!ØØØ%ð	 	ñ 	
ð #ŒØ&ÔØ(Ôð ÑÜ#×.Ñ.ˆKØ&ÔàˆÕr9   Ú
frame_infor   c           
      óÖ  • [        U[        5      (       d   e[        UR                  [        R                  5      (       aN  [
        U R                     R                  [        S4[        R                  SUR                  -  4[        S4/5      $ S[        -  n[        UR                  [        5      (       d   e[        R                  " UR                   5      u  p4pVUR"                  b  UR"                  R%                  5       nOSnUS:X  a  SnO–U R&                  (       a  [(        O[*        n	 [        R,                  " X4XVU	S9n
[        U
[.        5      (       d   e[
        U R                     R                  [        S	4[        R0                  U4[        R2                  U
4/5      n/ nU R&                  (       at   UR6                  nU Ha  nUR9                  [        UR:                  4[        S4[        R2                  S4[        R2                  [=        UR>                  5      4/5        Mc     UR                  c   e[
        U R                     R                  [C        SURD                  UR                  S95      nXè(       a  SOS-  nXè S3-  nU[
        U R                     R                  [G        URH                  [
        U R                     U RJ                  U5      5      -  nU$ ! [4         aO    [
        U R                     R                  [        S	4[        R0                  U4[        R2                  S
4/5      n GN™f = f! [@         a    UR9                  [        S4/5         GN;f = f)zFormat a single stack frameú    z![... skipping similar frames: %s]r   r    Ú?z<module>r=   )Úformatvaluezin z"(***failed resolving arguments***)z= z<Exception trying to inspect frame. No more locals available.T)r'   z, )&rI   r   Ú_sdr#   ÚRepeatedFramesr   Ú_theme_nameÚformatr	   ÚExcNameÚdescriptionr"   r'   ÚintÚinspectÚgetargvaluesÚframeÚ	executingÚcode_qualnamerA   r   r   Úformatargvaluesr,   ÚVNameÚValEmÚKeyErrorÚvariables_in_executing_piecer/   ÚnameÚreprÚvalueÚ	Exceptionr   Úfilenamer8   r   r   )rO   rR   ÚindentÚargsÚvarargsÚvarkwÚlocals_ÚfuncÚcallÚvar_reprÚscoper   ÚfibpÚvarÚresults                  r7   Úformat_recordÚDocTB.format_record‰   s  € ä˜*¤i×0Ñ0Ð0Ð0ä�j—n‘n¤j×&?Ñ&?×@Ñ@Ü˜t×/Ñ/Ñ0×7Ñ7ä˜F�OäŸ™Ø;¸j×>TÑ>TÑTðô ˜D�Mðó	ð 	ð œKÑ'ˆä˜*×+Ñ+¬S×1Ñ1Ð1Ð1Ü(/×(<Ò(<¸Z×=MÑ=MÓ(NÑ%ˆ�uØ×ÑÑ+Ø×'Ñ'×5Ñ5Ó7‰DàˆDØ�:ÓØ‰Dð "&×!2×!2•v¼ˆHðÜ×/Ò/Ø 5¸xñ�ô " %¬×-Ñ-Ð-Ð-Ü" 4×#3Ñ#3Ñ4×;Ñ;Ü˜U�^¤e§k¡k°4Ð%8¼5¿;¹;ÈÐ:NÐOó�ð8 )+ˆ
Ø××ðð "×>Ñ>�Û�CØ×%Ñ%ä" C§H¡HÐ-Ü" C˜LÜ"Ÿ[™[¨$Ð/Ü"Ÿ[™[¬$¨s¯y©y«/Ð:ð	öñ  ð& �~‰~Ñ)Ð)Ð)Ü˜T×-Ñ-Ñ.×5Ñ5Ü˜T :×#6Ñ#6¸z×?PÑ?PÑQó
ˆð 	�$‘$ BÑ&ˆØ�F˜"�+ÑˆØ”+˜d×.Ñ.Ñ/×6Ñ6Ü#Ø× Ñ Ü˜D×,Ñ,Ñ-Ø—‘Øó	ó
ñ 	
ˆð ˆøôA ó ô" # 4×#3Ñ#3Ñ4×;Ñ;ä ˜ÜŸ™ dÐ+ÜŸ™Ð&JÐKðó“ð#ûôP ó Ø×!Ñ!ô "ØZðð÷ðús'   Ä-A8K& Æ9A3M Ë&AL?Ì>L?Í"M(Í'M(Úetypec                 ó”   • [        S[        5       S   5      n[        U R                     R	                  [
        S4[
        S4/5      nU$ )NéK   r   z"Traceback (most recent call last):r    )Úminr   r   rY   rZ   r	   )rO   r{   ÚwidthÚheads       r7   Úprepare_headerÚDocTB.prepare_headerð   sT   € Ü�BÔ)Ó+¨AÑ.Ó/ˆÜ˜4×+Ñ+Ñ,×3Ñ3ô Ø8ðô ˜�ðó
ˆð ˆr9   Úevaluec                 óÐ  ^ •  [        [        X45      u  p4[	        US/ 5      n[        U[        5      (       a  [        U[        [        45      (       a  [        US[        S9/n[        T R                     R                  [        R                  U4[        S4[        U4/5      /U 4S jU 5       Q$ !   [        [        R                  " 5       S S p![        [        X45      u  p4 NÏ= f)Né   Ú	__notes__)rr   z: c              3   óŠ   >#   • U  H8  n[         TR                     R                  [        [	        US 5      4/5      v •  M:     g7f)ÚnoteN)r   rY   rZ   r	   r   )Ú.0ÚnrO   s     €r7   Ú	<genexpr>Ú)DocTB.format_exception.<locals>.<genexpr>  s@   øé € ð â�Aô ˜D×,Ñ,Ñ-×4Ñ4´u¼lÈ1ÈfÓ>UÐ6VÐ5W×XÐXÚùs   ƒA A)Úmapr,   ÚsysÚexc_infoÚgetattrrI   r   Úbytesr   ri   r   rY   rZ   r	   r[   )rO   r{   rƒ   Ú	etype_strÚ
evalue_strÚnotess   `     r7   Úformat_exceptionÚDocTB.format_exceptionþ   sØ   ø€ ð	>Ü$'¬¨e¨_Ó$=Ñ!ˆIô ˜ ¨RÓ0ˆÜ˜%¤×*Ñ*¬j¸ÄÄeÀ×.MÑ.MÜ! %¨¼4Ñ@ÐAˆEô ˜×(Ñ(Ñ)×0Ñ0Ü—-‘- Ð+¬e°T¨]¼UÀJÐ<OÐPóð
ôáóð	
ð 	
øð	>ä¤§¢£°°Ð!3�6Ü$'¬¨e¨_Ó$=Ñ!ˆI‘zús   ƒB1 Â12C%ÚetbÚcontextc           
      ór  • Un UR                   nUc  U R                  OUn[        U[        5      (       d   eU R                  [        U5      5      nUS:X  d   U5       eU(       a  U R                  X4U5      O/ n/ n	Sn
[        U5      S-
  nU	R                  U R                  US   5      5        U(       aW  U	R                  [        U R                     R                  [        S4[        S4[        SU-  4[        S4[        S4/5      5        U R                  X5      nU/U	-   U-   /$ ! [         a     GN%f = f)zšFormats the header, traceback and exception message for a single exception.

This may be called multiple times by Python 3 exception chaining
(PEP 3134).
r   r   r   rT   z[... %s skipped frames])Ú__name__ÚAttributeErrorr?   rI   r]   r�   r,   Úget_recordsr+   r/   ry   r   rY   rZ   r	   r•   )rO   r{   rƒ   r—   r˜   r?   Ú
orig_etyper€   ÚrecordsÚframesÚskippedÚnskippedÚformatted_exceptions                r7   Úformat_exception_as_a_wholeÚ!DocTB.format_exception_as_a_whole  s=  € ð ˆ
ð	Ø—N‘NˆEð '0Ñ&7�D—N’N¸Yˆ	Ü˜)¤S×)Ñ)Ð)Ð)Ø×"Ñ"¤3 u£:Ó.ˆØ˜!‹|Ð$˜WÓ$ˆ|Þ?B�$×"Ñ" 3°Ô;ÈˆàˆØˆÜ�w“< !Ñ#ˆØ�‰�d×(Ñ(¨°©Ó4Ô5ÞØ�M‰MÜ˜D×,Ñ,Ñ-×4Ñ4ä ˜Ü ˜ÜÐ 9¸HÑ DÐEÜ ˜Ü ˜ðóô
ð #×3Ñ3°EÓBÐØ�˜‘Ð"5Ñ5Ð6Ð6øô7 ó 	Úð	ús   „D( Ä(
D6Ä5D6c                 ó@  • US:X  d   U5       eUc   eUS-
  nUS-  nX$-
  nU R                   (       aK  [        U R                     R                  5       n[        R
                  " X`R                  5      n[        US9nOS n[        R                  " UUUS9n	Un
Sn/ nU
bš   [        R                  " U
R                  5      nUb3  UR                  nUR                  S5      tnnUS:X  a  U
R                  n
MZ  [        U
R                  5      n[#        X»5      nUR%                  U
5        ['        U
SS 5      n
U
b  Mš  [)        [        R*                  R	                  XS	95      US  nU Vs/ s H  n[*        R,                  " U5      PM     nnU$ ! [          a    Sn N�f = fs  snf )
Nr   r…   )Ústyle)ÚbeforeÚafterÚpygments_formatterr   Ú.ÚIPythonÚtb_next)Úoptions)r   r   rY   Úas_pygments_styler#   Ústyle_with_executing_nodeÚtb_highlightr   ÚOptionsr^   Ú	getmoduleÚtb_framerš   Úsplitr¬   r   ÚOSErrorÚmaxr/   r�   Úlistr   Ú_from_stack_data_FrameInfo)rO   r—   r˜   r?   r¨   r§   Ú
base_styler¦   Ú	formatterr­   ÚcfÚmax_lenÚtbsÚmodÚmod_nameÚ	root_nameÚ_ÚresÚrÚres2s                       r7   rœ   ÚDocTB.get_recordsE  s—  € Ø˜!‹|Ð$˜WÓ$ˆ|Ø‰ÐˆØ˜A‘+ˆØ˜1‘ˆØ‘ˆØ�?�?Ü$ T×%5Ñ%5Ñ6×HÑHÓJˆJÜ×8Ò8¸×EVÑEVÓWˆEÜ,°5Ñ9‰IàˆIÜ×$Ò$ØØØ(ñ
ˆð '*ˆØˆØˆØ‰nðÜ×'Ò'¨¯©Ó4�Ø‘?Ø"Ÿ|™|�HØ$,§N¡N°3Ó$7�M�I Ø  IÓ-ØŸZ™Z˜Ù Ü2°2·;±;Ó?�ô ˜'Ó+ˆGØ�J‰J�rŒNÜ˜˜Y¨Ó-ˆBð ‹nô" ”:×'Ñ'×2Ñ2°3Ð2ÐHÓIÈ)È*ÐUˆÙADÓEÂ¸A”	×4Ò4°QÖ7ÁˆÐEØˆøô ó Ø’ðüò Fs   ÂAF	 Ã5F	 Å% FÆ	FÆFc                 óœ  • US:”  d   eUS:X  d   U5       eU R                  XX5U5      n[        S[        5       S   5      n[        U R                     n/ n	Sn
SnU R                  U5      nU(       a(  Uc   eX`R                  UR                  5      -  nUu  pnOSn[        5       nU(       aŠ  X`R                  XX;U
5      -  nU R                  U5      nU(       aR  [        US   5      U;  a@  UR                  [        US   5      5        X`R                  UR                  5      -  nUu  pnOSnU(       a  MŠ  [        U5       H  nXž-  n	M	     U	$ )z5Return a nice text document describing the traceback.r   r   r}   r   N)r£   r~   r   r   rY   Úget_parts_of_chained_exceptionÚ!prepare_chained_exception_messageÚ	__cause__ÚsetÚidÚaddÚreversed)rO   r{   rƒ   r—   r?   r˜   Úformatted_exceptionsÚtermsizer   Ústructured_traceback_partsÚchained_exceptions_tb_offsetÚlines_of_contextÚ	exceptionÚchained_exc_idsÚfxs                  r7   Ústructured_tracebackÚDocTB.structured_tracebackp  s„  € ð ˜‹{Ðˆ{Ø˜!‹|Ð$˜WÓ$ˆ|Ø04×0PÑ0PØ˜3¨ó1
Ðô �rÔ,Ó.¨qÑ1Ó2ˆÜ˜D×,Ñ,Ñ-ˆØ02Ð"Ø'(Ð$ØÐØ×7Ñ7¸Ó?ˆ	ÞØÑ%Ð%Ð%Ø ×$JÑ$JØ× Ñ ó%ñ Ð ð "+ÑˆE™3àˆFÜ›%ˆÞØ ×$DÑ$DØ˜sÐ6Ró%ñ Ð ð ×;Ñ;¸FÓCˆIæœR 	¨!¡Ó-°_ÓDØ×#Ñ#Ü�y ‘|Ó$ôð %×(NÑ(NØ×$Ñ$ó)ñ Ð$ð &/Ñ"�™sà�÷ ˆfô& Ð/Ö0ˆBØ&Ñ,Ò&ñ 1ð *Ð)r9   Úforcec                 ó   • [        S5      e)Nzcanot rundebugger in Docs mode)ÚRuntimeError)rO   rØ   s     r7   ÚdebuggerÚDocTB.debugger¦  s   € ÜÐ;Ó<Ð<r9   Úinfoc                 ó  • U=(       d    [         R                  " 5       u  p#nX@l        U R                  nUR	                  5         UR                  U R                  X#U5      5        UR                  S5        UR	                  5         g )Nr   )rŽ   r�   ÚtbrE   ÚflushÚwriteÚtext)rO   rÝ   r{   rƒ   r—   rE   s         r7   ÚhandlerÚDocTB.handler©  sZ   € Ø#×5¤s§|¢|£~Ñˆ˜ØŒØ—,‘,ˆØ�‰ŒØ�‰�d—i‘i ¨sÓ3Ô4Ø�‰�dÔØ�‰�r9   c                 óª   • Uc  U R                  5         OU R                  XU45         U R                  5         g! [         a    [        S5         gf = f)z@This hook can replace sys.excepthook (for Python 2.1 or higher).Nz
KeyboardInterrupt)rã   rÛ   ÚKeyboardInterruptÚprint)rO   r{   rƒ   r—   s       r7   Ú__call__ÚDocTB.__call__´  sG   € à‰;Ø�L‰L�Nà�L‰L˜%¨Ð-Ô.ð	)Ø�M‰M�OøÜ ó 	)ÜÐ'Ö(ð	)ús   ©: ºAÁA)rF   rA   r@   rN   rß   r?   )ÚlinuxFNr   FTNN)NNr   )F)N)NNN) rš   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r°   Útb_highlight_styler]   Ú__annotations__Úboolr,   r   r   ÚtyperK   r   ry   r�   r•   r   ÚBaseExceptionr   r·   r£   rœ   rÖ   rÛ   Útuplerã   rè   Ú__static_attributes__Ú__classcell__)rP   s   @r7   r;   r;   T   s(  ø‡ ñð €LØ"ÐØƒNØÓØÓàƒJð
 "ØØØØ!Ø!Ø15Ø$(ñ# ð ð# ð ð	# ð
 ð# ð ð# ð ð# ð ð# ð ˜b $˜hÑ'¨$Ñ.ð# ð ˜T‘k÷# ð # ðJe¨	ð e°cô eðN Cð ¨Cô ð
 cð 
°3ð 
¸3ô 
ð2,7àð,7ð ˜Ñ'ð,7ð �mÑ$ð	,7ð
 ð,7ð ˜C‘=ð,7ð 
ˆd�3‰i‰ô,7ð\)˜}ð )°sð )Àsð )Èsô )ð^ (,Ø#'Øñ4*àð4*ð ˜Ñ'ð4*ð �mÑ$ð	4*ð
 ˜C‘=ð4*ð ð4*ð 
ˆc‰õ4*ñl=˜dð =¨tõ =ñ˜E # s¨C -Ñ0°4Ñ7ð À4õ ñ	)˜cð 	)°#ð 	)À3ð 	)ÐRV÷ 	)ó 	)r9   r;   )$r^   rL   rŽ   Úcollections.abcr   Útypesr   Útypingr   r   r   r#   Úpygments.formatters.terminal256r   Úpygments.tokenr	   ÚIPython.utils.PyColorizer
   r   r   ÚIPython.utils.terminalr   Útbtoolsr   r   r   r   r   r   r   r"   r·   ÚLinerñ   r8   r;   © r9   r7   Ú<module>r     s’   ðÛ Û Û 
Ý $Ý ß  Ý $ã Ý @Ý  ç DÑ DÝ 4÷÷ ñ ð €ð4Ø�
—‘Ñ ð4àð4ð ð4ð �[Ñ!ð	4ð
 ô4ôni)ˆGõ i)r9   