3 Õì2a=,ã@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)Ú HelpParsercCsZtj|dd�||_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ g|_ d|_ dS)NT)Zconvert_charrefsÚFr)rÚ__init__ÚtextÚtagsÚchartagsÚshowÚhdrlinkÚlevelÚpreÚhprefixÚ nested_dlÚ simplelistÚtocÚheader)Úselfr©r ú)/opt/alt/python36/lib64/python3.6/help.pyr3szHelpParser.__init__écCs0|j|7_|jdkrdn dt|jƒ|_dS)NrrÚl)rÚstrr)rÚamtr r r!ÚindentBszHelpParser.indentcCs d}x|D]\}}|dkr |}q Wd}|dkr@|dkr@d|_�n¨|dkrZ|dkrZd|_�nŽ|dkrr|d krrd }�nv|d krŒ|d krŒd |_�n\|d kr¦|d kr¦d|_�nB|dkr¸d|_�n0|d"krì|jdƒd#krÚd}d|_nd|_|jƒ�nü|dk�r |jdk�rèd|_nÞ|dk�r&|j�r dnd}nÂ|dk�rH|j�s|dk�r¼||_ n,|d$k�rè|j�râd|_ |jj dd ƒ||_ |j�r|jj d||j |jfƒdS)%NrÚclassZdivÚsectionTZ sphinxsidebarFÚpÚfirstz ÚspanrZversionmodifiedÚemÚulÚolZsimpler"Ú ZdlrZliz * z * ZdtÚddÚendÚpreblockÚaZ headerlinkÚh1Úh2Úh3)r-r.éÿÿÿÿ)r5r6) rrÚfindrr&rrrrÚinsertrrr)rÚtagZattrsÚclass_r3ÚvÚsr r r!Úhandle_starttagFsd              zHelpParser.handle_starttagcCs¢|dkrT|jdƒ|jrž|dkr$dn|dkr0dnd}|jj||j|jjdƒfƒnJ|dkrdd|_n:|d krtd |_n*|d krŠd |_ d|_ n|dkrž|jdd�dS)Nr4r5r6rz z rr9r+r,r3Frr-r0r.r")r%)r4r5r6)r+r,)r-r0r.r7) r&rrÚappendrrÚindexrrrr)rr:r&r r r!Ú handle_endtag|s     zHelpParser.handle_endtagc CsÎ|jrÊ|j rÊ|jr|n |jddƒ}|jdkrby|d|jdƒ…|_Wntk r`d|_YnX|jd kr²|jdkr |dt|jƒ…|jkr |t|jƒd…}|j |j ƒ7_ |j j d||j|j fƒdS) Nr/ú r4rrr5r6r1)r4r5r6)rrrÚreplacerr@rÚ ValueErrorÚlenrÚstriprr9r)rÚdataÚdr r r!Ú handle_data�s    zHelpParser.handle_dataN)r")Ú__name__Ú __module__Ú __qualname__rr&r>rArIr r r r!r*s   6rc@seZdZdd„Zdd„ZdS)ÚHelpTextc Csvtjddddd�}tjddddd�}d|d}tj||d d d d ||d �|jd ddgƒ}|jdddgƒ}|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��}|j ƒ}WdQRX|jj |ƒd3|d4<dS)5NÚmainZ EditorWindowÚwidthÚint)ÚtypeÚheightééZwordré)ÚwrapZhighlightthicknessZpadxÚ borderwidthrOrRZ TkDefaultFontZarialZ helveticaZ TkFixedFontZmonacoZcourieré rr,Zitalic)rr4éZboldr5ér6érz#f6f6ff)rÚ backgroundr2é ér"Zsolidz#eeffcc)rÚlmargin1rWZreliefr\Ú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]`}|jƒdd„tj|d�DƒkrDtj|d|d�}|jƒdS|jƒdd„tj|d�Dƒkr|SqWdS)Ncss|]}|jƒVqdS)N)Úlower)Ú.0Úxr r r!ú Âsz$HelpText.findfont..)ÚrootT)ÚnameÚexistsruZfamilycss|]}|jƒVqdS)N)rq)rrrsr r r!rtÅs)rqÚtkfontÚnamesZFontÚactualZfamilies)rryrvrr r r!ri¿s   zHelpText.findfontN)rJrKrLrrir r r r!rM srMc@seZdZdd„Zdd„ZdS)Ú HelpFramecCs¦tj||ƒt||ƒ|_}|d|d<|j|ƒ|_}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 rrMrÚtoc_menurr ÚyviewÚscrollÚsetZ rowconfigureZcolumnconfigureÚgrid)rrmrnrrr†r r r!rÌs   zHelpFrame.__init__csTt|dd�}t|dd�}x.ˆjjD]"\}}|j||f‡fdd„ d�q"W||d<|S) NZTOC)rF)Ztearoffcs ˆj|ƒS)N)r…)Údex)rr r!Úàsz$HelpFrame.toc_menu..)Zlabelr|Zmenu)r r rjrZ add_command)rrrZdropZlblr‰r )rr!r„Ûs   zHelpFrame.toc_menuN)rJrKrLrr„r r r r!r{Êsr{c@seZdZdd„ZdS)Ú HelpWindowcCsZtj||ƒ|j|ƒ|jd|jƒt||ƒjdddd�|jddd�|jddd�dS)NZWM_DELETE_WINDOWrr�)rr~r€r")r}) rrZwm_titleZprotocolZdestroyr{rˆZgrid_columnconfigureZgrid_rowconfigure)rrmrnÚtitler r r!rçs   zHelpWindow.__init__N)rJrKrLrr r r r!r‹åsr‹cCs–ttttttƒƒƒƒdddddƒ}ttttƒƒdƒ}t|dƒ�<}t|dƒ�&}x|D]}|j|jƒd ƒqRWWdQRXWdQRXt|›d |›�ƒdS) NZDocZbuildZhtmlZlibraryz idle.htmlz help.htmlÚrbÚwbó z copied to )rrrÚ__file__rkÚ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)rmrnr r r!Ú show_idlehelpsr™Ú__main__)rNzidlelib.idle_test.test_helpr‚F)Ú verbosityÚexit)ÚrunN) Z html.parserrZos.pathrrrrÚplatformrZtkinterrr r r Z tkinter.ttkr r rrxZidlelib.configrrrMr{r‹r˜r™rJZunittestrNZidlelib.idle_test.htestr�r r r r!Ús"    v*