e:fSrSSKrSSKrSSKrSSKrSSKJrJr SSK J r J r J r J r JrJr SSKJrJrJrJrJr SSK Jr SSKJr SSKJr "S S \ 5r"S S \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 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) executableplatform)Toplevel StringVar BooleanVarWES)FrameButtonEntryLabel Checkbutton) filedialog)Font) _setup_dialogct^\rSrSrSrS0SSS.SjrSSjrSrSS jrS r SS jr SS jr U4S jr Sr U=r$)Query!zgBase class for getting verified answer from a user. For this base class, accept any non-blank string. Ftext0 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 S 9 U(d;UR55 UR6R95 UR;5 g g ) aCreate 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 z WM_DELETE_WINDOWz z z+%d+%dF)heightwidthN)parentmessagerrr__init__withdrawtitle transientgrab_setr_windowingsystembindcancelprotocolokcreate_widgetsupdate_idletasksgeometry winfo_rootx winfo_widthwinfo_reqwidth winfo_rooty winfo_heightwinfo_reqheight resizable deiconifyentry focus_set wait_window)selfr#r'r$rrrrs 3/opt/imh/python3.13/lib/python3.13/idlelib/query.pyr%Query.__init__&s   $$'  5 v MMOd  F * IImT[[ 1 .$++. ($++6 .$''* ,(   &&('')!+d.A.A.CA.EEG&&(!))+A-0D0D0Fq0HH'*,  e51 NN  JJ "    c .[USS9=UlnURSSSS9 URSSS9 [ USS UR S 9n[ XR5Ul[US URS 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. )paddingrnews)columnrowsticky)weightwleftanchorjustifytext)r" textvariable TkCaptionFontT)nameexistsroot redrO foregroundfontrErF columnspanpadxrGrErFr^r_rGpadyractive)rOdefaultcommandCancel)rOrdc)rErFr_N)r framegridgrid_columnconfigurerr$rrentryvarr r:rr# error_font entry_errorrr create_extrar r. button_okr, button_cancel)r=ok_textrg entrylabels r>r/Query.create_widgetsYs#444 U !6 2 ""1Q"/5f $ . !$ 3 5G O&*> SU&*oo7 qaAAaH qaAAac V  % QA!!%&qS  * XtwwH#Hdkk; 1"15 qbq9r@cgN)r=s r>rmQuery.create_extra}sDr@c:SU-U=(d URS'g)NzERROR: rO)rl)r=r$widgets r> showerrorQuery.showerrors/87/B #4##V,r@cURR5R5nU(dURS5 gU$)zReturn non-blank entry or None.z blank line.N)r:getstripry)r=r:s r>entry_okQuery.entry_oks2  &&( NN= ) r@cSURS'UR5nUbX lUR5 gURR 5 g)zIf entry is valid, bind it to 'result' and destroy tk widget. Otherwise leave dialog open for user to correct entry or cancel. rrON)rlr~resultdestroyr:r;)r=eventr:s r>r.Query.oksE $&    K LLN JJ "r@c2SUlUR5 g)z0Set dialog result to None and destroy tk widget.N)rr)r=rs r>r, Query.cancels  r@cB>UR5 [TU] 5 grt) grab_releasesuperr)r= __class__s r>r Query.destroys  r@) rornr:rlrjrkrgr$r#rrr)OKrt)__name__ __module__ __qualname____firstlineno____doc__r%r/rmryr~r.r,r__static_attributes__ __classcell__rs@r>rr!sD9;re1f":H!C # r@rc<^\rSrSrSrSSS.U4SjjrSrSrU=r$) SectionNamez*Get a name for a config file section name.Frrc $>[TU]XX4XVS9 g)N)rrrrr%)r=r#r'r$rrrrs 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}rylenr)r=rSs r>r~SectionName.entry_okshzz~~%%' NN/ 0 Yr\ NN? @ __ $ NN4 5 r@ru rrrrrr%r~rrrs@r>rrs!0!77  r@rc<^\rSrSrSrSSS.U4SjjrSrSrU=r$) ModuleNamez-Get a module name for Open Module menu entry.Frc $>[TU]XX4XVS9 g)Nrrrr)r=r#r'r$rrrrs r>r%ModuleName.__init__s $  5r@cURR5R5nU(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.rNzmodule not found.znot a source-based module.z%loader does not support get_filename.zloader failed to get filename.)r:r|r}ry importlibutil find_spec ValueError ImportErrorstr isinstanceloaderabc SourceLoader get_filenameAttributeError TypeError)r=rSspecmsg file_paths r>r~ModuleName.entry_oks<zz~~%%' NN/ 0 >>++D1D < NN. /$++y}}'A'ABB NN7 8  006I+K(  NN3s8 $   NNB C   KK446  ?@   sHC=DD*D  DE8. E88EE40E83E44E8rurrs@r>rrs!3!55 r@rc\rSrSrSrSrSrg)Gotoz1Get 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|rry)r=linenos r>r~ Goto.entry_oks[ )*F Q; NN4 5   NN3 4 s#?AAruN)rrrrrr~rrur@r>rrs 7 r@rcr^\rSrSrSrSS0SSS.U4SjjrSrSrS r\ Rr S r S r S r U=r$) HelpSourcez,Get menu name and help source for Help menu.rF)menuitemfilepathrrrc 6>X@lSn[T U] XXXVUS9 g)zGet 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)rrr%) r=r#r'rrrrrr$rs r>r%HelpSource.__init__s,! / w%V  Er@c URn[USSSS9n[XR5Ul[ XRSS9Ul[USSURS 9n[US S URS 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)rgrrrpathvarr pathr browse_filerk path_errorrhrr r )r=rg pathlabelbrowses r>rmHelpSource.create_extras %VMO  }}5 %ll"E HA $ 0 02CE%)__6 aRAARF  ! aRAAacF  $ 1"1QqS 9 A2!!$%aC  )r@cD[R"XS9RX#S9$)N)r# filetypes) initialdir initialfile)rOpenshow)r=rinitdirinitfiles r> askfilenameHelpSource.askfilenames!d@> ?r@c:/SQnURR5nU(a"[RR U5up4OSn[ SSS:Xa{[RR [RR[5S5n[RRU5(d[R"5nO[R"5nURXU5nU(aURRU5 gg)N))z HTML Filesz *.htm *.htmlTEXT)z PDF Filesz*.pdfr)zWindows Help Filesz*.chm)z Text Filesz*.txtr)z All Files*r[winDoc) rr|osrsplitrjoindirnamerisdirgetcwdrset)r=rrdirbasefiles r>rHelpSource.browse_file!s ||!  d+ICD|u$ggll277??:#>Fww}}S))))+Ciik 5  LL  T " r@cURR5R5nU(dURSUR5 gUR S5(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://) rr|r}ryr startswithrrTr)r=rs r>path_okHelpSource.path_ok9syy}}$$& NN94?? K!122BQx7"ABx77>>$''?#08#!D( r@cvSURS'UR5nUR5nUbUcS$X4$)z,Return apparently valid (name, path) or NonerrON)ritem_okr)r=rSrs r>r~HelpSource.entry_okJs;"$||~||~|t|tE$Er@)rrrr)rrrrrr%rmrrrr~rrrrrs@r>rrsM235ruU E E)(?#,""G"FFr@rcJ^\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)zcli_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:rNr)r=r#r'rrrr$rs r>r%CustomRun.__init__Ys$9 w  .r@cURn[USS9Ul[XRSSSS9n[ USSUR S9UlURS S S S S S9 UR RS SS S SS9 g)zAdd run mode on rows 10-12.T)valueFz Restart shell)variableonvalueoffvaluerOrVrWrXrrBr[r\rJr]rweN)rgr restartvarrrrk args_errorrh)r=rgrestarts r>rmCustomRun.create_extraes $T6eoot',?DCE%)__6  A2!!C H A2!!$(  *r@cURR5R5n[R"USS9nU$![ a$nUR [U55 SnAgSnAff=f)z.Return command line arg list or None if error.T)posixN)r:r|r}shlexrrryr)r= cli_stringrerrs r> cli_args_okCustomRun.cli_args_okrs\ZZ^^%++-  {{:T:H  NN3s8 $ sA A/ A**A/cfUR5nURR5nUcS$X4$)z4Return apparently valid (cli_args, restart) or None.N)r rr|)r=rrs r>r~CustomRun.entry_ok|s5##%//%%''t@h-@@r@)rr) rrrrrr%rmr r~rrrs@r>rrQs235e . . *AAr@r__main__)mainzidlelib.idle_test.test_queryrF) verbosityexit)run)&rimportlib.utilr importlib.abcrrsysrrtkinterrrrrr r tkinter.ttkr r r rrr tkinter.fontrtkinter.simpledialogrrrrrrrrunittestridlelib.idle_test.htestrrur@r>rs *% $<<@@.HD%0''T 5  ZFZFx/A/Ad z '15A+z9% r@