B 11@sddlmZddlmZmZmZmZddlmZddl m Z m Z m Z m Z ddlmZmZddl mZddlmZGdd d eZGd d d e ZGd d d e ZGddde ZddZddZedkrddlmZeddddddlmZeedS)) HTMLParser)abspathdirnameisfilejoin)python_version)ToplevelFrameTextMenu) Menubutton Scrollbar)font)idleConfc@s6eZdZddZd ddZddZdd Zd d Zd S) HelpParsercCs`tj|dd||_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ g|_ d|_ d|_dS)NT)Zconvert_charrefsFr)r__init__texttagschartagsshowhdrlinklevelprehprefix nested_dl simplelisttocheaderprevtag)selfrr!//opt/alt/python37/lib/python3.7/idlelib/help.pyr3szHelpParser.__init__cCs0|j|7_|jdkrdn dt|j|_dS)Nrrl)rstrr)r Zamtr!r!r"indentCszHelpParser.indentcCs>d}x|D]\}}|dkr |}q Wd}|dkr@|dkr@d|_n|dkrZ|dkrZd|_n|dkr|jr|jd s|jd d }|r|sd nd }nx|dkr|dkrd|_n^|dkr|dkrd|_nD|dkrd|_n2|dkr|ddkrd }d|_nd|_|n|dkr2|j d krd|_ n|dkrN|jrHdnd}n|dkrp|j sdd nd }d|_ n|dkr|d }n|dkrd|_ |jr|j dd d|_ nZ|dkr|dkrd|_n>|dkr||_ n,|d kr|jr d|_|j dd ||_ |jr0|j d||j |jfd|f|_dS)!NrclassZdivsectionTZ sphinxsidebarFprzend-1c linestartzend-1cz  spanrZversionmodifiedem)ulolZsimpleZdlZliz * z * ZdtddendpreblockaZ headerlinkh1)h2h3)rrrgetisspacerfindrr&rrrinsertrrr)r tagZattrsclass_r3vsZlastliner!r!r"handle_starttagHsh               zHelpParser.handle_starttagcCs|dkrP|jrH|dkrdn|dkr&dnd}|j||j|jdfd|_nH|dkr`d|_n8|d krpd |_n(|d krd |_ d|_n|d kr| d d |f|_ dS)N)r4r5r6r6z r5z rr:)r+r,r3Fr)r-r0r.r/) rrappendrrindexrrrrr&r)r r;r&r!r!r" handle_endtags"   zHelpParser.handle_endtagcCs|jr|js|jr|n |dd}|jdkr`y|d|d|_Wntk r^d|_YnX|jdkr|jdkr|dt|j|jkr|t|jd}|j | 7_ |j d||j|j fdS)Nr* r4rr)r4r5r6r1)rrrreplacerrAr ValueErrorlenrstriprr:r)r datadr!r!r" handle_datas     zHelpParser.handle_dataN)r#)__name__ __module__ __qualname__rr&r?rBrJr!r!r!r"r*s   :rc@seZdZddZddZdS)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)5NmainZ EditorWindowwidthint)typeheightZwordr)wrapZhighlightthicknessZpadx borderwidthrPrSZ TkDefaultFontZarialZ helveticaZ TkFixedFontZmonacoZcourier rr,Zitalic)rr4Zboldr5r6rz#f6f6ff)r backgroundr2 r#Zsolidz#eeffcc)rlmargin1rXZreliefr]l1)r`Zlmargin2l22l3Kl4dzutf-8)encodingZdisabledstate) rZ GetOptionr rfindfontZ tag_configurerparseropenreadZfeed) r parentfilenameZuwideZuhighZ normalfontZ fixedfontfcontentsr!r!r"rs0      zHelpText.__init__cCsnxh|D]`}|ddtj|dDkrDtj|d|d}|dS|ddtj|dDkr|SqWdS)Ncss|]}|VqdS)N)lower).0xr!r!r" sz$HelpText.findfont..)rootT)nameexistsrvZfamilycss|]}|VqdS)N)rr)rsrtr!r!r"rus)rrtkfontnamesZFontactualZfamilies)r rzrwrr!r!r"rjs   zHelpText.findfontN)rKrLrMrrjr!r!r!r"rNsrNc@seZdZddZddZdS) HelpFramecCst||t|||_}|d|d<|||_}t||jd|_}|j |d<|j ddd|j ddd|j dddd|j ddd d|j dd d ddS) Nr])commandZyscrollcommandrr#)weightZnw)rowcolumnstickynsewns) r rrNrtoc_menurr yviewscrollsetZ rowconfigureZcolumnconfiguregrid)r rnrorrrr!r!r"rs   zHelpFrame.__init__csTt|dd}t|dd}x.jjD]"\}}|j||ffdd dq"W||d<|S) NZTOC)rF)Ztearoffcs |S)N)r)dex)rr!r"z$HelpFrame.toc_menu..)Zlabelr}Zmenu)r r rkrZ add_command)r rrZdropZlblrr!)rr"rs   zHelpFrame.toc_menuN)rKrLrMrrr!r!r!r"r|sr|c@seZdZddZdS) HelpWindowcCsZt|||||d|jt||jdddd|jddd|jddddS)NZWM_DELETE_WINDOWrr)rrrr#)r~) rrZwm_titleZprotocolZdestroyr|rZgrid_columnconfigureZgrid_rowconfigure)r rnrotitler!r!r"rs   zHelpWindow.__init__N)rKrLrMrr!r!r!r"rsrc Csttttttddddd}ttttd}t|d<}t|d&}x|D]}||d qRWWdQRXWdQRXt|d |dS) NZDocZbuildZhtmlZlibraryz idle.htmlz help.htmlrbwb z copied to )rrr__file__rlwriterstripprint)srcdstZinnoutliner!r!r" copy_strips   *rcCs4ttttd}t|sdSt||dtdS)Nz help.htmlzIDLE Help (%s))rrrrrrr)rnror!r!r" show_idlehelpsr__main__)rOzidlelib.idle_test.test_helprF) verbosityexit)runN) Z html.parserrZos.pathrrrrplatformrZtkinterrr r r Z tkinter.ttkr r rryZidlelib.configrrrNr|rrrrKZunittestrOZidlelib.idle_test.htestrr!r!r!r"s"    ~*