eC.2SrSSKJr SSKJrJrJrJr SSKJ r SSK J r J r J r SSKJrJrJrJr SSK Jr SSKJr SS KJr "S S \5r"S S \ 5r"SS\5r"SS\ 5rSrSr\S:XaSSK J!r! \!"SSSS9 SSK"J#r# \#"\5 gg)ahelp.py: Implement the Idle help menu. Contents are subject to revision at any time, without notice. Help => About IDLE: display About Idle dialog Help => IDLE Help: Display help.html with proper formatting. Doc/library/idle.rst (Sphinx)=> Doc/build/html/library/idle.html (help.copy_strip)=> Lib/idlelib/help.html HelpParser - Parse help.html and render to tk Text. HelpText - Display formatted help.html. HelpFrame - Contain text, scrollbar, and table-of-contents. (This will be needed for display in a future tabbed window.) HelpWindow - Display HelpFrame in a standalone window. copy_strip - Copy the text part of idle.html to help.html while rstripping each line. show_idlehelp - Create HelpWindow. Called in EditorWindow.help_dialog. ) HTMLParser)abspathdirnameisfilejoin)python_version)ToplevelTextMenu)Frame Menubutton ScrollbarStylefont)idleConf) color_configc:\rSrSrSrSrS SjrSrSrSr Sr g ) HelpParser+afRender help.html into a text widget. The overridden handle_xyz methods handle a subset of html tags. The supplied text should have the needed tag configurations. The behavior for unsupported tags, such as table, is undefined. If the tags generated by Sphinx change, this class, especially the handle_starttag and handle_endtags methods, might have to also. c[R"USS9 XlSUlSUlSUlSUlSUlSUlSUl SUl /Ul SUl SUl g)NT)convert_charrefsFr)r__init__texttagschartagshdrlinklevelprehprefix nested_dl simplelisttocheaderprevtag)selfrs 2/opt/imh/python3.13/lib/python3.13/idlelib/help.pyrHelpParser.__init__4sdD48        cU=RU- slURS:XaSUlgS[UR5-Ulg)z#Change indent (+1, 0, -1) and tags.rrlN)rstrr)r'amts r(indentHelpParser.indentCs4 c **/B s3tzz?/B r*c2SnUHupEUS:XdM UnM SnUS:XacUR(aRURS(d>URRSS5nU(aUR5(dSOSnGOZUS :XaUS :Xa S UlGOEUS :XaUS :Xa S UlGO0US :Xa S UlGO!US ;a7UR S5S:wa SnSUlOSUlUR5 OUS:XaURS:aSUl OUS:XaSnOUS:XaUR(dSOSnSUl OUS:XaUR5 SnOUS :Xa+SUl URRSS5 SUl OPUS:XaUS:XaSUl Oc{ r*cUS;anURS:XdeUS:XaSO US:XaSOSnURRX R-URR S545 SUlOHUS ;aSUlO:US :XaS UlO,US :XaS Ul SUlOUS ;aURS5 S U4Ul g)zHandle endtags in help.html.rDrErFrrFz rEz rrJ)r5r7rBFr )r8r?r9r;N) rr$appendr%rindexrrrr r/r&)r'rKr/s r( handle_endtagHelpParser.handle_endtag{s $ $::? "?$'4Kj #t f  HHOOVKK/1JK LDI N "DM CZ DL E\DHDI & & KKOs| r*cUR(Gd)UR(aUOURSS5nURS:Xa@USUR S5UlUR R 5(dSUlURS;aqUR S:wa>US[UR 5UR :XaU[UR 5SnU=RUR5- sl URRSX RUR45 gg![a SUlNf=f) z"Handle date segments in help.html.r4 rDNrrTrr@)rr replacerrVr!isdigit ValueErrorlenr%striprrJr)r'datads r( handle_dataHelpParser.handle_datas|||dll4&=AyyD &#$]aggcl#3DL<<//11') yy..LLB&aDLL)*dll:#dll+,-A qwwy( II  UA 4=='A B"&#%DL&s ?D==EE) rrr%r!rr"r r&r#rrr$N)) __name__ __module__ __qualname____firstlineno____doc__rr/rQrWrb__static_attributes__r*r(rr+s# C 1#f$(Cr*rc$\rSrSrSrSrSrSrg)HelpTextzDisplay help.html.c P[R"SSSSS9n[R"SSSSS9nSU-S-n[R"XS S S S X4S 9 UR /S Q5nUR /SQ5n[ U5 US4US'UR SUSS4S9 UR SUSS4S9 UR SUSS4S9 UR SUSS4S9 UR SUS4S9 USnUR SUS4SUS 9 UR S!SSS"9 UR S#S$S$S"9 UR S%S&S&S"9 UR S'S(S(S"9 [U5Ul[US)S*9nUR5n S+S+S+5 URRW 5 S,US-'g+!,(df  N/=f).z'Configure tags and feed file to parser.main EditorWindowwidthint)typeheightwordr)wraphighlightthicknesspadx borderwidthrrru) TkDefaultFontarial helvetica) TkFixedFontmonacocourier rr7italicrrDboldrErFr selectbackgroundrA )rlmargin1 backgroundl1)rlmargin2l22l3Kl4dutf-8encodingNdisabledstate) r GetOptionr rfindfontr tag_configurerparseropenreadfeed) r'parentfilenameuwideuhigh normalfont fixedfontprebackfcontentss r(rHelpText.__init__s""6>7O""6>8%PE Q dA!5 H]]#JK MM"FG T"B'V  4z2x&@A 4z2v&>? 4z2v&>? 4z2v&>? 5 27)* :YOb&-  / 4"r: 4"r: 4"r: 4#< & (W -vvxH. ""W . -s F F%c(UHnUR5S[R"US95;a+[R"USUS9nUR 5Ss $UR5S[R "US95;dMUs $ g)z4Return name of first font family derived from names.c3@# UHoR5v M g7fNlower.0xs r( $HelpText.findfont..sK3Ja 3Js)rootT)nameexistsrfamilyc3B# UHnUR5v M g7frrrs r(rrs "G+Ea#$''))+EsN)rtkfontnamesFontactualfamilies)r'rrrs r(rHelpText.findfontsxDzz|K6<r*rmc$\rSrSrSrSrSrSrg) HelpFramez&Display html text, scrollbar, and toc.c[R"X5 [X5=Uln[ U5UlSUS'UR R SUSS9 URU5=Uln[XRS9=Ul nURUS'URSSS 9 URSSS 9 URSSS S 9 URSSS S 9 URSS SS 9 g)Nzhelpframe.TFramestyler)r)commandyscrollcommandrrdweightnw)rowcolumnstickynsewns)r rrmrrr configuretoc_menur$ryviewscrollset rowconfigurecolumnconfiguregrid)r'rrrr$rs r(rHelpFrame.__init__s t$#D33 D6] *W  /DTRU5$r)r)dexrs r($HelpFrame.toc_menu..s tzz#r*)labelrmenu)r r rr$ add_command)r'rr$droplblrs ` r(rHelpFrame.toc_menusOE*C' HC   30N  O(F  r*)rrrr$N)rerfrgrhrirrrjrkr*r(rrs,2 r*rc\rSrSrSrSrSrg) HelpWindowz!Display frame with rendered html.c [R"X5 URU5 URSUR5 [ X5UlUR RSSSS9 URSSS9 URSSS9 g)NWM_DELETE_WINDOWrr)rrrrdr) r rwm_titleprotocoldestroyrframergrid_columnconfiguregrid_rowconfigure)r'rrtitles r(rHelpWindow.__init__sw$' e ($,,7t.  qa7 !!!A!. q+r*)rN)rerfrgrhrirrjrkr*r(rrs ',r*rc [[[[[[5555SSSSS5n[[[[55S5n[ USSS 9n[ US SS 9nS nUH>nS U;aS nSU;a O/U(dMUR UR 5S-5 M@ SSS5 SSS5 [USU35 g!,(df  N'=f!,(df  N0=f)a+Copy the text part of idle.html to idlelib/help.html while stripping trailing whitespace. Files with trailing whitespace cannot be pushed to the git cpython repository. For 3.x (on Windows), help.html is generated, after editing idle.rst on the master branch, with sphinx-build -bhtml . build/html python_d.exe -c "from idlelib.help import copy_strip; copy_strip()" Check build/html/library/idle.html, the help.html diff, and the text displayed by Help => IDLE Help. Add a blurb and create a PR. It can be worthwhile to occasionally generate help.html without touching idle.rst. Changes to the master version and to the doc build system may result in changes that should not change the displayed text, but might break HelpParser. As long as master and maintenance versions of idle.rst remain the same, help.html can be backported. The internal Python version number is not displayed. If maintenance idle.rst diverges from the master version, then instead of backporting help.html from master, repeat the procedure above to generate a maintenance version. Docbuildhtmllibraryz idle.html help.htmlrrrwFz
Tz
r4Nz copied to )rrr__file__rwriter_print)srcdstinnoutcopylines r( copy_striprs. wwwwx'89:; 7FI{ rs4#22#((;;"#*tCtCn)t)X8 , ,"$JL z &!%@+  r*