
    MhR                     ^   d Z ddlmZmZ ddlmZ ej        ZddlmZ ej	        Z	ej
        Z
ddlZddlZddlmZ ddlmZ ddlZddlmZ dd	lmZ dd
lmZmZ ddlZddlmZmZ ddlmZ  G d d          Z	 ddlmZ ee_        n#  Y nxY wddlm Z m!Z! ej"        d         dk    re e_         ne e_          G d de          Z# G d d          Z$d Z%d Z&d Z'd Z(ej)        dk    r e*ed          sd Z+nd Z+nd Z+d Z,d ej-        v rej-        d          d!k    Z.nd"Z.	 	 ej/        Z/n# e0$ r dZ/Y nw xY we.r%dd#l1m#Z# e/e/e_/        n	  e2ed$           n#  Y nxY wn	#  d"Z.Y nxY wd% Z3d& Z4d' Z5d( Z6d) Z7d* Z8d+ Z9 G d, d-e
          Z:d. Z;e<d/k    rddl=Z= e=j        ej>                  e_>        ej?        d0d         \  Z@ZAdd1lmBZB  eCe@          dk    r# eCeA          dk    r eBjD                    \  ZEZFeFZA e=j5         eBjG                     eCe@           eCeA                     dS dS )2z6
Entry point module to start the interactive console.
    )thread_code)	IS_JYTHON)InteractiveConsoleN)	threading)INTERACTIVE_MODE_AVAILABLE)	pydev_log)pydevd_save_locals)Exec_queue)BaseInterpreterInterface	BaseStdIn)CodeFragmentc                   6    e Zd Zd Zd Z ee          Zd ZdS )Commandc                 0    || _         || _        d| _        dS )za
        :type code_fragment: CodeFragment
        :type interpreter: InteractiveConsole
        N)interpretercode_fragmentmore)selfr   r   s      e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/debugpy/_vendored/pydevd/pydevconsole.py__init__zCommand.__init__"   s    
 '*			    c                 2    | j         rd}nt          rd}nd}|S )Nsingleexec)is_single_liner   )r   symbols     r   symbol_for_fragmentzCommand.symbol_for_fragment+   s-    ' 	 FF  !r   c                     | j         j        }|                     | j                   }| j                            |d|          | _        d S )Nz<input>)r   textr   r   	runsourcer   )r   r!   r   s      r   runzCommand.run7   sC    !&))$*<==$..tYGG			r   N)__name__
__module____qualname__r   r   staticmethodr#    r   r   r   r   !   sY             ',':;;H H H H Hr   r   )execfile)runfile_set_globals_function   c                   8    e Zd ZdZd	dZd Zd Zd Zd Zd Z	dS )
InterpreterInterfacezO
    The methods in this class should be registered in the xml-rpc server.
    Nc                     t          j        | ||           || _        || _        i | _        t          | j                  | _        d| _        d S )NF)r   r   client_porthost	namespacer   r   _input_error_printed)r   r1   r0   
mainThreadconnect_status_queues        r   r   zInterpreterInterface.__init__V   sN     )$
<PQQQ&	-dn==$)!!!r   c                 b    t          | j        |          }|                                 |j        S N)r   r   r#   r   )r   codeFragmentcommands      r   do_add_execz InterpreterInterface.do_add_exec^   s)    $*L99|r   c                     | j         S r7   )r2   r   s    r   get_namespacez"InterpreterInterface.get_namespacec   s
    ~r   c                     	 ddl m}  || j        d           }|                    |          S #  t	          j                     g cY S xY w)Nr   )	Completer)_pydev_bundle._pydev_completerr?   r2   completer	   	exception)r   r!   act_tokr?   	completers        r   getCompletionsz#InterpreterInterface.getCompletionsf   sa    	@@@@@@!	$.$77I%%g...	!!!IIIs	   +. Ac                 .    t          j        d           d S )Nr   )sysexitr<   s    r   closezInterpreterInterface.closep   s    r   c                     dS )NzPyDev console: starting.
r(   r<   s    r   get_greeting_msgz%InterpreterInterface.get_greeting_msgs   s    ++r   r7   )
r$   r%   r&   __doc__r   r:   r=   rE   rI   rK   r(   r   r   r.   r.   Q   s}         * * * *  
      , , , , ,r   r.   c                       e Zd ZdZdZdS )_ProcessExecQueueHelperNF)r$   r%   r&   _debug_hook_return_control_oscr(   r   r   rN   rN   w   s        Kr   rN   c                     | t           _        d S r7   )rN   rO   )
