<!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>
3
2axC                 @   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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"d8D ]Zee
e ejde = qW dZd9ddZd:ddZdadd Zed e
j Zef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(d*d+ Z)G d,d- d-ej*Z+G d.d/ d/e j,Z-G d0d1 d1e-Z.G d2d3 d3e-Z/G d4d5 d5ej0Z1G d6d7 d7e2Z3ed dS )<    N)autocomplete)calltip)
debugger_r)
debugobj_r)iomenu)rpc)stackviewersimpledialog
messageboxfontdialog
filedialogcommondialogttkztkinter.z	127.0.0.1c             C   sV   d}|d||f 7 }|d kr(t j||}|j }|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   (/opt/alt/python36/lib64/python3.6/run.pyidle_formatwarning   s    r   c             C   sB   |d krt j}y|j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_subproc,   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_warnings<   s    r&   Tc             C   s   | j d d S )Nupdate)eval)tclr   r   r   handle_tk_eventsL   s    r*   Fc             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|_|j  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j||f nt  W qp tk
r    trdawpY qp tk
r>   td
  Y qp   tj \}	}
}yt  tjj|d f W n&   tj|	|
|tjd t  Y nX wpY qpX qpW d S )N   z/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   mainZ   s\    




rM   c             C   s   xt dD ]b}tj| yt| t}P W q
 tk
rj } z&td|jd  d tj	d |}W Y d d }~X q
X q
W tdtj	d 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	MyHandlerr    r5   r/   r   r6   show_socket_errorr;   Zhandle_request)addressiZservererrZsocket_errorr   r   r   r8      s    



r8   c          	   C   sp   dd l }ddlm} |j }t| |j  d|d  d|d  d| j d| j d	}|d	||d
 |j  d S )Nr   )	showerrorz#IDLE's subprocess can't connect to :r+   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-failurezIDLE Subprocess Error)parent)	tkinterZtkinter.messageboxrX   ZTkfix_scalingZwithdrawerrnostrerrorZdestroy)rW   rU   r[   rX   rootmsgr   r   r   rT      s    *rT   c                 sd   dd l } | j  t  tj tj  \}}}}|\t_t_t_t	  fdd||| d S )Nr   c       	         s   j t| |j}|j}|d k	rNt|krNt|||j td d n:|d k	r|j rt|krt|||j td d |rtj	|}td d d}t
|| tj| d tj| |}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):run.pyrpc.pythreading.pyqueue.pydebugger_r.pybdb.pyr,   )endr!   )ra   rb   rc   rd   re   rf   )addid__context__	__cause__rJ   __traceback__r5   __suppress_context__rD   
extract_tbcleanup_traceback
print_listformat_exception_only)	typexcrL   contextcauseZtbeexcludelinesr   )efile	print_excseenr   r   ry      s.    

 

z"print_exception.<locals>.print_exc)
r   
checkcacheflush_stdoutr   r   rB   	last_type
last_valuelast_tracebackset)r   rr   valrL   Zexcinfor   )rx   ry   rz   r   rC      s    rC   c       
      C   s  | d d  }x2| r>x"|D ]}| d d j |rP qW P | d= qW x2| rrx"|D ]}| d d j |rLP qLW P | d= qBW t| dkr|d d  | d d < tdtjd tjd j}xftt| D ]V}| | \}}}}	|dkrd}|	 o|j	dr|j
d	d
||fi }	||||	f| |< qW d S )Nr   r+   z** IDLE Internal Exception: )r!   exec?z
-toplevel-z	<pyshell#r   r   r1   r1   )countlenr5   r   r   r   Zobjecttable
rpchandlerrO   
startswithZ
remotecall)
rL   rv   Zorig_tbZrpcfiler   rV   fnlnZnmr   r   r   r   ro      s2    



ro   c               C   s   d S )Nr   r   r   r   r   r|     s    r|   c              C   s*   t rdd l} | j  td tjd d S )Nr   F)r2   atexitZ_clearr&   r   r<   )r   r   r   r   r<     s
    r<   c             C   sr   dd l }t| jjdd}|dkrnxJ|jj| D ]:}|jj| |dd}t|d }|dk r0td	| |d< q0W d S )
