HEX
Server: Apache/2.4.65 (Unix) OpenSSL/1.1.1k
System: Linux vps109042.inmotionhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: cisa (1010)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //opt/imh/python3.13/lib/python3.13/idlelib/__pycache__/query.cpython-313.pyc
�

��e�:��f�SrSSKrSSKrSSKrSSKrSSKJrJr SSK	J
r
JrJrJ
r
JrJr SSKJrJrJrJrJr SSK	Jr SSKJr SSKJr "S	S
\
5r"SS\5r"S
S\5r"SS\5r"SS\5r"SS\5r \!S:XaSSK"J#r# \#"SSSS9 SSK$J%r% \%"\\\ 5 gg)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_dialogc�t^�\rSrSrSrS0SSS.SjrSSjrSrSS	jrS
r	SSjr
SSjrU4S
jrSr
U=r$)�Query�!zgBase class for getting verified answer from a user.

For this base class, accept any non-blank string.
�F��text0�
used_names�_htest�_utestc�:�XlX0lX@lXPl[R
"X5 UR
5 URU5 URU5 U(dUR5 [U5 URS:XaURSUR5 URSUR5 URSUR5 URSUR5 URSUR5 UR!5 UR#5 UR%SUR'5UR)5S-UR+5S--
-UR-5U(d'UR/5S-UR15S--
OS	-4-5 UR3S
S
S9 U(d;UR55 UR6R95 UR;5 gg)
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
�aquaz<Command-.>z<Key-Escape>�WM_DELETE_WINDOWz<Key-Return>z
<KP_Enter>z+%d+%d��F)�height�widthN)�parent�messagerrr�__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$rrrrs        �3/opt/imh/python3.13/lib/python3.13/idlelib/query.pyr%�Query.__init__&s��������
�$�����$�'��
�
���
�
�5�����v����M�M�O��d��� � �F�*��I�I�m�T�[�[�1��	�	�.�$�+�+�.��
�
�(�$�+�+�6��	�	�.�$�'�'�*��	�	�,����(����������
�
���&�&�(��'�'�)�!�+�d�.A�.A�.C�A�.E�E�G��&�&�(�!��)�)�+�A�-��0D�0D�0F�q�0H�H�'*�,���	�	
���e�5��1���N�N���J�J� � �"������c	�.�[USS9=UlnURSSSS9 URSSS9 [	USS	UR
S
9n[
XR5Ul[USURS9Ul
[S
SURS9Ul
[	USSURS9UlURSSSS[S9 URRSSSS[[ -SS/S9 URRSSSS[[ -S9 UR#5 [%X!SUR&S9Ul[%USUR*S9UlUR(RSSSS9 UR,RSSSS9 g)zpCreate entry (rows, extras, buttons.

Entry stuff on rows 0-2, spanning cols 0-2.
Buttons on row 99, cols 1, 2.
�
)�paddingr�news)�column�row�sticky�)�weight�w�left��anchor�justify�text�)r"�textvariable�
TkCaptionFontT)�name�exists�root� �red�rO�
foreground�font���rErF�
columnspan�padxrG�rErFr^r_rG�padyr�active)rO�default�command�Cancel)rOrd�c)rErFr_N)r�frame�grid�grid_columnconfigurerr$rr�entryvarr
r:rr#�
error_font�entry_errorrr	�create_extrarr.�	button_okr,�
button_cancel)r=�ok_textrg�
entrylabels    r>r/�Query.create_widgetsYs���#�4��4�4��
�U�
�
�
�!��6�
�2�
�"�"�1�Q�"�/��5��f� $���.�
�!�$�
�
�3��
��5�����G��
��O�&*����>��� ��S�U�&*�o�o�7���	���q�a�A�A�a��H��
�
���q�a�A�A�a��c� ��V�	�	%������Q�A�!�!�%&�q�S�	�	*�	
������X�t�w�w�H���#��H�d�k�k�;���	
�����1�"�1��5������q�b�q��9r@c��g�N�)r=s r>rm�Query.create_extra}s��Dr@c�:�SU-U=(d URS'g)NzERROR: rO)rl)r=r$�widgets   r>�	showerror�Query.showerrors��/8�7�/B��	#�4�#�#�V�,r@c��URR5R5nU(dURS5 gU$)zReturn non-blank entry or None.zblank line.N)r:�get�stripry)r=r:s  r>�entry_ok�Query.entry_ok�s2���
�
��� �&�&�(����N�N�=�)���r@c��SURS'UR5nUbX lUR5 gURR5 g)z�If entry is valid, bind it to 'result' and destroy tk widget.

Otherwise leave dialog open for user to correct entry or cancel.
rrON)rlr~�result�destroyr:r;)r=�eventr:s   r>r.�Query.ok�sE��
$&����� ��
�
������K��L�L�N�
�J�J� � �"r@c�2�SUlUR5 g)z0Set dialog result to None and destroy tk widget.N)r�r�)r=r�s  r>r,�Query.cancel�s��������r@c�B>�UR5 [TU]	5 grt)�grab_release�superr�)r=�	__class__s �r>r��
Query.destroy�s�������
���r@)rornr:rlrjrkrgr$r#r�rr)�OKrt)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r%r/rmryr~r.r,r��__static_attributes__�
__classcell__�r�s@r>rr!sD����9;�r��e�1�f":�H!�C��#��
�r@rc�<^�\rSrSrSrSSS.U4SjjrSrSrU=r$)�SectionName�z*Get a name for a config file section name.F�rrc	�$>�[TU]XX4XVS9 g)N)rrr�r�r%)r=r#r'r$rrrr�s       �r>r%�SectionName.__init__�s���
����� &�	�	7r@c��URR5R5nU(dURS5 g[	U5S:�aURS5 gXR
;aURS5 gU$)z2Return sensible ConfigParser section name or None.�no name specified.NrPz"name is longer than 30 characters.zname is already in use.)r:r|r}ry�lenr)r=rSs  r>r~�SectionName.entry_ok�sh���z�z�~�~��%�%�'����N�N�/�0��
��Y�r�\��N�N�?�@��
�_�_�
$��N�N�4�5���r@ru�	r�r�r�r�r�r%r~r�r�r�s@r>r�r��s!���0�!��7�7�
�r@r�c�<^�\rSrSrSrSSS.U4SjjrSrSrU=r$)�
ModuleName�z-Get a module name for Open Module menu entry.Fr�c	�$>�[TU]XX4XVS9 g)N�rrrr�)r=r#r'r$rrrr�s       �r>r%�ModuleName.__init__�s���
�����$�	�	5r@c��URR5R5nU(dURS5 g[R
R
U5nUcURS5 g[UR[RR5(dURS5 gURRU5nU$![[4a$nUR[U55 SnAgSnAff=f![a URS5 g[aA URR5nU$![ a URS5 gf=ff=f)z0Return entered module name as file path or None.r�Nzmodule not found.znot a source-based module.z%loader does not support get_filename.zloader failed to get filename.)r:r|r}ry�	importlib�util�	find_spec�
ValueError�ImportError�str�
isinstance�loader�abc�SourceLoader�get_filename�AttributeError�	TypeError)r=rS�spec�msg�	file_paths     r>r~�ModuleName.entry_ok�s<���z�z�~�~��%�%�'����N�N�/�0��	��>�>�+�+�D�1�D��<��N�N�.�/���$�+�+�y�}�}�'A�'A�B�B��N�N�7�8��	����0�0��6�I����+�K�(�	��N�N�3�s�8�$���	���	��N�N�B�C���	�
� �K�K�4�4�6�	�����
����?�@��
��		�sH�C�=D�D�*D	�	D�E8�.	E8�8E�E4�0E8�3E4�4E8rur�r�s@r>r�r��s!���3�!��5�5�
�r@r�c��\rSrSrSrSrSrg)�Goto��z1Get a positive line number for editor Go To Line.c��[URR55nUS::aUR	S5 gU$![a UR	S5 gf=f)Nznot a base 10 integer.rznot a positive integer.)�intr:r|r�ry)r=�linenos  r>r~�
Goto.entry_ok�s[��	�������)�*�F��Q�;��N�N�4�5���
��
�	��N�N�3�4��	�s�#?�A�AruN)r�r�r�r�r�r~r�rur@r>r�r��s
��7�	r@r�c�r^�\rSrSrSrSS0SSS.U4SjjrSrSrS	r\	RrS
rSr
Sr
U=r$)
�
HelpSource�z,Get menu name and help source for Help menu.rF)�menuitem�filepathrrrc
�6>�X@lSn[T	U]	XX�XVUS9 g)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�r�r%)
r=r#r'r�r�rrrr$r�s
         �r>r%�HelpSource.__init__�s,���!�
�/��
����w�%�V�	�	Er@c	��URn[USSSS9n[XR5Ul[XRSS9Ul[USSURS	9n[US
SURS9Ul
URS
SSSSS
/[S9 URRS
SSS[[-SS
/S9 URSSS[[-S9 URRS
SSS[[-S9 g)zAdd path widjets to rows 10-12.rJrKz,Help File Path: Enter URL or browse for filerL�()rQr"�Browse�)rOr"rdrVrWrXrrBr[r\)rErFr^r_rarG�rr`)rErFr_rG�r]N)rgrrr��pathvarr
�pathr�browse_filerk�
path_errorrhrr	r
)r=rg�	pathlabel�browses    r>rm�HelpSource.create_extras����
�
���%��V�M�O�	� ��}�}�5����%�l�l�"�E��	���H�A� $� 0� 0�2����C�E�%)�_�_�6���	���a�R�A�A�R��F��	�	!��	�	���a�R�A�A�a��c���F�	�	$����1�"�1�Q�q�S��9������A�2�!�!�$%�a�C�	�	)r@c�D�[R"XS9RX#S9$)N)r#�	filetypes)�
initialdir�initialfile)r�Open�show)r=r��initdir�initfiles    r>�askfilename�HelpSource.askfilenames!�����d�@�����>�	?r@c�:�/SQnURR5nU(a"[RR	U5up4O�Sn[
SSS:Xa{[RR
[RR[5S5n[RRU5(d[R"5nO[R"5nURXU5nU(aURRU5 gg)N))z
HTML Filesz*.htm *.html�TEXT)z	PDF Filesz*.pdfr�)zWindows Help Filesz*.chm)z
Text Filesz*.txtr�)z	All Files�*r[�win�Doc)
r�r|�osr��splitr�join�dirnamer�isdir�getcwdr��set)r=r�r��dir�base�files      r>r��HelpSource.browse_file!s��� �	��|�|���!������
�
�d�+�I�C���D����|�u�$��g�g�l�l�2�7�7�?�?�:�#>��F���w�w�}�}�S�)�)��)�)�+�C���i�i�k�����	��5����L�L���T�"�r@c��URR5R5nU(dURSUR5 gURS5(d^USSS:XaUSSn[RRU5(dURSUR5 g[S:XaSU-nU$)	z(Simple validity check for menu file pathzno help file path specified.N)zwww.�httpr\zfile:zhelp file path does not exist.�darwinzfile://)	r�r|r}ryr��
startswithr�rTr)r=r�s  r>�path_ok�HelpSource.path_ok9s����y�y�}�}��$�$�&����N�N�9�4�?�?�K�����!1�2�2��B�Q�x�7�"��A�B�x���7�7�>�>�$�'�'����?�#���0���8�#�!�D�(���r@c�v�SURS'UR5nUR5nUbUcS$X4$)z,Return apparently valid (name, path) or NonerrON)r��item_okr�)r=rSr�s   r>r~�HelpSource.entry_okJs;��"$�������|�|�~���|�|�~���|�t�|�t�E�$��Er@)r�r�r�r�)r�r�r�r�r�r%rmr�r�r�r~r�r�r�r�r�s@r>r�r��sM���2�35�r��u�U�E�E�)�(?�#�,�"�"�G��"F�Fr@r�c�J^�\rSrSrSr/SSS.U4SjjrSrSrSrS	r	U=r
$)
�	CustomRuniQzzGet settings for custom run of module.

1. Command line arguments to extend sys.argv.
2. Whether to restart Shell or not.
F)�cli_argsrrc	�(>�Sn[TU]XXcXES9 g)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:r�Nr�)r=r#r'r�rrr$r�s       �r>r%�CustomRun.__init__Ys$���9��
����w��	�	.r@c��URn[USS9Ul[XRSSSS9n[	USSUR
S9UlURS	S
SSS
S9 URRS	SSSSS9 g)zAdd run mode on rows 10-12.T)�valueFz
Restart shell)�variable�onvalue�offvaluerOrVrWrXrrBr[r\rJr]r��weN)rgr�
restartvarrrrk�
args_errorrh)r=rg�restarts   r>rm�CustomRun.create_extraes����
�
��$�T��6����e�o�o�t�',�?�D����C�E�%)�_�_�6���	���A�2�!�!�C��H������A�2�!�!�$(�	�	*r@c���URR5R5n[R"USS9nU$![
a$nUR
[U55 SnAgSnAff=f)z.Return command line arg list or None if error.T)�posixN)r:r|r}�shlexr�r�ryr�)r=�
cli_stringr��errs    r>�cli_args_ok�CustomRun.cli_args_okrs\���Z�Z�^�^�%�+�+�-�
�	��{�{�:�T�:�H�����	��N�N�3�s�8�$���	�s�A�
A/�A*�*A/c�f�UR5nURR5nUcS$X4$)z4Return apparently valid (cli_args, restart) or None.N)rrr|)r=r�rs   r>r~�CustomRun.entry_ok|s5���#�#�%���/�/�%�%�'���'�t�@�h�-@�@r@)rr)r�r�r�r�r�r%rmrr~r�r�r�s@r>r�r�Qs2����35��e�
.�
.�*��A�Ar@r��__main__)�mainzidlelib.idle_test.test_queryrF)�	verbosity�exit)�run)&r��importlib.utilr��
importlib.abcr�r�sysrr�tkinterrrrrr	r
�tkinter.ttkrrr
rrr�tkinter.fontr�tkinter.simpledialogrrr�r�r�r�r�r��unittestr�idlelib.idle_test.htestrrur@r>�<module>rs���
�*%�	��$�<�<�@�@���.��H��D�%��0'��'�T
�5�
� ZF��ZF�x/A��/A�d�z����	'�1�5�A�+���z�9�%�r@