U :e;@s$ddlZddlZddlZddlZddlmZmZddlm Z m Z m Z m Z m Z mZddlmZmZmZmZmZddlmZddlmZGddde ZGd d d eZGd d d eZGd ddeZGdddeZGdddeZedkr ddlm Z e ddddddl!m"Z"e"eeedS)N) executableplatform)Toplevel StringVar BooleanVarWES)FrameButtonEntryLabel Checkbutton) filedialog)FontcsheZdZdidddddZdddZd d Zdd d ZddZdddZdddZ fddZ Z S)QueryFtext0 used_names_htest_utestc Cs\||_||_||_||_t||||||||sL| |j dd}|dkrz|j dd|j ddWn YnX| d|j| d |j|d |j| d |j| d |j|||d ||d|d||s(|d|dndf|jddd|sX||dS)NtkwindowingsystemZaquaz!::tk::unsupported::MacWindowStylestyleZ moveableModalrz z ZWM_DELETE_WINDOWz z z+%d+%dF)Zheightwidth)parentmessagerrr__init__ZwithdrawtitleZ transientZgrab_setrcallZ_wbindcancelprotocolokcreate_widgetsZupdate_idletasksZgeometryZ winfo_rootxZ winfo_widthZwinfo_reqwidthZ winfo_rootyZ winfo_heightZwinfo_reqheightZ resizableZ deiconifyZ wait_window) selfrr!rrrrrrr)2/usr/local/python38/lib/python3.8/idlelib/query.pyr %sV    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 )ZpaddingrZnews)columnrowsticky)ZweightwleftZanchorZjustifytext)r textvariableZ TkCaptionFontT)nameexistsroot redr4Z foregroundZfontr-r. columnspanpadxr/r-r.r@rAr/padyrZactive)r4defaultcommandZCancel)r4rEc)r-r.rA)r framegridZgrid_columnconfigurer rrrZentryvarr entry focus_setrr error_font entry_errorrr create_extrar r&Z button_okr$Z button_cancel)r(Zok_textrGZ entrylabelr)r)r*r'\sJ zQuery.create_widgetscCsdSNr)r(r)r)r*rMzQuery.create_extraNcCsd||p|jd<dS)NzERROR: r4)rL)r(rZwidgetr)r)r* showerrorszQuery.showerrorcCs$|j}|s |ddS|S)Nz blank line.)rIgetstriprQ)r(rIr)r)r*entry_oks  zQuery.entry_okcCs8d|jd<|}|dk r*||_|n |jdSNrr4)rLrTresultdestroyrIrJ)r(eventrIr)r)r*r&s   zQuery.okcCsd|_|dSrN)rVrW)r(rXr)r)r*r$sz Query.cancelcs|tdSrN)Z grab_releasesuperrWrO __class__r)r*rWsz Query.destroy)r+)N)N)N) __name__ __module__ __qualname__r r'rMrQrTr&r$rW __classcell__r)r)rZr*r s 7 %   rcs,eZdZdddfdd ZddZZS) SectionNameFrrcstj||||||ddS)N)rrrrYr )r(rr!rrrrrZr)r*r szSectionName.__init__cCsV|j}|s |ddSt|dkr:|ddS||jkrR|ddS|S)Nno name specified.r5z"name is longer than 30 characters.zname is already in use.)rIrRrSrQlenr)r(r7r)r)r*rTs     zSectionName.entry_okr\r]r^r rTr_r)r)rZr*r`sr`cs,eZdZdddfdd ZddZZS) ModuleNameFracstj||||||ddS)Nrrrrb)r(rr!rrrrrZr)r*r szModuleName.__init__c Cs|j}|s |ddSztj|}Wn:ttfk rj}z|t |WYdSd}~XYnX|dkr|ddSt |j tj j s|ddSz|j |}Wnhtk r|dYdStk rz|j }Wn$tk r|dYYdSXYnX|S)Nrczmodule not found.znot a source-based module.z%loader does not support get_filename.zloader failed to get filename.)rIrRrSrQ importlibutil find_spec ValueError ImportErrorstr isinstanceloaderabc SourceLoader get_filenameAttributeError TypeError)r(r7specmsgZ file_pathr)r)r*rTs6     zModuleName.entry_okrer)r)rZr*rfsrfc@seZdZddZdS)GotocCsNzt|j}Wn tk r2|dYdSX|dkrJ|ddS|S)Nznot a base 10 integer.rznot a positive integer.)intrIrRrkrQ)r(linenor)r)r*rTs  z Goto.entry_okN)r\r]r^rTr)r)r)r*rwsrwcsXeZdZddidddfdd ZddZdd Zd d ZejZ d d Z ddZZ S) HelpSourcerF)menuitemfilepathrrrc s(||_d}tj|||||||ddS)NzName for item on Help menu:r)r|rYr ) r(rr!r{r|rrrrrZr)r*r szHelpSource.__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)Nr1r2z,Help File Path: Enter URL or browse for filer3()r6rZBrowse)r4rrEr:r;r<rr,r=r>)r-r.r@rArCr/ rrB)r-r.rAr/ r?)rGr rr|pathvarr pathr browse_filerK path_errorrHrrr )r(rGZ pathlabelZbrowser)r)r*rM s,zHelpSource.create_extracCstj||dj||dS)N)r filetypes)Z initialdirZ initialfile)rZOpenZshow)r(rZinitdirZinitfiler)r)r* askfilenameszHelpSource.askfilenamecCsdddddg}|j}|r.tj|\}}nHd}tdddkrntjtjtd}tj |svt }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) rrRosrsplitrjoindirnamerisdirgetcwdrset)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.Zhttpr>zfile:zhelp file path does not exist.darwinzfile://) rrRrSrQr startswithrr8r)r(rr)r)r*path_ok=s   zHelpSource.path_okcCs6d|jd<|}|}|dks*|dkr.dS||fSrU)ritem_okr)r(r7rr)r)r*rTNs zHelpSource.entry_ok) r\r]r^r rMrrr`rTrrr_r)r)rZr*rzs rzcs>eZdZgdddfdd ZddZddZd d ZZS) CustomRunF)cli_argsrrcs d}tj||||||ddS)Nz$Command Line Arguments for sys.argv:rgrb)r(rr!rrrrrZr)r*r ]szCustomRun.__init__cCsj|j}t|dd|_t||jdddd}t|dd|jd|_|jd d d d d d|jjd dd d dddS)NT)valueFz Restart shell)variableZonvalueZoffvaluer4r:r;r<rr,r=r>r1r?rZwe)rGr restartvarrr rKZ args_errorrH)r(rGrestartr)r)r*rMis zCustomRun.create_extrac Cs\|j}ztj|dd}Wn6tk rV}z|t|WYdSd}~XYnX|S)NT)posix)rIrRrSshlexrrkrQrm)r(Z cli_stringrerrr)r)r* cli_args_okvszCustomRun.cli_args_okcCs&|}|j}|dkrdS||fSrN)rrrR)r(rrr)r)r*rTs zCustomRun.entry_ok)r\r]r^r rMrrTr_r)r)rZr*rUs   r__main__)mainzidlelib.idle_test.test_queryrF) verbosityexit)run)#importlib.utilrh importlib.abcrrsysrrtkinterrrrrrr Z tkinter.ttkr r r r rrZ tkinter.fontrrr`rfrwrzrr\ZunittestrZidlelib.idle_test.htestrr)r)r)r*s&   *\2