<!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>
B
    YI~dEO                 @   s:  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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d dlZeejd	 d
sx"dD ]Zeee ejde = qW dejd	 _dZd@ddZdAddZdadd Zed e  Z!e!fddZ"da#da$da%dBd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) Z.d*Z/d+d, Z0d-d. Z1G d/d0 d0ej2Z3G d1d2 d2ej4Z5G d3d4 d4e5Z6G d5d6 d6e5Z7G d7d8 d8ej8Z9G d9d: d:e:Z;e<d;kr.d d<l=m&Z& e&d=d>d? ed dS )C    N)autocomplete)calltip)
debugger_r)
debugobj_r)iomenu)rpc)stackviewerzidlelib.runfirstrun)ZsimpledialogZ
messageboxfontZdialogZ
filedialogZcommondialogZttkztkinter.Fz	127.0.0.1c             C   sV   d}|d||f 7 }|d kr(t ||}| }|r@|d| 7 }|d|j| f 7 }|S )Nz!
Warning (from warnings module):
z  File "%s", line %s
z    %s
z%s: %s
)	linecachegetlinestrip__name__)messagecategoryfilenamelinenolines r   0/opt/alt/python37/lib64/python3.7/idlelib/run.pyidle_formatwarning*   s    r   c             C   sB   |d krt j}y|t| |||| W n tk
r<   Y nX d S )N)sysstderrwriter   OSError)r   r   r   r   filer   r   r   r   idle_showwarning_subproc7   s    r   c             C   s0   | rt d kr,tja tt_nt d k	r,t t_d a d S )N)_warnings_showwarningwarningsshowwarningr   )Zcapturer   r   r   capture_warningsG   s    r!   Tc             C   s   |  d d S )Nupdate)eval)tclr   r   r   handle_tk_eventsW   s    r%   c             C   s  | a yttjd }W n   tdtjd d S td dgtjd d < tjt	dt
|ffd}d|_|  x0ytry
t  W n tk
r   wpY nX ytjjddd	}W n tjk
r   d }Y nX |r|\}\}}}|||}tj||f nt  W qp tk
r    trdawpY qp tk
r>   td
  Y qp   t \}	}
}yt  tj|d f W n&   tj|	|
|tjd t  Y nX wpY qpX qpW d S )Nz/IDLE Subprocess: no IP port passed in sys.argv.)r   T Z
SockThread)targetnameargsg?)blockZtimeoutF)no_exitfuncintr   argvprint
__stderr__r!   	threadingZThreadmanage_socket	LOCALHOSTZdaemonstartexit_nowexitKeyboardInterruptr   Zrequest_queuegetqueueZEmptyZresponse_queueZputr%   quitting
SystemExitexc_infoprint_exception	traceback)Zdel_exitfuncZportZ
sockthreadrequestseqmethodr*   kwargsrettypevaluetbr   r   r   maine   s\    




rG   c             C   s   xt dD ]b}t| yt| t}P W q
 tk
rj } z$td|jd  d tj	d |}W d d }~X Y q
X q
W tdtj	d t
||  dad S |  d S )N   zIDLE Subprocess: OSError:    z, retrying....)r   z8IDLE Subprocess: Connection to IDLE GUI failed, exiting.T)rangetimesleepMyRPCServer	MyHandlerr   r/   r*   r   r0   show_socket_errorr5   Zhandle_request)addressiZservererrZsocket_errorr   r   r   r2      s    



r2   c             C   sl   dd l }ddlm} | }t| |  |dd|d  d|d  d| j d| j d		|d
 |  d S )Nr   )	showerrorzSubprocess Connection Errorz#IDLE's subprocess can't connect to :rI   z.
Fatal OSError #z: zz.
See the 'Startup failure' section of the IDLE doc, online at
https://docs.python.org/3/library/idle.html#startup-failure)parent)	tkinterZtkinter.messageboxrS   ZTkfix_scalingZwithdrawerrnostrerrorZdestroy)rR   rP   rV   rS   rootr   r   r   rO      s    (rO   c                 sd   dd l } |   t  tj t  \}}}}|\t_t_t_t	  fdd||| d S )Nr   c       	         s    t| |j}|j}|d k	rNt|krNt|||j td d n8|d k	r|jst|krt|||j td d |rt	|}td d d}t
|| tj| d t| |}x|D ]}t|d d qW d 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):)zrun.pyzrpc.pyzthreading.pyzqueue.pyzdebugger_r.pyzbdb.pyr'   )endr   )addid__context__	__cause__rD   __traceback__r/   __suppress_context__r>   
extract_tbcleanup_traceback
print_listformat_exception_only)	typexcrF   contextcauseZtbeexcludelinesr   )efile	print_excseenr   r   rm      s,    



