
    .hhv5                     D   S SK r S SKrS SKJr  S SKJrJrJrJr  S SK	J
r
  S SKJrJrJr  S SKJrJrJrJr  S SKJr  S SKJr  S S	KJr   " S
 S\5      r " S S\5      r " S S\5      r " S S\5      rS rS rS r \!S:X  a  S SK"J#r#  \#" SSSS9  S SK$J%r%  \%" \5        gg)    N)
HTMLParser)abspathdirnameisfilejoin)python_version)ToplevelTextMenu)Frame
Menubutton	ScrollbarStylefont)idleConf)color_configc                   6    \ rS rSrS rS	S jrS rS rS rSr	g)

HelpParser0   c                     [         R                  " U SS9  Xl        SU l        SU l        SU l        SU l        SU l        SU l        SU l	        SU l
        / U l        SU l        S U l        g )NT)convert_charrefs Fr   )r   __init__texttagschartagshdrlinklevelprehprefix	nested_dl
simplelisttocheaderprevtag)selfr   s     5/opt/python-3.13.8/usr/lib/python3.13/idlelib/help.pyr   HelpParser.__init__9   sd    D48		
    c                     U =R                   U-  sl         U R                   S:X  a  SU l        g S[        U R                   5      -   U l        g )Nr   r   l)r   strr   )r'   amts     r(   indentHelpParser.indentH   s4    

