HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/__pycache__/query.cpython-310.opt-1.pyc
o

�i�:�@s6dZddlZddlZddlZddlZddlmZmZddl	m
Z
mZmZm
Z
mZmZddlmZmZmZmZmZddl	mZddlmZddlmZGd	d
�d
e
�ZGdd�de�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�Z e!dkr�ddl"m#Z#e#dddd�ddl$m%Z%e%eee �dSdS)a|
Dialogs that query users and verify the answer before accepting.

Query is the generic base class for a popup dialog.
The user must either enter a valid answer or close the dialog.
Entries are validated when <Return> is entered or [Ok] is clicked.
Entries are ignored when [Cancel] or [X] are clicked.
The 'return value' is .result set to either a valid answer or None.

Subclass SectionName gets a name for a new config file section.
Configdialog uses it for new highlight theme and keybinding set names.
Subclass ModuleName gets a name for File => Open Module.
Subclass HelpSource gets menu item and path for additions to Help menu.
�N)�
executable�platform)�Toplevel�	StringVar�
BooleanVar�W�E�S)�Frame�Button�Entry�Label�Checkbutton)�
filedialog)�Font)�
_setup_dialogcsleZdZdZdiddd�dd�Zddd	�Zd
d�Zdd
d�Zdd�Zddd�Z	ddd�Z
�fdd�Z�ZS)�QueryzoBase class for getting verified answer from a user.

    For this base class, accept any non-blank string.
    �F��text0�
used_names�_htest�_utestcCs:||_||_||_||_t�||�|��|�|�|�|�|s&|�	�t
|�|jdkr6|�d|j
�|�d|j
�|�d|j
�|�d|j�|�d|j�|��|��|�d|��|��d|��d|��|s}|��d|��dnd	f�|jd
d
d�|s�|��|j��|��dSdS)
a�Create modal popup, return when destroyed.

        Additional subclass init must be done before this unless
        _utest=True is passed to suppress wait_window().

        title - string, title of popup dialog
        message - string, informational message to display
        text0 - initial value for entry
        used_names - names already in use
        _htest - bool, change box location when running htest
        _utest - bool, leave window hidden and not modal
        Zaquaz<Command-.>z<Key-Escape>ZWM_DELETE_WINDOWz<Key-Return>z
<KP_Enter>z+%d+%d��F)Zheight�widthN)�parent�messagerrr�__init__Zwithdraw�titleZ	transientZgrab_setrZ_windowingsystem�bind�cancel�protocol�ok�create_widgetsZupdate_idletasksZgeometryZwinfo_rootxZwinfo_widthZwinfo_reqwidthZwinfo_rootyZwinfo_heightZwinfo_reqheightZ	resizableZ	deiconify�entry�	focus_setZwait_window)�selfrrrrrrr�r(�*/usr/local/lib/python3.10/idlelib/query.pyr&sJ


�����
�zQuery.__init__�OKcCs,t|dd�|_}|jdddd�|jddd�t|dd	|jd
�}t||j�|_t	|d|jd�|_
td
d|jd�|_
t|dd|j
d�|_|jddddtd�|j
jddddttddgd�|jjddddttd�|��t||d|jd�|_t|d|jd�|_|jjdddd�|jjdddd�dS)z�Create entry (rows, extras, buttons.

        Entry stuff on rows 0-2, spanning cols 0-2.
        Buttons on row 99, cols 1, 2.
        �
)Zpaddingr�news)�column�row�sticky�)Zweight�w�left��anchorZjustify�text�)r�textvariableZ
TkCaptionFontT)�name�exists�root� �red�r5Z
foregroundZfont���r-r.�
columnspan�padxr/�r-r.rArBr/�padyrZactive)r5�default�commandZCancel)r5rF�c)r-r.rBN)r
�frame�gridZgrid_columnconfigurer
rrrZentryvarrr%rr�
error_font�entry_errorrr�create_extrarr#Z	button_okr!Z
button_cancel)r'Zok_textrHZ
entrylabelr(r(r)r$Ys<�����
��zQuery.create_widgetscCsdS�Nr(�r'r(r(r)rL}szQuery.create_extraNcCsd||p|jd<dS)NzERROR: r5)rK)r'rZwidgetr(r(r)�	showerrorszQuery.showerrorcCs$|j����}|s|�d�dS|S)zReturn non-blank entry or None.zblank line.N)r%�get�striprO)r'r%r(r(r)�entry_ok�s

