
    5bhC.                     4   	 d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
mZmZ d dlmZmZmZmZ d dl	mZ d dlmZ d dlmZ  G d	 d
e      Z G d de      Z G d de      Z G d de
      Zd Zd Zedk(  r d dlm Z   e ddd       d dl!m"Z"  e"e       yy)    )
HTMLParser)abspathdirnameisfilejoin)python_version)ToplevelTextMenu)Frame
Menubutton	ScrollbarStylefont)idleConf)color_configc                   .    e Zd Z	 d ZddZd Zd Zd Zy)
HelpParserc                     t        j                  | d       || _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        d| _
        g | _        d| _        d | _        y )NT)convert_charrefs Fr   )r   __init__texttagschartagshdrlinklevelprehprefix	nested_dl
simplelisttocheaderprevtag)selfr   s     6/opt/python-3.12.12/usr/lib/python3.12/idlelib/help.pyr   zHelpParser.__init__4   sf    D48		
    c                     	 | xj                   |z  c_         | j                   dk(  rd| _        y dt        | j                         z   | _        y )Nr   r   l)r   strr   )r&   amts     r'   indentzHelpParser.indentC   s7    -

c
**/B	s3tzz?/B	r(   c                    	 d}|D ]  \  }}|dk(  s|} d}|dk(  rO| j                   rC| j                   d   s4| j                  j                  dd      }|r|j                         sdnd}nD|d	k(  r|d
k(  r	d
| _        n1|d	k(  r|dk(  r	d| _        n|dk(  r	d| _        n|dv r6|j                  d      dk7  r
d}d| _        nd| _        | j                          n|dk(  r| j                  dkD  rd| _	        n|dk(  rd}n|dk(  r| j                  sdnd}d| _	        n|dk(  r| j                          d}n}|d
k(  r+d| _
        | j                  j                  dd       d| _        nM|dk(  r|dk(  rd| _        n;|dk(  r|| _        n.|dv r*d| _        | j                  j                  dd       || _        | j                  j                  d|| j                  | j                  f       d|f| _         y )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_r?   vslastlines           r'   handle_starttagzHelpParser.handle_starttagH   s   (DAq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[DIL DKIIUF+DI		DIIt}}#=>c{r(   c                 Z   	 |dv r[|dk(  rdn|dk(  rdnd}| j                   j                  || j                  z   | j                  j	                  d      f       d| _        nB|dv rd| _        n6|d	k(  rd
| _        n)|dk(  rd
| _        d| _        n|dv r| j                  d       d
|f| _
        y )NrA   rB   rC   rC   z        rB   z    r   rG   )r2   r4   r?   Fr   )r5   r<   r6   r8   )r#   appendr$   r   indexr   r   r   r   r-   r%   )r&   rH   r-   s      r'   handle_endtagzHelpParser.handle_endtag{   s    &$$$'4Kj #tf  HHOOVDKK/1JKLDIN"DMCZ DLE\DHDI&&KKOs|r(   c                    	 | j                   s| j                  r|n|j                  dd      }| j                  dk(  r;	 |d |j	                  d       | _        | j
                  j                         sd| _        | j                  dv ro| j
                  dk7  r=|dt        | j
                         | j
                  k(  r|t        | j
                        d  }| xj                  |j                         z  c_	        | j                  j                  d|| j                  | j                  f       y y # t        $ r
 d| _        Y w xY w)Nr1    rA   r   rP   r   r=   )r   r   replacer   rR   r    isdigit
ValueErrorlenr$   stripr   rG   r   )r&   datads      r'   handle_datazHelpParser.handle_data   s   ,||dll4&=AyyD &#$]aggcl#3DL<<//1') yy..LLB&aDLL)*dll:#dll+,-Aqwwy(IIUA		4=='AB  " &#%DL&s   :D+ +D>=D>N)   )__name__
__module____qualname__r   r-   rN   rS   r]    r(   r'   r   r   +   s#    C
1#f$(Cr(   r   c                       e Zd Z	 d Zd Zy)HelpTextc           
         	 t        j                  dddd      }t        j                  dddd      }d|z  dz  }t        j                  | |d	d
dd
||       | j	                  g d      }| j	                  g d      }t        |        |df| d<   | j                  d|ddf       | j                  d|ddf       | j                  d|ddf       | j                  d|ddf       | j                  d|df       | d   }| j                  d|dfd|        | j                  d!dd"       | j                  d#d$d$"       | j                  d%d&d&"       | j                  d'd(d("       t        |       | _        t        |d)*      5 }|j                         }	d d d        | j                  j                  	       d+| d,<   y # 1 sw Y   *xY w)-NmainEditorWindowwidthint)typeheight      wordr      )wraphighlightthicknesspadxborderwidthrh   rk   )TkDefaultFontarial	helvetica)TkFixedFontmonacocourier   r   r4   italicr   rA      boldrB      rC      r   selectbackgroundr>   
      )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   zHelpText.__init__   s   1""6>7O""6>8%PE	QdF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   GG