debug_hooks    r   set_debug_hookrS   |   s    *4'''r   c                     | j         rIt          | j                   D ]6}|t          j        v r$| j                             |          } |             5d S d S r7   )mpl_modules_for_patchinglistrG   modulespop)r   moduleactivate_functions      r    activate_mpl_if_already_importedr[      so    + $;?@@ 	$ 	$F$$$/$H$L$LV$T$T!!!###	$ $	$ 	$r   c                 4     ddl m}  fd} ||           d S )Nr   )set_return_control_callbackc                      t           j        r%t           j         t           _        t           j        rdS  j                                        sdS dS )zA function that the inputhooks can call (via inputhook.stdin_ready()) to find
        out if they should cede control and returnTF)rN   rO   rP   
exec_queueemptyr   s   r   return_controlz4init_set_return_control_back.<locals>.return_control   sS     #. 		 ?V>i:i#7&: t%++-- 	4ur   )pydev_ipython.inputhookr]   )r   r]   rb   s   `  r   init_set_return_control_backrd      sG    CCCCCC    $  /////r   c                     t          |            t          sd S t          |            ddlm} t          | j                  D ]0}|                    || j                            |                     1d S )Nr   )import_hook_manager)	rd   r   r[   _pydev_bundle.pydev_import_hookrf   rV   rU   add_module_namerX   )r   rf   mods      r   init_mpl_in_consolerj      s     ---% $[111CCCCCCK899 ` `++C1U1Y1YZ]1^1^____` `r   win32killc                     dS )NTr(   )pids    r   
pid_existsro      s    4r   c                     dd l }| dk    rdS 	 t          j        | d           dS # t          $ r7}|j         |j        k    rY d }~dS |j         |j        k    rY d }~dS Y d }~dS d }~ww xY w)Nr   TF)errnoosrl   OSErrorESRCHEPERM)rn   rq   errs      r   ro   ro      s    
 LLLaxx tQ t       9++ 55555Y%+--44444  44444 s   % 
A&A!A!!A&c                 \   dd l }|j        j        }d}d}d}d}|                    ||z  d|           }|s|                                }||k    rdS dS 	 |                    d          }	|                    |	          }
|                    ||
          }|s	 |                    |           dS t          |
j
        j                  r5t          |
j
        j                  |k    r	 |                    |           dS |                    |           n# |                    |           w xY wdS )Nr   i   i   W   i  FT)ctypeswindllkernel32OpenProcessGetLastErrorc_intpointerGetExitCodeProcessCloseHandleboolcontentsvalueint)rn   ry   r{   PROCESS_QUERY_INFORMATION!PROCESS_QUERY_LIMITED_INFORMATIONERROR_INVALID_PARAMETERSTILL_ACTIVEprocessrv   zero	exit_codeexit_code_suceededs               r   ro   ro      sf    	=)$*!,2)"&&&'@Cd'dfgilmm 		''))C---u
 4	*<<??Dt,,I!)!<!<Wi!P!P%  
   ))))) i(.// C	8J8P4Q4QUa4a4a  )))))H  ))))H  ))))ts   AD .6D D)c                    t          |            ddlm} 	 t          t          j                            dd                    }n	#  d}Y nxY w	 |dk    rt          |          st                        |            }t          j
        rt          
                                 |r&	  |             n#  t          j                     Y nxY w	 	 | j                            dd	          }n# t          j        $ r Y w xY wt!          |          r |             n|                     |          }nE# t$          $ r
 d | _        Y t(          $ r   t          j        d
           t                       Y nxY w%)Nr   )get_inputhookPYDEV_ECLIPSE_PIDz-1   Tg?)blocktimeoutz'Error processing queue on pydevconsole.)rj   rc   r   r   rr   environgetro   rH   rN   rO   r	   rB   r_   r   Emptycallableadd_execKeyboardInterruptbuffer
SystemExit)r   r   kill_if_pid_not_alive	inputhookr   r   s         r   process_exec_queuer     s   $$$555555# #BJNN3F$M$M N N# "$ B&&344  "MOO	". 	2#//111 	&&	&#%%%%%	 + 6 : :x : X X<    && ; "++M::  	 	 	!%KH 	 	 		 IJJJFFFFFI$sG   -A A$
B/ /CC( 'D- (C:7D- 9C::2D- -E/ -E/IPYTHONENABLETrueF)r.   exitfuncc                      	 ddl }|j        j                            d           dS # t          $ rH t          |           dk    rt          j        | d                    Y dS t          j        d           Y dS w xY w)z
    We have to override the exit because calling sys.exit will only actually exit the main thread,
    and as we're in a Xml-rpc server, that won't work.
    r   Nr   )java.lang.SystemlangSystemrH   ImportErrorlenrr   _exit)argsjavas     r   do_exitr   R  s    	a        t99>>HT!WHQKKKKKK	s   #' 7A9!A98A9c           
      N   	 |dk    rd} ddl m} 	  || |fdd          }nR#  t          j                            d| d|d	|j        d
           t          j                                          xY wt          |j                   |	                    |j
                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |	                    |j                   |dk    r?|j                                        \  }}t;          |           t;          |j                   	 	 |                                 n?#  t          j                    d         }d}	 |j         d         dk    }n#  Y nxY w|s Y nxY wV#  tC          j"                     |#                                }||$                    d           Y d S Y d S xY w)Nr    )SimpleXMLRPCServerFT)logRequests
allow_nonez"Error starting server with host: "z
", port: "z", client_port: "z"
r      )%_pydev_bundle.pydev_importsr   rG   stderrwriter0   flushr+   r=   register_functionexecLineexecMultipleLinesrE   getFramegetVariablechangeVariablegetDescriptionrI   	interrupt	handshakeconnectToDebuggerhellogetArrayevaluateShowConsoleloadFullValue	enableGuisocketgetsocknameprintserve_foreverexc_infor   r	   rB   get_connect_status_queueput)	r1   portr   XMLRPCServerserverheretryconnection_queues	            r   start_console_serverr   f  s\   D(199D 	SRRRRR	!\4,EdSSSFF	J\`\`\`bfbfbfhshhh  A   J 	k7888  !5666  !>???  !;<<<  !5666  !8999  !;<<<  !;<<<  !2333  !6777  !6777  !>???  !2333  !5666  !5666  !8999  !:;;; 	  !67771991133IQ$KKK+)***	$$&&&& LNN1%F1INEED  	"(&??AA'  '''''' (''sR   K " K AA11HK 	J K K<KKKKK A L$c                     t           t          _        t          | |t	          j                              }t          t          | ||f           t          |           d S r7   )	r   rG   rH   r.   r   current_threadstart_new_threadr   r   )r1   r   r0   r   s       r   start_serverr     sQ     CH&t[):R:T:TUUK)D$+DEEE{#####r   c                      t           r7t          t          d          r$t                      } |                                 S d S d S Nr   )IPYTHONhasattr__builtin__get_interpreterget_ipython_hidden_vars_dictra   s    r   get_ipython_hidden_varsr     sL     :7;66 :%''77999: : : :r   c                  N   	 t          t          d          } n# t          $ r t          d d t	          j                              } | t          _        t          j        	                    | 
                                           t          j                                         Y nw xY w| S r   )getattrr   AttributeErrorr.   r   r   r   rG   r   r   rK   r   )interpreterInterfaces    r   r   r     s    &{MBB   3D$	@X@Z@Z[["6
->>@@AAA
	  s    BB"!B"c                     t                      }|j                            ||           |                    | |          S r7   )r   r   updaterE   )r!   tokenglobalslocalsr   s        r   get_completionsr     s=    *,,$++GV<<<..tU;;;r   c                     t                      }|j                            ||           |                    |           }|rdS |                    | |           dS )NTF)r   r   r   	need_morer   )coder   r   debuggerr   ress         r   	exec_coder     sb    *,,$++GV<<<

(
(
.
.C
 t!!$1115r   c                   .    e Zd ZdZddZd ZddZd ZdS )ConsoleWriterr   Nc                 <    t                               | |           d S r7   )InteractiveInterpreterr   )r   r   s     r   r   zConsoleWriter.__init__  s    ''f55555r   c                     | j         dk    r| xj         dz  c_         d S |dk    rd| _         t          j                            |           d S )Nr   r   #Traceback (most recent call last):
)skiprG   r   r   )r   datas     r   r   zConsoleWriter.write  sO    9q==IINIIII===	JT"""""r   c                    t          j                    \  }}}|t           _        |t           _        |t           _        |rJ|t
          u rA	 |j        \  }\  }}}}	t          |||||	f          }|t           _        n# t          $ r Y nw xY wt          j	        ||          }
t           j
                            d                    |
                     dS )z,Display the syntax error that just occurred.r   N)rG   r   	last_type
last_valuelast_tracebackSyntaxErrorr   
ValueError	tracebackformat_exception_onlyr   r   join)r   filenametyper   tbmsgdummy_filenamelinenooffsetlinerV   s              r   showsyntaxerrorzConsoleWriter.showsyntaxerror  s     ,..eR 
	'++'>Cj;;nffd $C(FFD)IJJ!&     .tU;;
'''''s   A8 8
BBc                    	 t          j                    \  }}}|t           _        |t           _        |t           _        t          j        |          }|dd= t          j        |          }|r|                    dd           |	                    t          j
        ||                     dx}}n	# dx}}w xY wt           j                            d                    |                     dS )z)Display the exception that just occurred.Nr   r   r   r   )rG   r   r   r   r   r   