Nr   tkscalinggffffff?T)r_   r.   existssizeg      ?g      )	Ztkinter.fontfloatr   Zcallr   namesZFontr3   round)r_   r[   r   r.   r   r   r   r   r   r\     s    r\   c               @   s   e Zd Zdd ZdS )rR   c             C   s   y W n t k
r    Y n tk
r:   datj  Y n   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  Y nX d S )NT
-(   )r!   zUnhandled server exception!z
Thread: %szClient Address: z	Request: z#
*** Unrecoverable, server exiting!)rA   EOFErrorr;   threadinterrupt_mainr   r6   r5   r7   Zcurrent_threadr.   reprrD   ry   r@   )selfrE   Zclient_addressZerfr   r   r   handle_error+  s&    zMyRPCServer.handle_errorN)r   
__module____qualname__r   r   r   r   r   rR   )  s   rR   c               @   s6   e Zd Zd
ddZedd Zedd Zdd	 ZdS )
PseudoFileNc             C   s   || _ || _|| _d S )N)shelltags	_encoding)r   r   r   encodingr   r   r   __init__L  s    zPseudoFile.__init__c             C   s   | j S )N)r   )r   r   r   r   r   Q  s    zPseudoFile.encodingc             C   s
   d| j  S )Nz<%s>)r   )r   r   r   r   r.   U  s    zPseudoFile.namec             C   s   dS )NTr   )r   r   r   r   isattyY  s    zPseudoFile.isatty)N)r   r   r   r   propertyr   r.   r   r   r   r   r   r   J  s   
r   c               @   s   e Zd Zdd Zdd ZdS )PseudoOutputFilec             C   s   dS )NTr   )r   r   r   r   writable_  s    zPseudoOutputFile.writablec             C   sP   | j rtdt|tk	r@t|ts6tdt|j tj|}| jj	|| j
S )Nzwrite to closed filezmust be str, not )closed
ValueErrorrJ   str
isinstance	TypeErrorr   __str__r   r   r   )r   r   r   r   r   r   b  s    

zPseudoOutputFile.writeN)r   r   r   r   r   r   r   r   r   r   ]  s   r   c               @   s:   e Zd ZdddZdd ZdddZdd	d
Zdd ZdS )PseudoInputFileNc             C   s   t j| ||| d| _d S )Nr,   )r   r   _line_buffer)r   r   r   r   r   r   r   r   o  s    zPseudoInputFile.__init__c             C   s   dS )NTr   )r   r   r   r   readables  s    zPseudoInputFile.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j	 }|s^P ||7 }qNW nDx(t
||k r| jj	 }|sP ||7 }qnW ||d  | _|d | }|S )Nzread from closed filer+   zmust be int, not r,   r   r1   )r   r   r   r3   r   rJ   r   r   r   readliner   )r   r   resultr   r   r   r   readv  s,    

 
 zPseudoInputFile.readc             C   s   | j rtd|d krd}nt|ts8tdt|j | jpF| jj	 }|dk rXt
|}|jdd|}|dkrv|d }||d  | _|d | S )Nzread from closed filer+   zmust be int, not r   r   r1   )r   r   r   r3   r   rJ   r   r   r   r   r   find)r   r   r   Zeolr   r   r   r     s    
zPseudoInputFile.readlinec             C   s   | j j  d S )N)r   close)r   r   r   r   r     s    zPseudoInputFile.close)Nr1   )r1   r1   )r1   )r   r   r   r   r   r   r   r   r   r   r   r   r   m  s
   


r   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
rS   c             C   s   t | }| jd| | jd| _t| jdtjt_t	| jdtjt_
t	| jdtjt_tjt_dd l}|j|_tj| _| jd| _tjj| d dd	 d S )
Nr   consolestdinstdoutr   r   interpg?)Zmyseqwait)	Executiveregisterget_remote_proxyr   r   r   r   r   r   r   r   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
   )rP   rQ   )r   r   r   r   exithook  s    zMyHandler.exithookc             C   s   da tj  d S )NT)r@   r   r   )r   r   r   r   EOFhook  s    zMyHandler.EOFhookc             C   s   da tj  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   rS     s   rS   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j | _tj | _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 nV tk
r:   Y nJ   tj | _ trTt  t	  | j
jjd}|rx| j
jj  Y nX t  d S )NTFz<<toggle-jit-stack-viewer>>)usr_exc_infointerruptabler   r   rA   r   rB   r@   r<   rC   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_server  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   Z
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   sr   | j r| j \}}}nd S d }|d k	r0| jj|}x|rN|jjd dkrN|j}q2W |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_oidrr   r   rL   flistitemr   r   r   r     s    
zExecutive.stackviewer)N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s   r   )r	   r
   r   r   r   r   r   )N)NN)F)4ior   r?   r   rP   rD   _threadr   r7   r$   r[   Zidlelibr   r   r   r   r   r   r   r   moddelattrmodulesr9   r   r"   r#   r&   ZTclr)   r*   r;   r@   r   rM   r8   rT   rC   ro   r|   r<   r\   Z	RPCServerrR   
TextIOBaser   r   r   r   rS   objectr   r   r   r   r   <module>   s`    




M$!4+A