zQuery.entry_okcCs:d|jd<|��}|dur||_|��dS|j��dS)z�If entry is valid, bind it to 'result' and destroy tk widget.

        Otherwise leave dialog open for user to correct entry or cancel.
        rr5N)rKrR�result�destroyr%r&)r'�eventr%r(r(r)r#�s
zQuery.okcCsd|_|��dS)z0Set dialog result to None and destroy tk widget.N)rSrT)r'rUr(r(r)r!�szQuery.cancelcs|��t���dSrM)Zgrab_release�superrTrN��	__class__r(r)rT�sz
Query.destroy)r*rM)
�__name__�
__module__�__qualname__�__doc__rr$rLrOrRr#r!rT�
__classcell__r(r(rWr)r!s�
3$


rc�0eZdZdZddd��fdd�
Zdd�Z�ZS)�SectionNamez*Get a name for a config file section name.F�rrc�t�j||||||d�dS)N)rrr�rVr)r'rrrrrrrWr(r)r��
�zSectionName.__init__cCsV|j����}|s|�d�dSt|�dkr|�d�dS||jvr)|�d�dS|S)z2Return sensible ConfigParser section name or None.�no name specified.Nr6z"name is longer than 30 characters.zname is already in use.)r%rPrQrO�lenr)r'r8r(r(r)rR�s



