B YI~dÖ-ã@súddlmZddlmZmZmZmZddlmZddl m Z m Z m Z m Z ddlmZmZddl mZddlmZGdd „d eƒZGd d „d e ƒZGd d „d e ƒZGdd„de ƒZdd„Zdd„ZedkröddlmZedddd�ddlmZeeƒdS)é)Ú HTMLParser)ÚabspathÚdirnameÚisfileÚjoin)Úpython_version)ÚToplevelÚFrameÚTextÚMenu)Ú MenubuttonÚ Scrollbar)Úfont)ÚidleConfc@s6eZdZdd„Zd dd„Zdd„Zdd „Zd d „Zd S)Ú HelpParsercCs`tj|dd�||_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ g|_ d|_ d|_dS)NT)Zconvert_charrefsÚFr)rÚ__init__ÚtextÚtagsÚchartagsÚshowÚhdrlinkÚlevelÚpreÚhprefixÚ nested_dlÚ simplelistÚtocÚheaderÚprevtag)Úselfr©r!ú1/opt/alt/python37/lib64/python3.7/idlelib/help.pyr3szHelpParser.__init__écCs0|j|7_|jdkrdn dt|jƒ|_dS)NrrÚl)rÚstrr)r Zamtr!r!r"ÚindentCszHelpParser.indentcCs>d}x|D]\}}|dkr |}q Wd}|dkr@|dkr@d|_�nÐ|dkrZ|dkrZd|_�n¶|dkr˜|jr˜|jd s˜|j d d ¡}|r�| ¡s�d nd }�nx|dkr²|dkr²d|_�n^|dkrÌ|dkrÌd|_�nD|dkrÞd|_�n2|dk�r| d¡dk�rd }d|_nd|_| ¡nü|dk�r2|j d k�rd|_ nÞ|dk�rN|j�rHdnd}nÂ|dk�rp|j �sdd nd }d|_ n |dk�rˆ| ¡d }nˆ|dk�r¶d|_ |j�r®|j  dd ¡d|_ nZ|dk�rÒ|dk�rÒd|_n>|dk�rä||_ n,|d k�r|j�r d|_|j  dd ¡||_ |j�r0|j  d||j |jf¡d|f|_dS)!NrÚclassZdivÚsectionTZ sphinxsidebarFÚprzend-1c linestartzend-1cz Ú ÚspanrZversionmodifiedÚem)ÚulÚolZsimpleéÿÿÿÿZdlZliz * z * ZdtÚddÚendÚpreblockÚaZ headerlinkÚh1)Úh2Úh3)rrrÚgetÚisspacerÚfindrr&rrrÚinsertrrr)r ÚtagZattrsÚclass_r3ÚvÚsZlastliner!r!r"Úhandle_starttagHsh               zHelpParser.handle_starttagcCs¦|dkrP|jrH|dkrdn|dkr&dnd}|j ||j|j d¡f¡d|_nH|dkr`d|_n8|d krpd |_n(|d kr†d |_ d|_n|d kr˜|  d ¡d |f|_ dS)N)r4r5r6r6z r5z rr:)r+r,r3Fr)r-r0r.r/) rrÚappendrrÚindexrrrrr&r)r r;r&r!r!r"Ú handle_endtag‚s"   zHelpParser.handle_endtagcCsÌ|jrÈ|jsÈ|jr|n | dd¡}|jdkr`y|d| d¡…|_Wntk r^d|_YnX|jdkr°|jdkrž|dt|jƒ…|jkrž|t|jƒd…}|j |  ¡7_ |j   d||j|j f¡dS)Nr*ú r4rr)r4r5r6r1)rrrÚreplacerrArÚ ValueErrorÚlenrÚstriprr:r)r ÚdataÚdr!r!r"Ú handle_data—s     zHelpParser.handle_dataN)r#)Ú__name__Ú __module__Ú __qualname__rr&r?rBrJr!r!r!r"r*s   :rc@seZdZdd„Zdd„ZdS)ÚHelpTextc Csvtjddddd�}tjddddd�}d|d}tj||d d d d ||d �| d ddg¡}| dddg¡}|df|d<|jd|ddfd�|jd|ddfd�|jd|ddfd�|jd|ddfd�|jd|dfd d!�|jd"|d#fd$d%d&d'd(�|jd)d$d$d*�|jd+d,d,d*�|jd-d.d.d*�|jd/d0d0d*�t|ƒ|_t|d1d2��}|  ¡}WdQRX|j  |¡d3|d4<dS)5NÚmainZ EditorWindowÚwidthÚint)ÚtypeÚheightééZwordré)ÚwrapZhighlightthicknessZpadxÚ borderwidthrPrSZ TkDefaultFontZarialZ helveticaZ TkFixedFontZmonacoZcourieré rr,Zitalic)rr4éZboldr5ér6érz#f6f6ff)rÚ backgroundr2é ér#Zsolidz#eeffcc)rÚlmargin1rXZreliefr]Úl1)r`Zlmargin2Úl2é2Úl3éKÚl4édzutf-8)ÚencodingZdisabledÚstate) rZ GetOptionr rÚfindfontZ tag_configurerÚparserÚopenÚreadZfeed) r ÚparentÚfilenameZuwideZuhighZ normalfontZ fixedfontÚfÚcontentsr!r!r"rªs0      zHelpText.__init__cCsnxh|D]`}| ¡dd„tj|d�DƒkrDtj|d|d�}| ¡dS| ¡dd„tj|d�Dƒkr|SqWdS)Ncss|]}| ¡VqdS)N)Úlower)Ú.0Úxr!r!r"ú Êsz$HelpText.findfont..)ÚrootT)ÚnameÚexistsrvZfamilycss|]}| ¡VqdS)N)rr)rsrtr!r!r"ruÍs)rrÚtkfontÚnamesZFontÚactualZfamilies)r rzrwrr!r!r"rjÇs   zHelpText.findfontN)rKrLrMrrjr!r!r!r"rN¨srNc@seZdZdd„Zdd„ZdS)Ú HelpFramecCs¦t ||¡t||ƒ|_}|d|d<| |¡|_}t||jd�|_}|j |d<|j ddd�|j ddd�|j dddd�|j ddd d�|j dd d d�dS) Nr])ÚcommandZyscrollcommandrr#)ÚweightZnw)ÚrowÚcolumnÚstickyÚnsewéÚns) r rrNrÚtoc_menurr ÚyviewÚscrollÚsetZ rowconfigureZcolumnconfigureÚgrid)r rnrorrr‡r!r!r"rÔs   zHelpFrame.__init__csTt|dd�}t|dd�}x.ˆjjD]"\}}|j||f‡fdd„ d�q"W||d<|S) NZTOC)rF)Ztearoffcs ˆ |¡S)N)r†)Údex)rr!r"Úçóz$HelpFrame.toc_menu..)Zlabelr}Zmenu)r r rkrZ add_command)r rrZdropZlblrŠr!)rr"r…âs   zHelpFrame.toc_menuN)rKrLrMrr…r!r!r!r"r|Òsr|c@seZdZdd„ZdS)Ú HelpWindowcCsZt ||¡| |¡| d|j¡t||ƒjdddd�|jddd�|jddd�dS)NZWM_DELETE_WINDOWrr‚)r€rr�r#)r~) rrZwm_titleZprotocolZdestroyr|r‰Zgrid_columnconfigureZgrid_rowconfigure)r rnroÚtitler!r!r"rîs   zHelpWindow.__init__N)rKrLrMrr!r!r!r"r�ìsr�c Cs–ttttttƒƒƒƒdddddƒ}ttttƒƒdƒ}t|dƒ�<}t|dƒ�&}x|D]}| | ¡d ¡qRWWdQRXWdQRXt|›d |›�ƒdS) NZDocZbuildZhtmlZlibraryz idle.htmlz help.htmlÚrbÚwbó z copied to )rrrÚ__file__rlÚwriteÚrstripÚprint)ÚsrcÚdstZinnÚoutÚliner!r!r"Ú copy_strip÷s   *ršcCs4ttttƒƒdƒ}t|ƒsdSt||dtƒƒdS)Nz help.htmlzIDLE Help (%s))rrrr’rr�r)rnror!r!r"Ú show_idlehelpsr›Ú__main__)rOzidlelib.idle_test.test_helprƒF)Ú verbosityÚexit)ÚrunN) Z html.parserrZos.pathrrrrÚplatformrZtkinterrr r r Z tkinter.ttkr r rryZidlelib.configrrrNr|r�ršr›rKZunittestrOZidlelib.idle_test.htestrŸr!r!r!r"Ús"    ~*