z"print_exception.<locals>.print_exc)
r   
checkcacheflush_stdoutr   r   r<   	last_type
last_valuelast_tracebackset)r   rf   valrF   excinfor   )rl   rm   rn   r   r=      s    r=   c       
      C   s  | d d  }x2| r>x"|D ]}| d d  |rP qW P | d= qW x2| rrx"|D ]}| d d  |rLP qLW P | d= qBW t| dkr|d d  | d d < tdtjd tjd j}xbtt| D ]R}| | \}}}}	|dkrd}|	s|	dr|
d	d
||fi }	||||	f| |< qW d S )Nr   r&   z** IDLE Internal Exception: )r   exec?z
-toplevel-z	<pyshell#r   r   )countlenr/   r   r   r   Zobjecttable
rpchandlerrJ   
startswithZ
remotecall)
rF   rj   Zorig_tbZrpcfiler{   rQ   fnZlnZnmr   r   r   r   rc      s2    



rc   c               C   s   d S )Nr   r   r   r   r   rp     s    rp   c              C   s*   t rdd l} |   td td d S )Nr   F)r,   atexitZ_clearr!   r   r6   )r~   r   r   r   r6     s
    r6   c             C   sr   dd l }t| jdd}|dkrnxJ|j| D ]:}|jj| |dd}t|d }|dk r0td| |d< q0W d S )	Nr   tkscalinggffffff?T)rZ   r)   existssizeg      )	Ztkinter.fontfloatr   Zcallr
   namesZFontr-   round)rZ   rV   r   r)   r
   r   r   r   r   rW   *  s    rW   c             C   s2   | j d k	r| j d nd}|tt| | _ d S )Nz

r'   )__doc__textwrapfilldedent)ZfuntextZtemr   r   r   fixdoc6  s    r      c                  s|   t tjfddtdt d t tj fdd t dt dt d	 tt t  t_ t_d S )
Nc                 s^   |rt dy
| \}W n( tk
r>   t dt|  dY nX |dksPtd |t S )Nz.setrecursionlimit() takes no keyword argumentsz0setrecursionlimit() takes exactly one argument (z given)r   z/recursion limit must be greater or equal than 1)	TypeError
ValueErrorrz   __wrapped__RECURSIONLIMIT_DELTA)r*   rB   limit)setrecursionlimitr   r   r   @  s    
z:install_recursionlimit_wrappers.<locals>.setrecursionlimitz#            This IDLE wrapper adds z7 to prevent possible
            uninterruptible loops.c                  s      t S )N)r   r   r   )getrecursionlimitr   r   r   U  s    z:install_recursionlimit_wrappers.<locals>.getrecursionlimitz(            This IDLE wrapper subtracts z# to compensate
            for the z" IDLE adds when setting the limit.)	functoolswrapsr   r   r   r   r   r   r   )r   r   r   install_recursionlimit_wrappers<  s    r   c               C   sF   t tjdd rBt tjdd rBtjjt_tjjt_tt t  d S )Nr   )getattrr   r   r   r   r   r   r   r   r   !uninstall_recursionlimit_wrappersd  s
    

r   c               @   s   e Zd Zdd ZdS )rM   c             C   s   y W n t k
r    Y n tk
r:   dat  Y n   tj}td|d td|d tdt	 j
 |d td||d tdt||d tj|d td|d td	|d dat  Y nX d S )
NTz)
----------------------------------------)r   zUnhandled server exception!z
Thread: %szClient Address: z	Request: z#
*** Unrecoverable, server exiting!z(----------------------------------------)r;   EOFErrorr5   threadinterrupt_mainr   r0   r/   r1   Zcurrent_threadr)   reprr>   rm   r:   )selfr?   Zclient_addressZerfr   r   r   handle_erroru  s&    zMyRPCServer.handle_errorN)r   
__module____qualname__r   r   r   r   r   rM   s  s   rM   c               @   sB   e Zd ZdddZedd Zedd Zed	d
 Zdd ZdS )	StdioFileutf-8strictc             C   s   || _ || _|| _|| _d S )N)shelltags	_encoding_errors)r   r   r   encodingerrorsr   r   r   __init__  s    zStdioFile.__init__c             C   s   | j S )N)r   )r   r   r   r   r     s    zStdioFile.encodingc             C   s   | j S )N)r   )r   r   r   r   r     s    zStdioFile.errorsc             C   s
   d| j  S )Nz<%s>)r   )r   r   r   r   r)     s    zStdioFile.namec             C   s   dS )NTr   )r   r   r   r   isatty  s    zStdioFile.isattyN)r   r   )	r   r   r   r   propertyr   r   r)   r   r   r   r   r   r     s
   
r   c               @   s   e Zd Zdd Zdd ZdS )StdOutputFilec             C   s   dS )NTr   )r   r   r   r   writable  s    zStdOutputFile.writablec             C   s<   | j rtdt|| j| j| j| j}| j|| j	S )Nzwrite to closed file)
closedr   strencoder   r   decoder   r   r   )r   r   r   r   r   r     s    zStdOutputFile.writeN)r   r   r   r   r   r   r   r   r   r     s   r   c               @   s4   e Zd ZdZdd ZdddZdddZd	d
 ZdS )StdInputFiler'   c             C   s   dS )NTr   )r   r   r   r   readable  s    zStdInputFile.readabler&   c             C   s   | j rtd|d krd}nt|ts8tdt|j | j}d| _|dk rlxb| j	 }|s^P ||7 }qNW nDx(t