c
**/B	s3tzz?/B	r*   c                 2   SnU H  u  pEUS:X  d  M  UnM     SnUS:X  ac  U R                   (       aR  U R                   S   (       d>  U R                  R                  SS5      nU(       a  UR                  5       (       d  SOSnGOZUS	:X  a  US
:X  a	  S
U l        GOEUS	:X  a  US:X  a	  SU l        GO0US:X  a	  SU l        GO!US;   a7  UR                  S5      S:w  a
  SnSU l        OSU l        U R                  5         OUS:X  a  U R                  S:  a  SU l	        OUS:X  a  SnOUS:X  a  U R                  (       d  SOSnSU l	        OUS:X  a  U R                  5         SnOUS
:X  a+  SU l
        U R                  R                  SS5        SU l        OPUS:X  a  US:X  a  SU l        O<US:X  a  Xl        O/US;   a)  SU l        U R                  R                  SS5        Xl        U R                  R                  SX`R                  U R                  45        SU4U l         g )Nr   classpr   zend-1c linestartzend-1cz


spanr    versionmodifiedem)ulolsimpleTFdlliz
* dtddendpreblocka
headerlinkh1)h2h3)r&   r   getisspacer   findr#   r/   r   r"   r    insertr   r   r%   )r'   tagattrsclass_rB   vslastlines           r(   handle_starttagHelpParser.handle_starttagM   s   DAG|  #:$,,t||A yy}}%7BH"8+;+;+=+=4AF]v!DMF]v):: DMD[ DML {{8$*"&"'KKMD[zzA~!%D[AD["nn$A"DND[KKMAE\DHIIUF+"DICZFl2DLD[IL DKIIUF+I		IIt}}#=>c{r*   c                 j   US;   a\  US:X  a  SO	US:X  a  SOSnU R                   R                  X R                  -   U R                  R	                  S5      45        SU l        OHUS;   a  SU l        O:US	:X  a  S
U l        O,US:X  a  S
U l        SU l        OUS;   a  U R                  S5        S
U4U l
        g )NrD   rE   rF   rF   z        rE   z    r   rJ   )r5   r7   rB   Fr    )r8   r?   r9   r;   )r$   appendr%   r   indexr   r   r   r    r/   r&   )r'   rK   r/   s      r(   handle_endtagHelpParser.handle_endtag   s    $$$'4Kj #tf  HHOOVKK/1JKLDIN"DMCZ DLE\DHDI&&KKOs|r*   c                    U R                   (       Gd)  U R                  (       a  UOUR                  SS5      nU R                  S:X  a@   US UR	                  S5       U l        U R
                  R                  5       (       d  SU l        U R                  S;   aq  U R
                  S:w  a>  US[        U R
                  5       U R
                  :X  a  U[        U R
                  5      S  nU =R                  UR                  5       -  sl	        U R                  R                  SX R                  U R                  45        g g ! [         a
    SU l         Nf = f)Nr4    rD   r   rT   r   r@   )r   r    replacer   rV   r!   isdigit
ValueErrorlenr%   stripr   rJ   r   )r'   datads      r(   handle_dataHelpParser.handle_data   s   |||dll4&=AyyD &#$]aggcl#3DL<<//11') yy..LLB&aDLL)*dll:#dll+,-Aqwwy(IIUA		4=='AB  " &#%DL&s   	?D= =EE)r   r   r%   r!   r   r"   r    r&   r#   r   r   r$   N)   )
__name__
__module____qualname____firstlineno__r   r/   rQ   rW   rb   __static_attributes__ r*   r(   r   r   0   s    C
1#f$(Cr*   r   c                        \ rS rSrS rS rSrg)HelpText   c                 P   [         R                  " SSSSS9n[         R                  " SSSSS9nSU-  S-  n[        R                  " XS	S
SS
X4S9  U R	                  / SQ5      nU R	                  / SQ5      n[        U 5        US4U S'   U R                  SUSS4S9  U R                  SUSS4S9  U R                  SUSS4S9  U R                  SUSS4S9  U R                  SUS4S9  U S   nU R                  SUS4SUS 9  U R                  S!SSS"9  U R                  S#S$S$S"9  U R                  S%S&S&S"9  U R                  S'S(S(S"9  [        U 5      U l        [        US)S*9 nUR                  5       n	S S S 5        U R                  R                  W	5        S+U S,'   g ! , (       d  f       N/= f)-NmainEditorWindowwidthint)typeheight      wordr      )wraphighlightthicknesspadxborderwidthrq   rt   )TkDefaultFontarial	helvetica)TkFixedFontmonacocourier   r   r7   italicr   rD      boldrE      rF      r    selectbackgroundrA   
      )r   lmargin1
backgroundl1)r   lmargin2l22   l3K   l4d   utf-8encodingdisabledstate)r   	GetOptionr
   r   findfontr   tag_configurer   parseropenreadfeed)
r'   parentfilenameuwideuhigh
normalfont	fixedfontprebackfcontentss
             r(   r   HelpText.__init__   s   ""6>7O""6>8%PE	QdA!5	H ]]#JK
MM"FG	T"B'V4z2x&@A4z2v&>?4z2v&>?4z2v&>?5	27)*:YOb&- 	 	/4"r:4"r:4"r:4#< &(W-vvxH .""W .-s   F
F%c                 (   U H  nUR                  5       S [        R                  " U S9 5       ;   a+  [        R                  " USU S9nUR	                  5       S   s  $ UR                  5       S [        R
                  " U S9 5       ;   d  M  Us  $    g )Nc              3   @   #    U  H  oR                  5       v   M     g 7fNlower.0xs     r(   	<genexpr>$HelpText.findfont.<locals>.<genexpr>   s     K3Ja		3Js   )rootT)nameexistsr   familyc              3   B   #    U  H  nUR                  5       v   M     g 7fr   r   r   s     r(   r   r      s       "G+Ea #$''))+Es   )r   tkfontnamesFontactualfamilies)r'   r   r   r   s       r(   r   HelpText.findfont   sx    Dzz|K6<<T3JKK{{TE{{}X.. "G+1??+E"G G r*   )r   N)re   rf   rg   rh   r   r   ri   rj   r*   r(   rl   rl      s    #>r*   rl   c                        \ rS rSrS rS rSrg)	HelpFrame   c                    [         R                  " X5        [        X5      =U l        n[	        U5      U l        SU S'   U R
                  R                  SUS   S9  U R                  U5      =U l        n[        XR                  S9=U l        nUR                  US'   U R                  SSS	9  U R                  SSS	9  UR                  SSS
S9  UR                  SSSS9  UR                  SSSS9  g )Nzhelpframe.TFramestyler   )r   )commandyscrollcommandr   rd   weightnw)rowcolumnstickynsew   ns)r   r   rl   r   r   r   	configuretoc_menur$   r   yviewscrollsetrowconfigurecolumnconfiguregrid)r'   r   r   r   r$   r   s         r(   r   HelpFrame.__init__   s    t$#D33	D6]
*W

/D<NOt,,3(zzBBf!'!A&Qq)Qq.		a&	1!D1r*   c                    ^ [        U SS9n[        USS9nTR                  R                   H  u  pEUR	                  XE4U4S jjS9  M     X2S'   U$ )NTOC)r   F)tearoffc                 &   > TR                  U 5      $ r   )r   )dexr   s    r(   <lambda>$HelpFrame.toc_menu.<locals>.<lambda>   s    tzz#r*   )labelr   menu)r   r   r   r$   add_command)r'   r   r$   droplblr   s    `    r(   r   HelpFrame.toc_menu   sO    E*C'HC30NO (F
r*   )r   r   r   r$   N)re   rf   rg   rh   r   r   ri   rj   r*   r(   r   r      s    2 r*   r   c                       \ rS rSrS rSrg)
HelpWindow   c                     [         R                  " X5        U R                  U5        U R                  SU R                  5        [        X5      U l        U R                  R                  SSSS9  U R                  SSS9  U R                  SSS9  g )NWM_DELETE_WINDOWr   r   )r   r   r   rd   r   )
r	   r   wm_titleprotocoldestroyr   framer   grid_columnconfiguregrid_rowconfigure)r'   r   r   titles       r(   r   HelpWindow.__init__   sw    $'e($,,7t.


qa7!!!A!.q+r*   )r   N)re   rf   rg   rh   r   ri   rj   r*   r(   r   r      s    ,r*   r   c                     [        [        [        [        [        [        5      5      5      5      SSSSS5      n [        [        [        [        5      5      S5      n[	        U SSS	9 n[	        US
SS	9 nSnU H>  nSU;   a  SnSU;   a    O/U(       d  M  UR                  UR                  5       S-   5        M@     S S S 5        S S S 5        [        U  SU 35        g ! , (       d  f       N'= f! , (       d  f       N0= f)NDocbuildhtmllibraryz	idle.html	help.htmlrr   r   wFz<section id="idle">Tz<div class="clearer">r4   z copied to )r   r   r   __file__r   writer_   print)srcdstinnoutcopylines         r(   
copy_stripr     s    . wwwwx'89:;7FI{<C
wwx();
7C	c3	)S$sC'2RVYD$,Td&$.tSYYtzz|d23  3S	) 
SESE
"# 3S2R	)	)s*   &C+2C&C9C+
C(	$C++
C9c                     [        [        [        [        5      5      S5      n[	        U5      (       d  g [        XS[        5       -  5      $ )Nr   zIDLE Doc (%s))r   r   r   r   r   r   r   )r   r   s     r(   show_idlehelpr     s;    GGH-.<H(f.:J(JKKr*   c                  F   [         R                  R                  [        R                  SS5      n [        R
                  R                  S5      (       ad  SS[        R                  S S -  -   n[         R                  R                  S5      (       a  Sn OS	n[         R                  R                  X!SS5      n O[        R
                  S S S
:X  a^  SS K	nSnS[        R                   S3n UR                  UR                  U5      n[         R                  R                  U5      (       a  Un OB[        R
                  S:X  a.  [         R                  R                  [        R                  S5      n [         R                  R!                  U 5      n [         R                  R                  U 5      (       a  [        R
                  S:X  a  SU -   $ U $ S[        R                  S S -  $ ! [         a3     UR                  UR                  U5      n GN! [         a      GNf = ff = f)Nr   z
index.htmllinuxzpython-docs-z%s.%s.%sru   z/var/www/html/python/z/var/www/html/python/index.htmlz/usr/share/doc/winr   r   zSoftware\Python\PythonCore\z\Help\Main Python Documentationdarwinz0Resources/English.lproj/Documentation/index.htmlzfile://zhttps://docs.python.org/%d.%d/r   )ospathr   sysbase_prefixplatformcountversion_infoisdirwinregwinver
QueryValueHKEY_CURRENT_USERFileNotFoundErrorHKEY_LOCAL_MACHINEr   normpath)dochomepyverbasepathr  docfileKEYs         r(   _get_dochomer   )  s    ggll3??E<@G
||'""c.>.>r.B!BB77==0117G(Hggll8E<HG	bq	U	"-cjj\12	''(@(@#FG 77>>'""G		!'',,sQSggw'G	ww~~g<<8#w&&/#2B2B2A2FFF% ! 	 ++F,E,EsK$ 	s*   *G# #
H .H
HH HH __main__)ro   zidlelib.idle_test.test_helpr   F)	verbosityexit)run)&r  r  html.parserr   os.pathr   r   r   r   r  r   tkinterr	   r
   r   tkinter.ttkr   r   r   r   r   r   idlelib.configr   idlelib.colorizerr   r   rl   r   r   r  r  r   re   unittestro   idlelib.idle_test.htestr$  rj   r*   r(   <module>r-     s   < 
 
 " 2 2 # ( ( ; ; " # *tC tCn)t )X 8	, 	,"$JL&GR z	&!%@+ r*   