
    ukii                    P   U d dl m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                  dd       Zi Zded<   ej$                  d	        Z G d
 dej(                        Z	 	 	 	 ddZej.                  j1                  d       ej2                  ded       yy)    )annotationsN)Any)cli_debugger)corec                 n    dd l } t        t        t        | j                  j                  d                  S )Nr   .)web_pdbtuplemapint__version__split)r	   s    Y/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/_src/debugger/web_debugger.py_web_pdb_versionr      s(    	s3++11#67	88    zdict[tuple[str, int], Any]_web_consolesc                 ~    t         j                         D ]  } | j                           t         j                          y N)r   valuescloseclear)consoles    r   _close_debuggersr   $   s/    %%' gMMOr   c                  ^     e Zd ZU dZdZdZded<   	 d	 	 	 	 	 d fdZd Zd Z	d	 Z
d
 Z xZS )WebDebuggerzA web-based debugger.z(jdb) Fbooluse_rawinputc                    ||ft         vr dd l}|j                  |||       t         ||f<   t         ||f   }t        j                  |       |_        t        |   |||||       y )Nr   )stdinstdoutcompletekey)r   r	   
WebConsoleweakrefproxy	_debuggersuper__init__)	selfframes	thread_idr!   hostportr	   _web_console	__class__s	           r   r'   zWebDebugger.__init__0   sk    d|=(")"4"4T4"FmD$J t,L$]]40L	GVYl<!,  .r   c                4   | j                         }|j                  }|j                  }d }|j                  |j                  dz   }t	               dk  r |dj                  |      |t        |      g dS t        j                  j                  t        j                  j                  |            t        j                  j                  z   t        j                  j                  |      dj                  |      |g | j                         | j                         dS )N   )r0      r1   
)filenamelisting	curr_linetotal_lines	breaklist)dirnamer3   file_listingcurrent_linebreakpointsglobalslocals)current_framer3   sourceoffsetr   joinlenospathr8   abspathsepbasenameget_globals
get_locals)r(   r>   r3   linesr:   s        r   get_current_frame_dataz"WebDebugger.get_current_frame_data;   s    &&(M%%H  EL'"))A-lI%99U#!5z  77??277??8#<=KGG$$X.		%($##%//# r   c                    | j                         }dj                  d t        |j                  j	                               D              S )Nr2   c              3  0   K   | ]  \  }}| d |   ywz = N .0keyvalues      r   	<genexpr>z*WebDebugger.get_globals.<locals>.<genexpr>W   s)      AC %s5'A   )r>   rA   sortedr<   itemsr(   r>   s     r   rH   zWebDebugger.get_globalsU   sF    &&(M99 A !6!6!<!<!>?A A Ar   c                    | j                         }dj                  d t        |j                  j	                               D              S )Nr2   c              3  0   K   | ]  \  }}| d |   ywrN   rO   rP   s      r   rT   z)WebDebugger.get_locals.<locals>.<genexpr>]   s)      @C %s5'@rU   )r>   rA   rV   r=   rW   rX   s     r   rI   zWebDebugger.get_locals[   sF    &&(M99 @ !5!5!;!;!=>@ @ @r   c                "    | j                         S r   )cmdloop)r(   s    r   runzWebDebugger.runa   s    <<>r   )tab i  )r)   !list[debugger_core.DebuggerFrame]r!   strr+   ra   r,   r   )__name__
__module____qualname____doc__promptr   __annotations__r'   rK   rH   rI   r]   __classcell__)r.   s   @r   r   r   +   sO    &, FJ	.	./2	.?B	.4A@r   r   c                :    t        | |fi |j                          y r   )r   r]   )r)   r*   kwargss      r   run_debuggerrk   d   s    fi*6*..0r   r	   web)returnztuple[int, ...])r)   r`   r*   z
int | Nonerj   r   )
__future__r   atexit	functoolsimportlib.util	importlibrC   typingr   r#   jax._src.debuggerr   r   debugger_corecacher   r   rg   registerr   CliDebuggerr   rk   util	find_specregister_debuggerrO   r   r   <module>r}      s    #    	   * 3 9 9
 -/) .  7,** 7r1&1251
 >>I&2!-!!%r: 3r   