zSectionName.entry_ok�rYrZr[r\rrRr]r(r(rWr)r_��
�r_cr^)�
ModuleNamez-Get a module name for Open Module menu entry.Fr`cra)N�rrrrb)r'rrrrrrrWr(r)r�rczModuleName.__init__cCs|j����}|s|�d�dSztj�|�}Wnttfy4}z|�t	|��WYd}~dSd}~ww|dur@|�d�dSt
|jtjj
�sO|�d�dSz	|j�|�}W|Styg|�d�YdSty�z	|j��}WY|Sty�|�d�YYdSww)z0Return entered module name as file path or None.rdNzmodule not found.znot a source-based module.z%loader does not support get_filename.zloader failed to get filename.)r%rPrQrO�	importlib�util�	find_spec�
ValueError�ImportError�str�
isinstance�loader�abc�SourceLoader�get_filename�AttributeError�	TypeError)r'r8�spec�msgZ	file_pathr(r(r)rR�s@
��

�
�
��zModuleName.entry_okrfr(r(rWr)rh�rgrhc@seZdZdZdd�ZdS)�Gotoz1Get a positive line number for editor Go To Line.cCsLz	t|j���}Wnty|�d�YdSw|dkr$|�d�dS|S)Nznot a base 10 integer.rznot a positive integer.)�intr%rPrmrO)r'�linenor(r(r)rR�s
�
z
Goto.entry_okN)rYrZr[r\rRr(r(r(r)ry�srycs\eZdZdZddiddd��fdd�
Zdd�Zd	d
�Zdd�Zej	Z
d
d�Zdd�Z	�ZS)�
HelpSourcez,Get menu name and help source for Help menu.rF)�menuitem�filepathrrrc		s(||_d}t�j|||||||d�dS)z�Get menu entry and url/local file for Additional Help.

        User enters a name for the Help resource and a web url or file
        name. The user can browse for the file.
        zName for item on Help menu:rN)r~rVr)	r'rrr}r~rrrrrWr(r)r�s
�zHelpSource.__init__cCs�|j}t|dddd�}t||j�|_t||jdd�|_t|dd|jd	�}t|d
d|j	d�|_
|jd
ddddd
gtd�|jjd
dddtt
dd
gd�|jdddttd�|j
jd
dddtt
d�dS)zAdd path widjets to rows 10-12.r1r2z,Help File Path: Enter URL or browse for filer3�()r7rZBrowse�)r5rrFr;r<r=rr+r>r?)r-r.rArBrDr/�rrC)r-r.rBr/�r@N)rHr
rr~�pathvarr�pathr�browse_filerJ�
path_errorrIrrr	)r'rHZ	pathlabelZbrowser(r(r)rLs,�����
�zHelpSource.create_extracCstj||d�j||d�S)N)r�	filetypes)Z
initialdirZinitialfile)rZOpenZshow)r'r�ZinitdirZinitfiler(r(r)�askfilenames�zHelpSource.askfilenamecCs�gd�}|j��}|rtj�|�\}}n$d}tdd�dkr4tj�tj�t�d�}tj�	|�s3t�
�}nt�
�}|�|||�}|rI|j�|�dSdS)N))z
HTML Filesz*.htm *.html�TEXT)z	PDF Filesz*.pdfr�)zWindows Help Filesz*.chm)z
Text Filesz*.txtr�)z	All Files�*r>�winZDoc)
r�rP�osr��splitr�join�dirnamer�isdir�getcwdr��set)r'r�r��dir�base�filer(r(r)r�!s
��zHelpSource.browse_filecCs||j����}|s|�d|j�dS|�d�s<|dd�dkr%|dd�}tj�|�s4|�d|j�dStdkr<d|}|S)	z(Simple validity check for menu file pathzno help file path specified.N)zwww.�httpr?zfile:zhelp file path does not exist.�darwinzfile://)	r�rPrQrOr��
startswithr�r9r)r'r�r(r(r)�path_ok9s
�zHelpSource.path_okcCs6d|jd<|��}|��}|dus|durdS||fS)z,Return apparently valid (name, path) or Nonerr5N)r��item_okr�)r'r8r�r(r(r)rRJs
zHelpSource.entry_ok)
rYrZr[r\rrLr�r�r_rRr�r�r]r(r(rWr)r|�s�
r|csBeZdZdZgddd��fdd�
Zdd�Zdd	�Zd
d�Z�ZS)�	CustomRunz�Get settings for custom run of module.

    1. Command line arguments to extend sys.argv.
    2. Whether to restart Shell or not.
    F)�cli_argsrrcs d}t�j||||||d�dS)z�cli_args is a list of strings.

        The list is assigned to the default Entry StringVar.
        The strings are displayed joined by ' ' for display.
        z$Command Line Arguments for sys.argv:riNrb)r'rrr�rrrrWr(r)rYs

�zCustomRun.__init__cCsj|j}t|dd�|_t||jdddd�}t|dd|jd�|_|jd	d
ddd
d�|jjd	ddddd�dS)zAdd run mode on rows 10-12.T)�valueFz
Restart shell)�variableZonvalueZoffvaluer5r;r<r=rr+r>r?r1r@r�ZweN)rHr�
restartvarrr
rJZ
args_errorrI)r'rH�restartr(r(r)rLes
��
�zCustomRun.create_extrac
CsX|j����}z
tj|dd�}W|Sty+}z|�t|��WYd}~dSd}~ww)z6Validity check and parsing for command line arguments.T)�posixN)r%rPrQ�shlexr�rmrOro)r'Z
cli_stringr��errr(r(r)�cli_args_okrs���zCustomRun.cli_args_okcCs&|��}|j��}|durdS||fS)z4Return apparently valid (cli_args, restart) or None.N)r�r�rP)r'r�r�r(r(r)rR|s
zCustomRun.entry_ok)	rYrZr[r\rrLr�rRr]r(r(rWr)r�Qs�

r��__main__)�mainzidlelib.idle_test.test_queryrF)�	verbosity�exit)�run)&r\�importlib.utilrjZ
importlib.abcr�r��sysrr�tkinterrrrrrr	Ztkinter.ttkr
rrr
rrZtkinter.fontrZtkinter.simpledialogrrr_rhryr|r�rYZunittestr�Zidlelib.idle_test.htestr�r(r(r(r)�<module>s. *\2