
    h*                         S r SSKrSSK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\
4S jrS r\S:X  a  \" 5         gg)z"
HTML rendering of Python source.
    N)escape)List   )reflectc                   :    \ rS rSrSrSu  rrS=rrSr	S r
S rSrg	)
TokenPrinter   zM
Format a stream of tokens and intermediate whitespace, for pretty-printing.
)r   r   r   utf-8c                     Xl         g)z:
@param writer: A file-like object, opened in bytes mode.
N)writer)selfr   s     ^/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/python/htmlizer.py__init__TokenPrinter.__init__   s	         c                    [        [        S5      (       a  U[        R                  :X  a  X l        g [	        U[
        5      (       d  UR                  U R                  5      nUu  pgUu  pU R                  U:  a/  U R                  SX`R                  -
  -  5        USsU l        U l	        U R                  SXpR                  -
  -  5        U R                  (       a
  SnSU l        O}U[        R                  :X  a5  [        R                  " U5      (       a  SnOKU R                  (       a  SnO7S	nO4[        R                  R!                  U5      nUc   eUR#                  5       nU R                  X!5        Xl	        U =R                  UR%                  S5      -  sl        U R                  U:w  a  SU l	        US
;   U l
        US:X  a  SU l        g g )NENCODING   
r       
identifierr   keyword	parametervariable)s   defs   class   :)hasattrtokenizer   encoding
isinstancebytesencodecurrentLiner   
currentCollastIdentifier
parametersNAMEr   	iskeywordtok_namegetlowercount)
r   typetokensCoordinateseCoordinateslinesrowscolerowecols
             r   
printtokenTokenPrinter.printtoken    sx   8Z((TX5F5F-F!M%''LL/E##d"KK(8(8!89:04a-DdoDD??234DDOX]]"  '' ??&D%D$$((.D###::<DE EKK..t#DO#'99D=DO r   )r"   r!   r   r#   r$   r   N)__name__
__module____qualname____firstlineno____doc__r"   r!   r#   r$   r   r   r4   __static_attributes__ r   r   r   r      s,     #J"##NZH$ r   r   c                   >    \ rS rSr% Sr/ r\\   \S'   S r	SS jr
Srg)	
HTMLWriterG   za
Write the stream of tokens and whitespace from L{TokenPrinter}, formating
tokens as HTML spans.
noSpanc                 d    Xl         / n[        R                  " U R                  SU5        X l        g )Nr@   )r   r   accumulateClassList	__class__r@   )r   r   r@   s      r   r   HTMLWriter.__init__O   s'    ##DNNHfEr   Nc                 (   [        U[        5      (       a  UR                  S5      n[        U5      nUR	                  S5      nUb  X R
                  ;   a  U R                  U5        g U R                  SUR	                  S5      -   S-   U-   S-   5        g )Nr
   s   <span class="py-src-s   ">s   </span>)r   r   decoder   r    r@   r   )r   r,   r+   s      r   writeHTMLWriter.writeU   s    eU##LL)EuW%Ldkk1KKKK'++g&'  	r   )r@   r   )N)r6   r7   r8   r9   r:   r@   r   str__annotations__r   rG   r;   r<   r   r   r>   r>   G   s!    
 FDIr   r>   c                        \ rS rSrSr/ SQrSrg)SmallerHTMLWriterf   z]
HTMLWriter that doesn't generate spans for some junk.

Results in much smaller HTML output.
)	endmarkerindentdedentopnewlinenlr<   N)r6   r7   r8   r9   r:   r@   r;   r<   r   r   rL   rL   f   s     FFr   rL   c                 J   UR                  S5        [        U" UR                   5      R                   5      R                  n [        R                  " U R                  5       H  nUu  pVpxn	U" XVXxU	5        M     UR                  S5        g ! [        R
                   a     N(f = f)Ns   <pre>s   </pre>
)rG   r   r4   r   readline
TokenError)
inpoutr   printerr,   	tokenTypestringstartendr/   s
             r   filterr^   p   s    IIh6#)),223>>G&&s||4E491YDIu48 5
 IIk  s   7B B"!B"c                      SS K n [        U R                  SU R                  5      n[        U R                  S   S5       n[        X!5        S S S 5        g ! , (       d  f       g = f)Nr   bufferr   rb)sysgetattrstdoutopenargvr^   )rb   rd   fs      r   mainrh   |   sC    SZZ3::6F	chhqk4	 Aq 
!	 	 s   A
A"__main__)r:   r   r   htmlr   typingr    r   r   r>   rL   r^   rh   r6   r<   r   r   <module>rm      sa   
     3  3 l >F
 F ' 	 zF r   