<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]-6                 @   s2  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	 m
 Z
 d  d l	 m Z d  d l	 m Z d  d l	 m Z d  d l	 m Z d  d l	 m Z d  d l	 m Z d  d	 l	 m Z d  d l Z x) d/ D]! Z e e e  e  j d e =q Wd Z d  d l Z d d d d  Z d a d d   Z e d  e j   Z e d d  Z d a d a d a  d d d  Z! d d   Z" d d    Z# d! d"   Z$ d# d$   Z% d% d&   Z& d' d(   Z' Gd) d*   d* e j(  Z) Gd+ d,   d, e j*  Z+ Gd- d.   d. e,  Z- e d  d S)0    N)CallTips)AutoComplete)RemoteDebugger)RemoteObjectBrowser)StackViewer)rpc)PyShell)	IOBindingsimpledialog
messageboxfontdialog
filedialogcommondialogcolorchooserztkinter.z	127.0.0.1c             C   sT   | d  k r t  j } y& | j t j |  | | | |   Wn t k
 rO Yn Xd  S)N)sysstderrwriter   Zidle_formatwarningIOError)messagecategoryfilenamelinenofileline r   (/opt/alt/python35/lib64/python3.5/run.pyidle_showwarning_subproc    s    	r   c             C   sF   |  r' t  d  k rB t j a  t t _ n t  d  k	 rB t  t _ d  a  d  S)N)_warnings_showwarningwarningsshowwarningr   )capturer   r   r   capture_warnings0   s    		r"   Tc             C   s   |  j  d  d  S)Nupdate)eval)tclr   r   r   handle_tk_events@   s    r&   Fc             C   s  |  a  y t t j d  } Wn t d d t j d  SYn Xt d  d g t j d  d   <t j d t	 d d d	 t
 | f f  } d | _ | j   x\y t r y t   Wn t k
 r w Yn Xy% t j j d
 d d d  \ } } Wn t j k
 rt   w Yn X| \ } } } | | |   } t j j | | f  Wq t k
 rgt r`d a w Yq t k
 rt d    Yq t j   \ }	 }
 } y! t   t j j | d  f  Wn+ t j |	 |
 | d t j t   Yn Xw Yq Xq Wd  S)N   z/IDLE Subprocess: no IP port passed in sys.argv.r   T targetnameZ
SockThreadargsblocktimeoutg?F)no_exitfuncintr   argvprint
__stderr__r"   	threadingThreadmanage_socket	LOCALHOSTdaemonstartexit_nowexitKeyboardInterruptr   Zrequest_queuegetqueueEmptyr&   Zresponse_queueputquitting
SystemExitexc_infoprint_exception	traceback)Zdel_exitfuncportZ
sockthreadseqrequestmethodr+   kwargsrettypevaluetbr   r   r   mainN   sZ    	
	
	
%
rO   c             C   s   x t  d  D]w } t j |  y t |  t  } PWq t k
 r } z- t d | j d d d t j	 | } WYd  d  } ~ Xq Xq Wt d d t j	 t
 | |   d a d  S| j   d  S)N   zIDLE Subprocess: OSError: r'   z, retrying....r   z8IDLE Subprocess: Connection to IDLE GUI failed, exiting.T)rangetimesleepMyRPCServer	MyHandlerOSErrorr2   r+   r   r3   show_socket_errorr:   Zhandle_request)addressiZservererrZsocket_errorr   r   r   r6      s    	
r6   c             C   s   d d  l  } d d  l j } | j   } | j   |  j d d k rg d | } | j d | d | n! | j d d |  j d d | | j   d  S)Nr   =   zIDLE's subprocess can't connect to %s:%d.  This may be due to your personal firewall configuration.  It is safe to allow this internal connection because no data is visible on external ports.zIDLE Subprocess ErrorparentzSocket Error: %sr'   )tkinterZtkinter.messageboxr   ZTkZwithdrawr+   Z	showerrorZdestroy)rZ   rX   r]   tkMessageBoxrootmsgr   r   r   rW      s    
	rW   c                 s   d d  l  }  |  j   t   t j   t j   \ } } } } | \ t _ t _ t _ t	        f d d     | | |  d  S)Nr   c       	         s6   j  |  | j } | j } | d  k	 rc |  k rc  t |  | | j  t d d   nK | d  k	 r | j r |  k r  t |  | | j  t d d   | r t j |  } t d d   d } t	 | |  t j
 | d   t j |  |  } x$ | D] } t | d d d   qWd  S)NzF
The above exception was the direct cause of the following exception:
r   zE
During handling of the above exception, another exception occurred:
z"Traceback (most recent call last):run.pyrpc.pythreading.pyqueue.pyRemoteDebugger.pybdb.pyendr(   )ra   rb   rc   rd   re   rf   )add__context__	__cause__rL   __traceback__r2   __suppress_context__rE   
extract_tbcleanup_traceback
print_listformat_exception_only)	typexcrN   contextcauseZtbeexcludelinesr   )efile	print_excseenr   r   rx      s.    			

	 z"print_exception.<locals>.print_exc)
	linecache
checkcacheflush_stdoutr   r   rC   	last_type
last_valuelast_tracebackset)rz   rq   valrN   Zexcinfor   )rw   rx   ry   r   rD      s    
		rD   c       
      C   sn  |  d  d   } x; |  rM x' | D] } |  d d j  |  r  Pq  WP|  d =q Wx; |  r x' | D] } |  d d j  |  r^ Pq^ WP|  d =qQ Wt |   d k r | d  d   |  d  d   <t d d t j t j d j } x t t |    D]x } |  | \ } } } }	 | d k rd } |	 rP| j	 d  rP| j
 d	 d
 | | f i   }	 | | | |	 f |  | <q Wd  S)Nr   r'   z** IDLE Internal Exception: r   exec?z
-toplevel-z	<pyshell#rz   getliner.   r.   )countlenr2   r   r   r   Zobjecttable
rpchandlerrQ   
startswithZ
remotecall)
rN   ru   Zorig_tbZrpcfiler   rY   fnlnZnmr   r   r   r   rn      s2    		rn   c               C   s   d  S)Nr   r   r   r   r   r|      s    r|   c              C   s7   t  r d d  l }  |  j   t d  t j d  d  S)Nr   F)r/   atexit_clearr"   r   r;   )r   r   r   r   r;      s
    

r;   c               @   s   e  Z d  Z d d   Z d S)rT   c             C   s	  y   Wn t  k
 r   Yn t k
 r? d a t j   Yn t j } t d d d d | t d d | t d t j	   j
 d | t d | d | t d	 t |  d | t j d |  t d
 d | t d d d | d a t j   Yn Xd  S)NT
-(   r   zUnhandled server exception!z
Thread: %szClient Address: z	Request: z#
*** Unrecoverable, server exiting!)rB   EOFErrorr:   threadinterrupt_mainr   r3   r2   r4   current_threadr*   reprrE   rx   rA   )selfrH   Zclient_addresserfr   r   r   handle_error  s&    	zMyRPCServer.handle_errorN)__name__
__module____qualname__r   r   r   r   r   rT     s   rT   c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
rU   c             C   s   t  |   } |  j d |  |  j d  |  _ t j |  j d t j  t _	 t j
 |  j d t j  t _ t j
 |  j d t j  t _ t j t _ d d  l } | j | _ t j	 |  _ |  j d  |  _ t j j |  d d  d	 d
 d  S)Nr   consolestdinstdoutr   r   interpZmyseqwaitg?)	Executiveregisterget_remote_proxyr   r   ZPseudoInputFiler	   encodingr   r   ZPseudoOutputFiler   r   r   displayhookpydocZ
plainpagerZpagerZ_keep_stdinr   
RPCHandlerZgetresponse)r   Z	executiver   r   r   r   handle.  s    zMyHandler.handlec             C   s   t  j d  d  S)N
   )rR   rS   )r   r   r   r   exithookF  s    zMyHandler.exithookc             C   s   d a  t j   d  S)NT)rA   r   r   )r   r   r   r   EOFhookJ  s    zMyHandler.EOFhookc             C   s   d a  t j   d  S)NT)rA   r   r   )r   r   r   r   decode_interrupthookP  s    zMyHandler.decode_interrupthookN)r   r   r   r   r   r   r   r   r   r   r   rU   ,  s   rU   c               @   ss   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z	 d d d  Z
 d S)r   c             C   s7   | |  _  t j |  _ t j   |  _ t j   |  _ d  S)N)r   __main____dict__localsr   calltipr   autocomplete)r   r   r   r   r   __init__Y  s    	zExecutive.__init__c             C   s   y1 d  |  _  d a z t | |  j  Wd  d a XWng t k
 rE Yn] t j   |  _  t rd t   t	   |  j
 j j d  } | r |  j
 j j   Yn Xt   d  S)NTFz<<toggle-jit-stack-viewer>>)usr_exc_infointerruptabler   r   rB   r   rC   rA   r;   rD   r   r   Zgetvarr   Zopen_remote_stack_viewerr|   )r   codeZjitr   r   r   runcode_  s"    	zExecutive.runcodec             C   s   t  r t j   d  S)N)r   r   r   )r   r   r   r   interrupt_the_serverx  s    zExecutive.interrupt_the_serverc             C   s   t  j |  j |  S)N)r   Zstart_debuggerr   )r   Zgui_adap_oidr   r   r   start_the_debugger|  s    zExecutive.start_the_debuggerc             C   s   |  j  j |  d  S)N)r   
unregister)r   Zidb_adap_oidr   r   r   stop_the_debugger  s    zExecutive.stop_the_debuggerc             C   s   |  j  j |  S)N)r   Z	fetch_tip)r   r*   r   r   r   get_the_calltip  s    zExecutive.get_the_calltipc             C   s   |  j  j | |  S)N)r   Zfetch_completions)r   Zwhatmoder   r   r   get_the_completion_list  s    z!Executive.get_the_completion_listNc             C   s   |  j  r |  j  \ } } } n d  Sd  } | d  k	 rF |  j j |  } x) | rq | j j d d k rq | j } qI W| t _ | t _ t	 j
 | |  } t j |  S)Nr   r   run)r   r   )r   r   r   tb_frame	f_globalstb_nextr   r}   r~   r   ZStackTreeItemr   Zremote_object_tree_item)r   Z	flist_oidrq   r   rN   flistitemr   r   r   stackviewer  s    			zExecutive.stackviewer)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   W  s   r   )r
   r   r   r   r   r   r   ).r   rz   rR   rE   _threadr   r4   r>   r]   Zidlelibr   r   r   r   r   r   r   r	   r   moddelattrmodulesr7   r   r   r   r"   ZTclr%   r&   r:   rA   r   rO   r6   rW   rD   rn   r|   r;   Z	RPCServerrT   r   rU   objectr   r   r   r   r   <module>   sV    


I$+A