c                 *   	 |D ]  }|j                         d t        j                  |       D        v r-t        j                  |d|       }|j	                         d   c S |j                         d t        j
                  |       D        v s|c S  y )Nc              3   <   K   | ]  }|j                           y wNlower.0xs     r'   	<genexpr>z$HelpText.findfont.<locals>.<genexpr>   s     K3Ja	3J   )rootT)nameexistsr   familyc              3   <   K   | ]  }|j                           y wr   r   r   s     r'   r   z$HelpText.findfont.<locals>.<genexpr>   s      "G+Ea #$'')+Er   )r   tkfontnamesFontactualfamilies)r&   r   r   r   s       r'   r   zHelpText.findfont   s{    >Dzz|K6<<T3JKK{{TE{{}X.. "G+1??+E"G G r(   N)r_   r`   ra   r   r   rb   r(   r'   rd   rd      s    #>r(   rd   c                       e Zd Z	 d Zd Zy)	HelpFramec                    t        j                  | |       t        | |      x| _        }t	        |      | _        d| d<   | j
                  j                  d|d          | j                  |      x| _        }t        | |j                        x| _        }|j                  |d<   | j                  dd	       | j                  dd	       |j                  ddd
       |j                  ddd       |j                  ddd       y )Nzhelpframe.TFramestyler   )r   )commandyscrollcommandr   r^   weightnw)rowcolumnstickynsew   ns)r   r   rd   r   r   r   	configuretoc_menur#   r   yviewscrollsetrowconfigurecolumnconfiguregrid)r&   r   r   r   r#   r   s         r'   r   zHelpFrame.__init__   s    tV$#D(33	D6]
*W

/D<NOt,,3(tzzBBf!'!A&Qq)Qq.		a&	1!D1r(   c                     	 t        | d      }t        |d      }j                  j                  D ]  \  }}|j	                  ||ffd	        ||d<   |S )NTOC)r   F)tearoffc                 &    j                  |       S r   )r   )dexr   s    r'   <lambda>z$HelpFrame.toc_menu.<locals>.<lambda>   s    tzz#r(   )labelr   menu)r   r   r   r#   add_command)r&   r   r#   droplblr   s    `    r'   r   zHelpFrame.toc_menu   sX    5E*C'HC330NO (F
r(   N)r_   r`   ra   r   r   rb   r(   r'   r   r      s    ,2 r(   r   c                       e Zd Z	 d Zy)
HelpWindowc                 4   t        j                  | |       | j                  |       | j                  d| j                         t        | |      | _        | j                  j                  ddd       | j                  dd       | j                  dd       y )NWM_DELETE_WINDOWr   r   )r   r   r   r^   r   )
r	   r   wm_titleprotocoldestroyr   framer   grid_columnconfiguregrid_rowconfigure)r&   r   r   titles       r'   r   zHelpWindow.__init__   s{    $'e($,,7tX.


qa7!!!A!.q+r(   N)r_   r`   ra   r   rb   r(   r'   r   r      s
    ',r(   r   c                     	 t        t        t        t        t        t                                ddddd      } t        t        t        t                    d      }t	        | dd	      5 }t	        |d
d	      5 }d}|D ]3  }d|v rd}d|v r n'|s|j                  |j                         dz          5 d d d        d d d        t        |  d|        y # 1 sw Y   "xY w# 1 sw Y   &xY w)NDocbuildhtmllibraryz	idle.html	help.htmlrr   r   wFz<section id="idle">Tz<div class="clearer">r1   z copied to )r   r   r   __file__r   writerZ   print)srcdstinnoutcopylines         r'   
copy_stripr      s    , wwwwx'89:;7FI{<C
wwx();
7C	c3	)S$sC'2RVYD$,Td&$.SYYtzz|d23  3S	) 
SESE
"# 3S2R	)	)s*   *C!9C$C4C!C	C!!C*c                     	 t        t        t        t                    d      }t	        |      sy t        | |dt               z        S )Nr   zIDLE Doc (%s))r   r   r   r   r   r   r   )r   r   s     r'   show_idlehelpr     s=    =GGH-.<H(fh.:J(JKKr(   __main__)rf   zidlelib.idle_test.test_helpr   F)	verbosityexit)runN)#html.parserr   os.pathr   r   r   r   platformr   tkinterr	   r
   r   tkinter.ttkr   r   r   r   r   r   idlelib.configr   idlelib.colorizerr   r   rd   r   r   r   r   r_   unittestrf   idlelib.idle_test.htestr   rb   r(   r'   <module>r     s   4 # 2 2 # ( ( ; ; " # *tC tCn)t )X 8	, 	,"$JL z	&!%@+ r(   