a 9dg:@s0ddlZddlZddlZddlZddlmZmZddlm Z m Z m Z m Z m Z mZddlmZmZmZmZmZddlmZddlmZddlmZGdd d e ZGd d d eZGd d d eZGdddeZGdddeZGdddeZe dkr,ddl!m"Z"e"ddddddl#m$Z$e$eeedS)N) executableplatform)Toplevel StringVar BooleanVarWES)FrameButtonEntryLabel Checkbutton) filedialog)Font) _setup_dialogcsheZdZdidddddZdddZd d Zdd d ZddZdddZdddZ fddZ Z S)QueryFtext0 used_names_htest_utestcCs.||_||_||_||_t||||||||sL| t ||j dkrl| d|j | d|j |d|j | d|j| d|j|||d||d|d||s|d|dnd f|jd d d |s*||dS) NZaquaz z ZWM_DELETE_WINDOWz z z+%d+%dF)Zheightwidth)parentmessagerrr__init__ZwithdrawtitleZ transientZgrab_setrZ_windowingsystembindcancelprotocolokcreate_widgetsZupdate_idletasksZgeometryZ winfo_rootxZ winfo_widthZwinfo_reqwidthZ winfo_rootyZ winfo_heightZwinfo_reqheightZ resizableZ deiconifyZ wait_window)selfrrrrrrrr&)/usr/local/lib/python3.9/idlelib/query.pyr&sF    zQuery.__init__OKcCs6t|dd|_}|jdddd|jdddt|dd |jd }t||j|_t |d |jd |_ |j t d d|j d|_t|dd|jd|_|jddddtd|j jddddttddgd|jjddddttd|t||d|jd|_t|d|jd|_|jjdddd|jjdddddS)N )Zpaddingrnews)columnrowsticky)ZweightwleftanchorZjustifytext)r textvariableZ TkCaptionFontT)nameexistsroot redr3Z foregroundZfontr+r, columnspanpadxr-r+r,r?r@r-padyrZactive)r3defaultcommandZCancel)r3rDc)r+r,r@)r framegridZgrid_columnconfigurer rrrZentryvarr entry focus_setrr error_font entry_errorrr create_extrar r#Z button_okr!Z button_cancel)r%Zok_textrFZ entrylabelr&r&r'r$Xs>  zQuery.create_widgetscCsdSNr&r%r&r&r'rL}zQuery.create_extraNcCsd||p|jd<dS)NzERROR: r3)rK)r%rZwidgetr&r&r' showerrorszQuery.showerrorcCs$|j}|s |ddS|S)Nz blank line.)rHgetstriprP)r%rHr&r&r'entry_oks  zQuery.entry_okcCs8d|jd<|}|dur*||_|n |jdSNrr3)rKrSresultdestroyrHrI)r%eventrHr&r&r'r#s   zQuery.okcCsd|_|dSrM)rUrV)r%rWr&r&r'r!sz Query.cancelcs|tdSrM)Z grab_releasesuperrVrN __class__r&r'rVsz Query.destroy)r()N)N)N) __name__ __module__ __qualname__rr$rLrPrSr#r!rV __classcell__r&r&rYr'r!s 2 %   rcs,eZdZdddfdd ZddZZS) SectionNameFrrcstj||||||ddS)N)rrrrXr)r%rrrrrrrYr&r'rszSectionName.__init__cCsV|j}|s |ddSt|dkr:|ddS||jvrR|ddS|S)Nno name specified.r4z"name is longer than 30 characters.zname is already in use.)rHrQrRrPlenr)r%r6r&r&r'rSs     zSectionName.entry_okr[r\r]rrSr^r&r&rYr'r_sr_cs,eZdZdddfdd ZddZZS) ModuleNameFr`cstj||||||ddS)Nrrrra)r%rrrrrrrYr&r'rszModuleName.__init__c Cs|j}|s |ddSztj|}Wn8ttfyh}z|t |WYd}~dSd}~00|dur|ddSt |j tj j s|ddSz|j |}Wnbty|dYdStyz|j }Wn"ty |dYYdS0Yn0|S)Nrbzmodule not found.znot a source-based module.z%loader does not support get_filename.zloader failed to get filename.)rHrQrRrP importlibutil find_spec ValueError ImportErrorstr isinstanceloaderabc SourceLoader get_filenameAttributeError TypeError)r%r6specmsgZ file_pathr&r&r'rSs6      zModuleName.entry_okrdr&r&rYr'resrec@seZdZddZdS)GotocCsLzt|j}Wnty0|dYdS0|dkrH|ddS|S)Nznot a base 10 integer.rznot a positive integer.)intrHrQrjrP)r%linenor&r&r'rSs   z Goto.entry_okN)r[r\r]rSr&r&r&r'rvsrvcsXeZdZddidddfdd ZddZdd Zd d ZejZ d d Z ddZZ S) HelpSourcerF)menuitemfilepathrrrc s(||_d}tj|||||||ddS)NzName for item on Help menu:r)r{rXr) r%rrrzr{rrrrrYr&r'rs zHelpSource.__init__cCs|j}t|dddd}t||j|_t||jdd|_t|dd|jd }t|d d |j d |_ |j d ddddd gt d|jj d dddt t dd gd|j dddt td|j j d dddt t ddS)Nr/r0z,Help File Path: Enter URL or browse for filer1()r5rZBrowse)r3rrDr9r:r;rr)r<r=)r+r,r?r@rBr- rrA)r+r,r@r- r>)rFr rr{pathvarr pathr browse_filerJ path_errorrGrrr )r%rFZ pathlabelZbrowser&r&r'rLs,zHelpSource.create_extracCstj||dj||dS)N)r filetypes)Z initialdirZ initialfile)rZOpenZshow)r%rZinitdirZinitfiler&r&r' askfilenameszHelpSource.askfilenamecCsgd}|j}|r(tj|\}}nHd}tdddkrhtjtjtd}tj |spt }nt }| |||}|r|j |dS)N))z HTML Filesz *.htm *.htmlTEXT)z PDF Filesz*.pdfr)zWindows Help Filesz*.chm)z Text Filesz*.txtr)z All Files*r<winZDoc) rrQosrsplitrjoindirnamerisdirgetcwdrset)r%rrdirbasefiler&r&r'r!s   zHelpSource.browse_filecCs||j}|s$|d|jdS|dsx|dddkrJ|dd}tj|sh|d|jdStdkrxd|}|S)Nzno help file path specified.)zwww.httpr=zfile:zhelp file path does not exist.darwinzfile://) rrQrRrPr startswithrr7r)r%rr&r&r'path_ok9s   zHelpSource.path_okcCs6d|jd<|}|}|dus*|dur.dS||fSrT)ritem_okr)r%r6rr&r&r'rSJs zHelpSource.entry_ok) r[r\r]rrLrrr_rSrrr^r&r&rYr'rys rycs>eZdZgdddfdd ZddZddZd d ZZS) CustomRunF)cli_argsrrcs d}tj||||||ddS)Nz$Command Line Arguments for sys.argv:rfra)r%rrrrrrrYr&r'rYs zCustomRun.__init__cCsj|j}t|dd|_t||jdddd}t|dd|jd|_|jd d d d d d|jjd dd d dddS)NT)valueFz Restart shell)variableZonvalueZoffvaluer3r9r:r;rr)r<r=r/r>rZwe)rFr restartvarrr rJZ args_errorrG)r%rFrestartr&r&r'rLes zCustomRun.create_extrac CsZ|j}ztj|dd}Wn4tyT}z|t|WYd}~dSd}~00|S)NT)posix)rHrQrRshlexrrjrPrl)r%Z cli_stringrerrr&r&r' cli_args_okrszCustomRun.cli_args_okcCs&|}|j}|durdS||fSrM)rrrQ)r%rrr&r&r'rS|s zCustomRun.entry_ok)r[r\r]rrLrrSr^r&r&rYr'rQs    r__main__)mainzidlelib.idle_test.test_queryrF) verbosityexit)run)%importlib.utilrg importlib.abcrrsysrrtkinterrrrrrr Z tkinter.ttkr r r r rrZ tkinter.fontrZtkinter.simpledialogrrr_rervryrr[ZunittestrZidlelib.idle_test.htestrr&r&r&r's(    *\2