
    3\h:                        	 d dl Zd dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
mZmZmZmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d dlmZ  G d d	e	          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          Ze dk    r)d dl!m"Z"  e"ddd           d dl#m$Z$  e$eee           dS dS )    N)
executableplatform)Toplevel	StringVar
BooleanVarWES)FrameButtonEntryLabelCheckbutton)
filedialog)Font)_setup_dialogc                   ^     e Zd Z	 di ddddZddZd Zdd	Zd
 ZddZddZ	 fdZ
 xZS )Query Ftext0
used_names_htest_utestc                   	 || _         || _        || _        || _        t	          j        | |           |                                  |                     |           |                     |           |s| 	                                 t          |            | j        dk    r|                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                                  |                                  |                     d|                                |                                dz  |                                 dz  z
  z   |                                |s/|                                dz  |                                 dz  z
  nd	z   fz             |                     d
d
           |sC|                                  | j                                         |                                  d S d S )Naquaz<Command-.>z<Key-Escape>WM_DELETE_WINDOWz<Key-Return>z
<KP_Enter>z+%d+%d      F)heightwidth)parentmessager   r   r   __init__withdrawtitle	transientgrab_setr   _windowingsystembindcancelprotocolokcreate_widgetsupdate_idletasksgeometrywinfo_rootxwinfo_widthwinfo_reqwidthwinfo_rootywinfo_heightwinfo_reqheight	resizable	deiconifyentry	focus_setwait_window)selfr"   r&   r#   r   r   r   r   s           7/opt/python-3.11.14/usr/lib/python3.11/idlelib/query.pyr$   zQuery.__init__&   s@   	 
$$'''

5v 	MMOOOd F**IImT[111		.$+...($+666		.$'***		,(((&&((''))!+d.A.A.C.CA.EEG&&((!+f))++A-0D0D0F0Fq0HHH'*, 	 	 	 	e5111 	NNJ  """	 	    OKc           	         	 t          | d          x| _        }|                    ddd           |                    dd           t	          |dd	| j        
          }t          | | j                  | _        t          |d| j                  | _
        t          dd| j                  | _        t	          |dd| j                  | _        |                    ddddt                     | j
                            ddddt          t           z   ddg           | j                            ddddt          t           z              |                                  t%          ||d| j                  | _        t%          |d| j                  | _        | j                            ddd           | j                            ddd           d S )N
   )paddingr   news)columnrowsticky   )weightwleftanchorjustifytext   )r!   textvariableTkCaptionFontT)nameexistsroot redrN   
foregroundfont      rD   rE   
columnspanpadxrF   rD   rE   r]   r^   rF   padyr   active)rN   defaultcommandCancel)rN   rc   c   )rD   rE   r^   )r   framegridgrid_columnconfigurer   r#   r   r   entryvarr   r9   r   r"   
error_fontentry_errorr   r	   create_extrar   r-   	button_okr+   button_cancel)r<   ok_textrf   
entrylabels       r=   r.   zQuery.create_widgetsY   s   	 #44444
U

!6
222""1Q"///5f $. . .
!$
335GGG
O&*> > > SU&*o7 7 7 	qaAAaHHH
qaAAac V 	 	% 	% 	%QA!!%&qS 	 	* 	* 	* 	GXtwH H H#Hdk; ; ; 	1"1555qbq99999r>   c                     d S N )r<   s    r=   rl   zQuery.create_extra}   s      r>   Nc                 $    d|z   |p| j         d<   d S )NzERROR: rN   )rk   )r<   r#   widgets      r=   	showerrorzQuery.showerror   s    /87/B	#4#V,,,r>   c                     	 | j                                                                         }|s|                     d           d S |S )Nzblank line.)r9   getstriprv   )r<   r9   s     r=   entry_okzQuery.entry_ok   sF    )
  &&(( 	NN=)))4r>   c                     	 d| j         d<   |                                 }||| _        |                                  d S | j                                         d S Nr   rN   )rk   rz   resultdestroyr9   r:   )r<   eventr9   s      r=   r-   zQuery.ok   s]    	 $& DKLLNNNNN J  """""r>   c                 >    	 d | _         |                                  d S rr   )r}   r~   )r<   r   s     r=   r+   zQuery.cancel   s    :r>   c                 p    |                                   t                                                       d S rr   )grab_releasesuperr~   )r<   	__class__s    r=   r~   zQuery.destroy   s/    r>   )r?   rr   )__name__
__module____qualname__r$   r.   rl   rv   rz   r-   r+   r~   __classcell__r   s   @r=   r   r   !   s         9;re1 1 1 1 1f": ": ": ":H !  C C C C  # # # #   
        r>   r   c                   .     e Zd Z	 ddd fd
Zd Z xZS )SectionNameFr   r   c                V    t                                          ||||||           d S )N)r   r   r   r   r$   )r<   r"   r&   r#   r   r   r   r   s          r=   r$   zSectionName.__init__   s;    J &v 	 	7 	7 	7 	7 	7r>   c                 $   	 | j                                                                         }|s|                     d           d S t	          |          dk    r|                     d           d S || j        v r|                     d           d S |S )Nno name specified.rO   z"name is longer than 30 characters.zname is already in use.)r9   rx   ry   rv   lenr   )r<   rR   s     r=   rz   zSectionName.entry_ok   s    <z~~%%'' 	NN/0004YYr\\NN?@@@4T_$$NN45554r>   r   r   r   r$   rz   r   r   s   @r=   r   r      s[        0 !7 7 7 7 7 7 7
      r>   r   c                   .     e Zd Z	 ddd fd
Zd Z xZS )
ModuleNameFr   c                V    t                                          ||||||           d S )Nr   r   r   r   )r<   r"   r&   r#   r   r   r   r   s          r=   r$   zModuleName.__init__   s;    u$V 	 	5 	5 	5 	5 	5r>   c                    	 | j                                                                         }|s|                     d           d S 	 t          j                            |          }nA# t          t          f$ r-}|                     t          |                     Y d }~d S d }~ww xY w||                     d           d S t          |j        t          j        j                  s|                     d           d S 	 |j                            |          }ns# t          $ r |                     d           Y d S t          $ rE 	 |j                                        }n'# t           $ r |                     d           Y Y d S w xY wY nw xY w|S )Nr   zmodule not found.znot a source-based module.z%loader does not support get_filename.zloader failed to get filename.)r9   rx   ry   rv   	importlibutil	find_spec
ValueErrorImportErrorstr
isinstanceloaderabcSourceLoaderget_filenameAttributeError	TypeError)r<   rR   specmsg	file_paths        r=   rz   zModuleName.entry_ok   s   :z~~%%'' 	NN/0004	>++D11DDK( 	 	 	NN3s88$$$44444	 <NN.///4$+y}'ABB 	NN78884	0066II 	 	 	NNBCCC44 	 	 	 K4466		   ?@@@ttt 		 sT   A' 'B%8"B  B%=D F:	FEFF=FFFFr   r   s   @r=   r   r      s[        3 !5 5 5 5 5 5 5
      r>   r   c                       e Zd Z	 d ZdS )Gotoc                     	 t          | j                                                  }n&# t          $ r |                     d           Y d S w xY w|dk    r|                     d           d S |S )Nznot a base 10 integer.r   znot a positive integer.)intr9   rx   r   rv   )r<   linenos     r=   rz   zGoto.entry_ok   s    	))**FF 	 	 	NN344444	 Q;;NN45554s   &) AAN)r   r   r   rz   rs   r>   r=   r   r      s&        7	 	 	 	 	r>   r   c                   Z     e Zd Z	 ddi ddd fd
Zd Zd Zd Zej        Z	d Z
d	 Z xZS )

HelpSourcer   F)menuitemfilepathr   r   r   c          	      l    	 || _         d}t                                          |||||||           d S )NzName for item on Help menu:r   )r   r   r$   )
r<   r"   r&   r   r   r   r   r   r#   r   s
            r=   r$   zHelpSource.__init__   sV    	
 !/wh%fV 	 	E 	E 	E 	E 	Er>   c           	      X   	 | j         }t          |ddd          }t          | | j                  | _        t          || j        d          | _        t          |dd| j        	          }t          |d
d| j	                  | _
        |                    ddddddgt                     | j                            ddddt          t          z   ddg           |                    dddt          t          z              | j
                            ddddt          t          z              d S )NrI   rJ   z,Help File Path: Enter URL or browse for filerK   (   )rP   r!   Browse   )rN   r!   rc   rU   rV   rW   r   rA   rZ   r[   )rD   rE   r]   r^   r`   rF      r   r_   )rD   rE   r^   rF      r\   )rf   r   r   r   pathvarr   pathr   browse_filerj   
path_errorrg   r   r	   r
   )r<   rf   	pathlabelbrowses       r=   rl   zHelpSource.create_extra  sN   )
%VMO O O	 t}55%dl"EEE	HA $ 02 2 2CE%)_6 6 6 	aRAARF 	 	! 	! 	!	aRAAacF 	 	$ 	$ 	$1"1QqS999A2!!$%aC 	 	) 	) 	) 	) 	)r>   c                 X    t          j        | |                              ||          S )N)r"   	filetypes)
initialdirinitialfile)r   Openshow)r<   r   initdirinitfiles       r=   askfilenamezHelpSource.askfilename  s,     di@@@X>>	?r>   c                 .   g d}| j                                         }|r#t          j                            |          \  }}nd }t
          d d         dk    rut          j                            t          j                            t                    d          }t          j        	                    |          st          j
                    }nt          j
                    }|                     |||          }|r| j                             |           d S d S )N))z
HTML Filesz*.htm *.htmlTEXT)z	PDF Filesz*.pdfr   )zWindows Help Filesz*.chm)z
Text Filesz*.txtr   )z	All Files*rZ   winDoc)r   rx   osr   splitr   joindirnamer   isdirgetcwdr   set)r<   r   r   dirbasefiles         r=   r   zHelpSource.browse_file!  s         	 |!! 		"d++ICD|u$$gll27??:#>#>FFw}}S)) &)++Cikk	355 	#LT"""""	# 	#r>   c                    	 | j                                                                         }|s|                     d| j                   d S |                    d          sd|d d         dk    r
|dd          }t          j                             |          s|                     d| j                   d S t          dk    rd|z   }|S )Nzno help file path specified.)zwww.httpr[   zfile:zhelp file path does not exist.darwinzfile://)	r   rx   ry   rv   r   
startswithr   rS   r   )r<   r   s     r=   path_okzHelpSource.path_ok9  s    2y}}$$&& 	)NN94?KKK4!122 	)BQBx7""ABBx7>>$'' ?#0 0 0t8##!D(r>   c                 |    	 d| j         d<   |                                 }|                                 }||d n||fS r|   )r   item_okr   )r<   rR   r   s      r=   rz   zHelpSource.entry_okJ  sA    6"$||~~||~~|t|tt$Er>   )r   r   r   r$   rl   r   r   r   rz   r   r   r   r   s   @r=   r   r      s        2 35ruUE E E E E E E) ) )(? ? ?# # #, "G  "F F F F F F Fr>   r   c                   <     e Zd Z	 g ddd fd
Zd Zd Zd Z xZS )	CustomRunF)cli_argsr   r   c                \    	 d}t                                          ||||||           d S )Nz$Command Line Arguments for sys.argv:r   r   )r<   r"   r&   r   r   r   r#   r   s          r=   r$   zCustomRun.__init__Y  sH    	
 9whf 	 	. 	. 	. 	. 	.r>   c                     	 | j         }t          | d          | _        t          || j        ddd          }t	          |dd| j                  | _        |                    d	d
ddd           | j                            d	dddd           d S )NT)valueFzRestart shell)variableonvalueoffvaluerN   rU   rV   rW   r   rA   rZ   r[   rI   r\   r   we)rf   r   
restartvarr   r   rj   
args_errorrg   )r<   rf   restarts      r=   rl   zCustomRun.create_extrae  s    %
$T666edot',?D D DCE%)_6 6 6 	A2!!CHHHA2!!$( 	 	* 	* 	* 	* 	*r>   c                    	 | j                                                                         }	 t          j        |d          }n:# t
          $ r-}|                     t          |                     Y d }~d S d }~ww xY w|S )NT)posix)r9   rx   ry   shlexr   r   rv   r   )r<   
cli_stringr   errs       r=   cli_args_okzCustomRun.cli_args_okr  s    8Z^^%%++--
	{:T:::HH 	 	 	NN3s88$$$44444	 s   A 
A<"A77A<c                 n    	 |                                  }| j                                        }|d n||fS rr   )r   r   rx   )r<   r   r   s      r=   rz   zCustomRun.entry_ok|  s=    >##%%/%%'''tth-@@r>   )r   r   r   r$   rl   r   rz   r   r   s   @r=   r   r   Q  s         35e
. 
. 
. 
. 
. 
. 
.* * *  A A A A A A Ar>   r   __main__)mainzidlelib.idle_test.test_queryr   F)	verbosityexit)run)%importlib.utilr   importlib.abcr   r   sysr   r   tkinterr   r   r   r   r	   r
   tkinter.ttkr   r   r   r   r   r   tkinter.fontr   tkinter.simpledialogr   r   r   r   r   r   r   r   unittestr   idlelib.idle_test.htestr   rs   r>   r=   <module>r      si  * % $ $ $ $ $ $ $ 				  $ $ $ $ $ $ $ $ < < < < < < < < < < < < < < < < @ @ @ @ @ @ @ @ @ @ @ @ @ @             . . . . . .    H   D    %   0' ' ' ' ' ' ' 'T    5    ZF ZF ZF ZF ZF ZF ZF ZFx/A /A /A /A /A /A /A /Ad zD	'15AAAA++++++Cz9%%%%% r>   