ó
    Ö›‘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     Ú[C:\Users\psant\Downloads\Noiseback\school\venv\Lib\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  p‰U 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        X�l	        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  € Ü”8˜Z×(Ñ(¨T´X×5FÑ5FÓ-FØ!ŒMØä˜%¤×'Ñ'Ø—L‘L §¡Ó/ˆEà#‰ˆØ#‰ˆØ×Ñ˜dÓ"Ø�K‰K˜ ×(8Ñ(8Ñ!8Ñ9Ô:Ø04°aÐ-ˆDÔ˜dœoØ�‰�D˜D§?¡?Ñ2Ñ3Ô4Ø××ØˆDØˆD�OØ”X—]‘]Ó"Ü× Ò  ×'Ñ'Ø ‘à—?—?Ø&‘Dà%‘Dä×$Ñ$×(Ñ(¨Ó.ˆDØÑ#Ð#Ð#Ø—:‘:“<ˆDØ�‰�EÔ ØŒØ×Ò˜EŸK™K¨Ó.Ñ.ÕØ×Ñ˜tÓ#ØˆDŒOØ#Ð'9Ñ9ˆÔØ�D‹=ØˆD�Oð 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�Ø"#Ð#€N�ZØ€Hòõ$ r   r   c                   ó>   • \ rS rSr% Sr/ r\\   \S'   S r	SS jr
Srg)	Ú
HTMLWriteréG   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'   € ØŒØˆÜ×#Ò# D§N¡N°H¸fÔ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Š   € Ü�eœU×#Ñ#Ø—L‘L Ó)ˆEÜ�u“ˆØ—‘˜WÓ%ˆØ‰L˜d§k¡kÓ1Ø�K‰K˜Õà�K‰KØ'Ø—+‘+˜gÓ&ñ'àñð ñð ñ	õr   )r@   r   )N)r6   r7   r8   r9   r:   r@   r   ÚstrÚ__annotations__r   rG   r;   r<   r   r   r>   r>   G   s!   ‡ ñð
 €FˆD�‰IÓò÷r   r>   c                   ó    • \ rS rSrSr/ SQrSrg)ÚSmallerHTMLWriteréf   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‹   € Ø‡I�IˆhÔÜ™6 #§)¡)Ó,×2Ñ2Ó3×>Ñ>€GðÜ×&Ò& s§|¡|Ö4ˆEØ49Ñ1ˆY ¨DÙ�I u°4Ö8ñ 5ð
 ‡I�IˆkÕøô ×Ñó Ùðú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   € Ûä�S—Z‘Z ¨3¯:©:Ó6€FÜ	ˆc�h‰h�q‰k˜4Ô	  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   