extract_tbformat_listinsertextendr  r   r   r  )r   r   kwargsr  r   r  tblistliness           r   showtracebackzConsoleWriter.showtraceback  s    	!lnnOD% CM"CN!#C)"--Frr
)&11E HQ FGGGLL8uEEFFFFRR$FR
(((((s   B(B/ /B5r7   )r$   r%   r&   r   r   r   r  r  r(   r   r   r   r     s_        D6 6 6 6# # #( ( ( (*) ) ) ) )r   r   c                    |                     | |          }|                    d          dk    }t          |                    dd                    }i }|                    |j                   |                    |j                   t          r<t          t          |          ||j        |          }|st          j        |           |S t                      }|sH	 t          |          }	n2# t          t          t           f$ r |                                 Y dS w xY w|	dS n|}		 t%          |	||j                   t          j        |           n%# t&          $ r   |                                 Y nxY wdS )z7returns 'False' in case expression is partially correctz@LINE@r   
FNT)
find_framecountstrreplacer   	f_globalsf_localsr   r   r   r
   save_localsr   compile_commandOverflowErrorr   r   r  r   r   r  )
	thread_idframe_id
expressiondbgframeis_multilineupdated_globalsr   r   r   s
             r   console_execr'    s   NN9h//E##H--1LZ''$7788J
 O5?+++5>*** l:66Y\]]	 	2*5111//K 	":..DD{J7 	 	 	'')))55	 <4  .T?EN333 	&u----    $!!##### 5s   C- -+DD'E  E4__main__r   )pydev_localhost)HrL   "_pydev_bundle._pydev_saved_modulesr   r   _pydevd_bundle.pydevd_constantsr   r    _pydevd_bundle.pydevconsole_coder   r  r   rr   rG   r   r   r   _pydev_bundler	   _pydevd_bundler
   r   r   r   builtinsr   !_pydev_bundle.pydev_console_utilsr   r   r   r   r)   _pydev_bundle.pydev_umdr*   r+   version_infor.   rN   rS   r[   rd   rj   platformr   ro   r   r   r   r   r   #_pydev_bundle.pydev_ipython_consoledelattrr   r   r   r   r   r   r   r   r'  r$   pydevconsolestdinargvr   r0   r)  r   get_socket_namer   pget_localhostr(   r   r   <module>r<     s    = < < < < < < < 5 5 5 5 5 5*  ? ? ? ? ? ?'5  				 



 8 8 8 8 8 8 F F F F F F     # # # # # # - - - - - - 4 4 4 4 4 4 4 4     Q Q Q Q Q Q Q Q : : : : : :H H H H H H H H:	444444#K	D C B B B B B B BA!!K!K#, #, #, #, #,3 #, #, #,L               
5 5 5$ $ $0 0 00
` 
` 
` <772v %	 	 	 	
	 	 	 	D) ) )X- - -` bj  j)V3GG G	<     	LLLLLL#CLLZ((((	GD  (E( E( E(P	$ 	$ 	$: : :	  	  	 < < <  4) 4) 4) 4) 4)* 4) 4) 4)n. . .h z &&sy11CI1D+------
s4yyA~~##k**a//0022AL;o;==ss4yy##kJZJZ[[[[[# sN   8B B
 D( 'E (D2/E 1D22E E E EE E#