B äZ Îuä ã@sddlZddlZddlZddlmZmZddlmZmZm Z m Z m Z m Z ddl mZmZmZmZmZddlmZddlmZGdd„deƒZGd d „d eƒZGd d „d eƒZGd d„deƒZGdd„deƒZGdd„deƒZedkrddlmZeddddddlm Z e eeeƒdS)éN)Ú executableÚplatform)ÚToplevelÚ StringVarÚ BooleanVarÚWÚEÚS)ÚFrameÚButtonÚEntryÚLabelÚ Checkbutton)Ú filedialog)ÚFontcsheZdZdidddœdd„Zddd„Zd d „Zdd d „Zdd„Zddd„Zddd„Z ‡fdd„Z ‡Z S)ÚQueryÚF)Útext0Ú used_namesÚ_htestÚ_utestc CsX||_||_||_||_t ||¡| ¡| |¡| |¡|  ¡|j   dd¡}|dkr”y|j   dd|j dd¡Wn YnX|  d|j¡|  d |j¡| d |j¡|  d |j¡|  d |j¡| ¡| ¡| d | ¡| ¡d| ¡d| ¡|s$| ¡d| ¡dndf¡|jddd|sT| ¡| ¡dS)NÚtkÚwindowingsystemZaquaz!::tk::unsupported::MacWindowStyleZstyleZ moveableModalrz z ZWM_DELETE_WINDOWz z z+%d+%déé–F)ZheightÚwidth)ÚparentÚmessagerrrÚ__init__ZwithdrawÚtitleZ transientZgrab_setrZcallZ_wZbindÚcancelZprotocolÚokÚcreate_widgetsZupdate_idletasksZgeometryZ winfo_rootxZ winfo_widthZwinfo_reqwidthZ winfo_rootyZ winfo_heightZwinfo_reqheightZ resizableZ deiconifyZ wait_window) Úselfrrrrrrrr©r$ú0/opt/alt/python37/lib/python3.7/idlelib/query.pyr%sB    *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)ÚcolumnÚrowÚstickyé)ZweightÚwÚleft)ÚanchorÚjustifyÚtexté)rÚ textvariableZ TkCaptionFontT)ÚnameÚexistsÚrootú Úred)r0Ú foregroundÚfontéé)r(r)Ú columnspanÚpadxr*)r(r)r<r=r*ÚpadyrZactive)r0ÚdefaultÚcommandZCancel)r0r@éc)r(r)r=)r ÚframeÚgridZgrid_columnconfigurer rrrZentryvarr ÚentryÚ focus_setrrÚ error_fontÚ entry_errorrrÚ create_extrar r!Z button_okr Z button_cancel)r#Zok_textrBZ entrylabelr$r$r%r"[s0     zQuery.create_widgetscCsdS)Nr$)r#r$r$r%rH€ózQuery.create_extraNcCsd||p|jd<dS)NzERROR: r0)rG)r#rZwidgetr$r$r%Ú showerror‚szQuery.showerrorcCs$|j ¡ ¡}|s | d¡dS|S)Nz blank line.)rDÚgetÚstriprJ)r#rDr$r$r%Úentry_ok†s  zQuery.entry_okcCs8d|jd<| ¡}|dk r*||_| ¡n |j ¡dS)Nrr0)rGrMÚresultÚdestroyrDrE)r#ÚeventrDr$r$r%r!Žs   zQuery.okcCsd|_| ¡dS)N)rNrO)r#rPr$r$r%r œsz Query.cancelcs| ¡tƒ ¡dS)N)Z grab_releaseÚsuperrO)r#)Ú __class__r$r%rO¡sz Query.destroy)r&)N)N)N) Ú__name__Ú __module__Ú __qualname__rr"rHrJrMr!r rOÚ __classcell__r$r$)rRr%r s5 %   rcs,eZdZdddœ‡fdd„ Zdd„Z‡ZS)Ú SectionNameF)rrcstƒj||||||ddS)N)rrr)rQr)r#rrrrrr)rRr$r%rªszSectionName.__init__cCsV|j ¡ ¡}|s | d¡dSt|ƒdkr:| d¡dS||jkrR| d¡dS|S)Nzno name specified.r1z"name is longer than 30 characters.zname is already in use.)rDrKrLrJÚlenr)r#r3r$r$r%rM¯s     zSectionName.entry_ok)rSrTrUrrMrVr$r$)rRr%rW¦srWcs,eZdZdddœ‡fdd„ Zdd„Z‡ZS)Ú ModuleNameF)rrcstƒj||||||ddS)N)rrr)rQr)r#rrrrrr)rRr$r%rÂszModuleName.__init__c CsÒ|j ¡ ¡}|s | d¡dSytj |¡}Wn4ttfk rd}z| t |ƒ¡dSd}~XYnX|dkr|| d¡dSt |j tj j ƒsš| d¡dSy|j  |¡}Wn"tk rÌ|jd|ddSX|S)Nzno name specified.zmodule not foundznot a source-based modulez$loader does not support get_filename)r)rDrKrLrJÚ importlibÚutilÚ find_specÚ ValueErrorÚ ImportErrorÚstrÚ isinstanceÚloaderÚabcÚ SourceLoaderÚ get_filenameÚAttributeError)r#r3ÚspecÚmsgZ file_pathr$r$r%rMÇs,   zModuleName.entry_ok)rSrTrUrrMrVr$r$)rRr%rY¾srYc@seZdZdd„ZdS)ÚGotocCsLyt|j ¡ƒ}Wntk r0| d¡dSX|dkrH| d¡dS|S)Nznot a base 10 integer.rznot a positive integer.)ÚintrDrKr]rJ)r#Úlinenor$r$r%rMæs  z Goto.entry_okN)rSrTrUrMr$r$r$r%rhâsrhcsXeZdZddidddœ‡fdd„ Zdd„Zdd „Zd d „ZejZ d d „Z dd„Z‡Z S)Ú HelpSourcerF)ÚmenuitemÚfilepathrrrc s(||_d}tƒj|||||||ddS)NzName for item on Help menu:)rrrr)rmrQr) r#rrrlrmrrrr)rRr$r%rös 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,r-z,Help File Path: Enter URL or browse for file)r.r/r0é()r2rZBrowseé)r0rr@r6r7)r0r8r9rr'r:r;)r(r)r<r=r>r*é r)r(r)r<r=r*r>)r(r)r=r*é )r(r)r<r=r*)rBr rrmÚpathvarr Úpathr Ú browse_filerFÚ path_errorrCrrr )r#rBZ pathlabelZbrowser$r$r%rHs    zHelpSource.create_extracCstj||dj||dS)N)rÚ filetypes)Z initialdirZ initialfile)rZOpenZshow)r#rvZinitdirZinitfiler$r$r%Ú askfilenameszHelpSource.askfilenamecCs˜dddddg}|j ¡}|r.tj |¡\}}nHd}tdd…dkrntj tj t¡d¡}tj  |¡svt  ¡}nt  ¡}|  |||¡}|r”|j  |¡dS) N)z HTML Filesz *.htm *.htmlÚTEXT)z PDF Filesz*.pdfrx)zWindows Help Filesz*.chm)z Text Filesz*.txtrx)z All FilesÚ*r:ÚwinZDoc) rrrKÚosrsÚsplitrÚjoinÚdirnamerÚisdirÚgetcwdrwÚset)r#rvrsÚdirÚbaseÚfiler$r$r%rts"   zHelpSource.browse_filecCs||j ¡ ¡}|s$| d|j¡dS| d¡sx|dd…dkrJ|dd…}tj |¡sh| d|j¡dStdkrxd|}|S)Nzno help file path specified.)zwww.Zhttpr;zfile:zhelp file path does not exist.Údarwinzfile://) rsrKrLrJruÚ startswithr{r4r)r#rsr$r$r%Úpath_ok6s   zHelpSource.path_okcCs6d|jd<| ¡}| ¡}|dks*|dkr.dS||fS)Nrr0)ruÚitem_okr‡)r#r3rsr$r$r%rMGs zHelpSource.entry_ok) rSrTrUrrHrwrtrWrMrˆr‡rVr$r$)rRr%rkòs rkcs>eZdZgdddœ‡fdd„ Zdd„Zdd„Zd d „Z‡ZS) Ú CustomRunF)Úcli_argsrrcs d}tƒj||||||ddS)Nz$Command Line Arguments for sys.argv:)rrr)rQr)r#rrrŠrrr)rRr$r%rVszCustomRun.__init__cCsj|j}t|dd|_t||jdddd}t|dd|jd|_|jd d d d d d|jjd dd d dddS)NT)ÚvalueFz Restart shell)ÚvariableZonvalueZoffvaluer0r6r7)r0r8r9rr'r:r;r,)r(r)r<r=r*rqZwe)rBrÚ restartvarrr rFZ args_errorrC)r#rBÚrestartr$r$r%rHbs   zCustomRun.create_extrac CsV|j ¡ ¡}ytj|dd}Wn0tk rP}z| t|ƒ¡dSd}~XYnX|S)NT)Úposix)rDrKrLÚshlexr|r]rJr_)r#Z cli_stringrŠÚerrr$r$r%Ú cli_args_okoszCustomRun.cli_args_okcCs&| ¡}|j ¡}|dkrdS||fS)N)r’rrK)r#rŠrŽr$r$r%rMys zCustomRun.entry_ok)rSrTrUrrHr’rMrVr$r$)rRr%r‰Ns    r‰Ú__main__)Úmainzidlelib.idle_test.test_queryrF)Ú verbosityÚexit)Úrun)!rZr{rÚsysrrZtkinterrrrrrr Z tkinter.ttkr r r r rrZ tkinter.fontrrrWrYrhrkr‰rSZunittestr”Zidlelib.idle_test.htestr—r$r$r$r%Ús&   $\2