3 Õì2aþPã@sddlZddlmZddlZddlZddlZddlZddlZddljZ ddl j Z ddl mZddlZddlmZejr~dZ�n yddlZejejdƒWneejfk r²YnXdZejdkrôyejƒd ZejeƒWnek rðYnXnžy2ejej ƒZedk�sedk�rdZejeƒWnje!e"efk �r�y2ejƒd Zedk�s`edk�rddZejeƒWne#efk �rŠYnXYnXej$ƒZeZej%d ej&ƒZ'ej%d ej&ƒZ(d d „Z)Gdd„dƒZ*dd„Z+e,dk�rddl-m.Z.e.dddd�ddl/m0Z0e0e+ƒdS)éN)ÚBOM_UTF8)Ú askstring)ÚidleConfzutf-8ÚÚasciiÚwin32éz&^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)z^[ \t\f]*(?:[#\r\n]|$)c CsÎt|tƒr|jdƒ}n|}d|kr8|jddƒdd…}n$d|krV|jddƒdd…}n|g}x2|D]&}tj|ƒ}|dk rzPtj|ƒsbdSqbWdS|jdƒ}ytj |ƒWn t k rÈt d|ƒ‚YnX|S)Nz iso-8859-1Ú éú rzUnknown encoding: ) Ú isinstanceÚbytesÚdecodeÚsplitÚ coding_reÚmatchÚblank_reÚgroupÚcodecsÚlookupÚ LookupError)ÚdataÚlinesZlstÚlinerÚname©rú+/opt/alt/python36/lib64/python3.6/iomenu.pyÚ coding_specGs*      rc@sþeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd Zd d „Z d Z d Z dd„Z d:dd„Z dZejeƒZejZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd Zd Z d>Z!e"j#d.krÔd/nd0Z$d1d2„Z%d?d4d5„Z&d6d7„Z'd8d9„Z(d S)@Ú IOBindingcCsr||_|j|_|jjd|jƒ|_|jjd|jƒ|_|jjd|jƒ|_|jjd|j ƒ|_ d|_ |jjd|j ƒ|_ dS)Nz<>z<>z<>z<>z<>)ÚeditwinÚtextÚbindÚopenÚ_IOBinding__id_openÚsaveÚ_IOBinding__id_saveÚsave_asÚ_IOBinding__id_saveasÚ save_a_copyÚ_IOBinding__id_savecopyÚ fileencodingÚ print_windowÚ_IOBinding__id_print)ÚselfrrrrÚ__init__us  zIOBinding.__init__cCsf|jjd|jƒ|jjd|jƒ|jjd|jƒ|jjd|jƒ|jjd|jƒd|_d|_d|_dS)Nz<>z<>z<>z<>z<>) r Zunbindr#r%r'r)r,rÚfilename_change_hook)r-rrrÚclose�szIOBinding.closecCs |jjƒS)N)rÚ get_saved)r-rrrr1�szIOBinding.get_savedcCs|jj|ƒdS)N)rÚ set_saved)r-Úflagrrrr2�szIOBinding.set_savedcCs|jjƒdS)N)rÚ reset_undo)r-rrrr4“szIOBinding.reset_undoNcCs ||_dS)N)r/)r-ÚhookrrrÚset_filename_change_hook˜sz"IOBinding.set_filename_change_hookcCsF|rtjj|ƒrd|_||_n$||_d|_|jdƒ|jrB|jƒdS)Nr)ÚosÚpathÚisdirÚfilenameÚdirnamer2r/)r-r:rrrÚ set_filenamežs zIOBinding.set_filenamecCsÎ|jj}|rx|s|jƒ}n|}|rd|jrXt|jddƒ rX|j rX|jƒrX|j||jƒqt|j|ƒn|jrt|jj ƒdS|jƒrž|j ƒ}|dkrž|jj ƒdS|s¬|jƒ}n|}|rÀ|j|ƒn |jj ƒdS)NZinterpÚbreakÚcancel) rÚflistÚ askopenfileÚgetattrr:r1r"Úloadfiler Ú focus_setÚ maybesave)r-ÚeventZeditFiler?r:Úreplyrrrr"©s6       zIOBinding.openz (\r\n)|\n|\rc Cs@y|j j j ƒt d d t|j j d �}|�rnt ||ƒ}d|_|d fSttfk �rŽYnXdS)Nézutf-8FÚBOMzError loading the filez^The encoding '%s' is not known to this Python installation. The file may not display correctly)ÚtitleÚmessagerHrzSpecify file encodingzwThe file's encoding is invalid for Python 3.x. IDLE will convert it to UTF-8. What is the current encoding of the file?)Z initialvaluerHT)NF)NF)NF)Ú startswithrrÚUnicodeDecodeErrorr*rrrOrPr rQrÚupdaterÚencoding)r-rZr r\ÚencrrrrrRýsh         zIOBinding._decodecCsp|jƒr dSd|jpd}tjd|tj|jd�}|rPd}|jdƒ|jƒsbd}n|dkr^d}nd}|jjƒ|S)NÚyesz&Do you want to save %s before closing?zthis untitled documentz Save On Close)r_r`ÚdefaultrHr>Úno)r1r:rOZaskyesnocancelZYESr r$rC)r-r`ÚconfirmrFrrrrDAs&    zIOBinding.maybesavec CsZ|js|j|ƒn:|j|jƒrL|jdƒy|jjƒWntk rJYnX|jjƒdS)NTr=) r:r&Ú writefiler2rÚstore_file_breaksÚAttributeErrorr rC)r-rErrrr$Ws    zIOBinding.savec Csf|jƒ}|rN|j|ƒrN|j|ƒ|jdƒy|jjƒWntk rLYnX|jjƒ|j |ƒdS)Nrr=) Ú asksavefilerjr<r2rrkrlr rCrX)r-rEr:rrrr&ds     zIOBinding.save_ascCs.|jƒ}|r|j|ƒ|jjƒ|j|ƒdS)Nr=)rmrjr rCrX)r-rEr:rrrr(rs    zIOBinding.save_a_copycCs˜|jƒ|jjddƒ}|jdkr.|jd|jƒ}|j|ƒ}y$t|dƒ�}|j|ƒWdQRXdStk r’}zt j dt |ƒ|jd�dSd}~XnXdS) Nz1.0zend-1cr ÚwbTz I/O Error)rHF) Ú fixlastliner ÚgetrUÚreplaceÚencoder"ÚwriterNrOrPrQ)r-r:r r\rYr[rrrrjzs     zIOBinding.writefilec#CsÚt|tƒr|S|jdkr&t|jdƒSy |jdƒStk rDYnXyt|ƒ}d}Wn*tk r€}z|}d}WYdd}~Xn X|sŠd}|r¶y |j|ƒStk r´d|}YnXtj dd||j d�t|jdƒS)Nr^zutf-8rzInvalid encoding '%s'z I/O Errorz%s. Saving as UTF-8)rH) r r r*rrrÚ UnicodeErrorrrrOrPr )r-r\reZfailedr[rrrrr‰s4     zIOBinding.encodecCs&|jjdƒ}|dkr"|jjddƒdS)Nzend-2cr zend-1c)r rprJ)r-Úcrrrro°s zIOBinding.fixlastlinecCsftjddtj|jd�}|s(|jjƒdSd}|jƒ}|r>|j}| sL|dkr‚tjdd�\}}|}t j |ƒ|j |ƒs‚t j |ƒdSt j }d}|dkr¬tjd d d ƒ} | d } n|d krÄtjd d dƒ} nd}|�r8| tj|ƒ} t j| dƒ} | jƒjƒ} | j ƒ} | �rd| | } | �rRdt| ƒ| } tjd| |jd�nd|} tjd| |jd�|�rbt j |ƒdS)NZPrintzPrint to Default Printer)r_r`rgrHr=Z IDLE_tmp_)ÚprefixTÚposixÚmainZGeneralzprint-command-posixz 2>&1Úntzprint-command-winFÚrz#Printing failed (exit status 0x%x) zPrinting command: %s z Print status)rHz-Printing is not enabled for this platform: %s)rOZ askokcancelZOKr rCr1r:ÚtempfileZmkstempr7r0rjÚunlinkrrZ GetOptionÚshlexZquoteÚpopenrMÚstripÚreprrPZshowinfo)r-rEriZ tempfilenameZsavedr:ZtfdÚplatformZ printPlatformZcommandÚpipeÚoutputÚstatusr`rrrr+µsX          zIOBinding.print_windowú Python filesú *.py *.pywÚTEXTú Text filesú*.txtú All filesÚ*Údarwinz.pyrcCs<|jdƒ\}}|js(tj|j|jd�|_|jj||d�}|S)Nr")rHÚ filetypes)Ú initialdirÚ initialfile)ÚdefaultfilenameÚ opendialogÚ tkFileDialogZOpenr r�Úshow)r-ÚdirÚbaser:rrrr@òs  zIOBinding.askopenfiler"c CsV|jrtjj|jƒS|jr$|jdfSy tjƒ}Wntk rHd}YnX|dfSdS)Nr)r:r7r8rr;ÚgetcwdrN)r-ÚmodeÚpwdrrrr�ús   zIOBinding.defaultfilenamecCs@|jdƒ\}}|js,tj|j|j|jd�|_|jj||d�}|S)Nr$)rHr�Údefaultextension)rŽr�)r�Ú savedialogr’ZSaveAsr r�r™r“)r-r”r•r:rrrrms zIOBinding.asksavefilecCs|jjr|jj|ƒdS)N)rr?Zupdate_recent_files_list)r-r:rrrrXszIOBinding.updaterecentfileslist)NN©r…r†r‡©rˆr‰r‡©rŠr‹)r›rœr�)r"))Ú__name__Ú __module__Ú __qualname__r.r0r1r2r4r/r6r:r;r<r"ZeolÚreÚcompilerSr7ÚlineseprUrBrRrDr$r&r(rjrrror+r‘ršr�Úsysr�r™r@r�rmrXrrrrrpsD   , $D '2  rc Cs’ddlm}m}||ƒ}|jdƒtt|jƒjdƒdd…ƒ\}}|jd||dfƒGdd „d ƒ}||ƒ}|jƒ|j ƒ||ƒ}t |ƒdS) Nr)ÚToplevelÚTextzTest IOBindingú+rz+%d+%dé¯c@sTeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)z_io_binding..MyEditWincSs`||_d|_|jjd|jƒ|jjd|jƒ|jjd|jƒ|jjd|jƒ|jjd|jƒdS)Nz z z zz )r r?r!r"Úprintr$ÚsaveasÚsavecopy)r-r rrrr.sz'_io_binding..MyEditWin.__init__cSsdS)Nrr)r-rrrr1%sz(_io_binding..MyEditWin.get_savedcSsdS)Nr)r-r3rrrr2&sz(_io_binding..MyEditWin.set_savedcSsdS)Nr)r-rrrr4'sz)_io_binding..MyEditWin.reset_undocSs|jjdƒdS)Nz<>)r Úevent_generate)r-rErrrr"(sz#_io_binding..MyEditWin.opencSs|jjdƒdS)Nz<>)r r¬)r-rErrrr©*sz$_io_binding..MyEditWin.printcSs|jjdƒdS)Nz<>)r r¬)r-rErrrr$,sz#_io_binding..MyEditWin.savecSs|jjdƒdS)Nz<>)r r¬)r-rErrrrª.sz%_io_binding..MyEditWin.saveascSs|jjdƒdS)Nz<>)r r¬)r-rErrrr«0sz'_io_binding..MyEditWin.savecopyN) ržrŸr r.r1r2r4r"r©r$rªr«rrrrÚ MyEditWinsr­) Ztkinterr¥r¦r_ÚmapÚintZgeometryrÚpackrCr) rHr¥r¦ÚrootÚxÚyr­r rrrrÚ _io_bindings  r´Ú__main__)rxzidlelib.idle_test.test_iomenur F)Ú verbosityÚexit)Úrun)1rrr7r¡r}r¤r{Ztkinter.filedialogZ filedialogr’Ztkinter.messageboxZ messageboxrOZtkinter.simpledialogrZidlelibZidlelib.configrZtestingrdÚlocaleÚ setlocaleÚLC_CTYPEÚ ImportErrorÚErrorZ locale_decoder�ÚgetdefaultlocaleZlocale_encodingrrÚ nl_langinfoÚCODESETÚ NameErrorrlÚ ValueErrorÚlowerr¢ÚASCIIrrrrr´ržZunittestrxZidlelib.idle_test.htestr¸rrrrÚsj          )($