||k r| j	 }|sP ||7 }qnW ||d  | _|d | }|S )Nzread from closed filer&   zmust be int, not r'   r   )r   r   
isinstancer-   r   rD   r   _line_bufferr   readlinerz   )r   r   resultr   r   r   r   read  s,    

 
 zStdInputFile.readc             C   s   | j rtd|d krd}nt|ts8tdt|j | jpF| j	 }|dk rXt
|}|dd|}|dkrv|d }||d  | _|d | S )Nzread from closed filer&   zmust be int, not r   
rI   )r   r   r   r-   r   rD   r   r   r   r   rz   find)r   r   r   Zeolr   r   r   r     s    
zStdInputFile.readlinec             C   s   | j   d S )N)r   close)r   r   r   r   r     s    zStdInputFile.closeN)r&   )r&   )r   r   r   r   r   r   r   r   r   r   r   r   r     s
   

r   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
rN   c             C   s   t | }| d| | d| _t| jdtjtjt_	t
| jdtjtjt_t
| jdtjdt_tjt_dd l}|j|_tj	| _t  | d| _tjj| d d	d
 d S )Nrw   consolestdinstdoutr   backslashreplacer   interpg?)Zmyseqwait)	Executiveregisterget_remote_proxyr   r   r   r   r   r   r   r   r   r   r   displayhookpydocZ
plainpagerZpagerZ_keep_stdinr   r   
RPCHandlerZgetresponse)r   Z	executiver   r   r   r   handle  s     zMyHandler.handlec             C   s   t d d S )N
   )rK   rL   )r   r   r   r   exithook  s    zMyHandler.exithookc             C   s   da t  d S )NT)r:   r   r   )r   r   r   r   EOFhook	  s    zMyHandler.EOFhookc             C   s   da t  d S )NT)r:   r   r   )r   r   r   r   decode_interrupthook  s    zMyHandler.decode_interrupthookN)r   r   r   r   r   r   r   r   r   r   r   rN     s   rN   c               @   sN   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   s&   || _ tj| _t | _t | _d S )N)r{   __main____dict__localsr   ZCalltipr   ZAutoComplete)r   r{   r   r   r   r     s    
zExecutive.__init__c          
   C   s   y&d | _ dazt|| j W d daX W n tk
r } z<|jrp|jd }t|td tfspt	dt
| tjd W d d }~X Y nJ   t | _ trt  t  | jjd}|r| jj  Y nX t  d S )NTFr   zSystemExit: )r   z<<toggle-jit-stack-viewer>>)usr_exc_infointerruptablerw   r   r;   r*   r   rD   r-   r/   r   r   r   r<   r:   r6   r=   r{   r   Zgetvarr   Zopen_remote_stack_viewerrp   )r   codeeZobZjitr   r   r   runcode  s(    

&
zExecutive.runcodec             C   s   t rt  d S )N)r   r   r   )r   r   r   r   interrupt_the_server8  s    zExecutive.interrupt_the_serverc             C   s   t | 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 | d S )N)r{   Z
unregister)r   Zidb_adap_oidr   r   r   stop_the_debugger?  s    zExecutive.stop_the_debuggerc             C   s   | j |S )N)r   Z	fetch_tip)r   r)   r   r   r   get_the_calltipC  s    zExecutive.get_the_calltipc             C   s   | j ||S )N)r   Zfetch_completions)r   Zwhatmoder   r   r   get_the_completion_listF  s    z!Executive.get_the_completion_listNc             C   sr   | j r| j \}}}nd S d }|d k	r0| j|}x|rN|jjd dkrN|j}q2W |t_|t_t	
||}t|S )Nr   )r   run)r   r{   r   tb_frame	f_globalstb_nextr   rq   rr   r   ZStackTreeItemr   Zremote_object_tree_item)r   Z	flist_oidrf   ru   rF   flistitemr   r   r   r   I  s    
zExecutive.stackviewer)N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s   r   r   )rG   zidlelib.idle_test.test_run   )	verbosity)N)NN)F)>r   ior   r9   r   r   rK   r>   _threadr   r1   r   Zidlelibr   r   r   r   r   r   r   r   rV   hasattrmodulesmoddelattrr	   r3   r   r   r   r!   ZTclr$   r%   r5   r:   r   rG   r2   rO   r=   rc   rp   r6   rW   r   r   r   r   Z	RPCServerrM   
TextIOBaser   r   r   r   rN   objectr   r   Zunittestr   r   r   r   <module>   sr   





M$(!1-C
