§
    øÛg¬   ã                   ó`  — d Z ddlZddlZej        dk    rd„ Zdd„Znd„ ZeZ G d„ de¦  «        Z G d	„ d
e¦  «        Z	 ede
fde	ddœ¦  «        Z G d„ de	¦  «        Z G d„ de¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z e¦   «         ZdS )z�
module for generating and serializing xml and html structures
by using simple python objects.

(c) holger krekel, holger at merlinux eu. 2009
é    N)é   r   c                 ó   — | S ©N© ©Úss    ú@/granary/edev/quantum/lib/python3.11/site-packages/py/_xmlgen.pyÚur
   
   s   € Øˆó    c                 óh   — t          | d¦  «        r|                      ¦   «         S t          | ¦  «        S )NÚ__unicode__)Úhasattrr   Ústr)ÚxÚerrorss     r	   Úunicoder      s-   € Ý�1�mÑ$Ô$ð 	#Ø—=’=‘?”?Ð"Ý�1‰vŒvˆr   c                 ó    — t          | ¦  «        S r   ©r   r   s    r	   r
   r
      s   € Ý�q‰zŒzÐr   c                   ó   — e Zd Zd„ ZdS )ÚNamespaceMetaclassc                 ó  — |d d…         dk    rt          |¦  «        ‚| t          k    rt          d¦  «        ‚| j        }|�||vrt          |¦  «        ‚i }| j        r||d<   t          || j        f|¦  «        }t          | ||¦  «         |S )Né   Ú_zNamespace class is abstractÚxmlname)ÚAttributeErrorÚ	NamespaceÚ
ValueErrorÚ__tagspec__Ú__stickyname__ÚtypeÚ__tagclass__Úsetattr)ÚselfÚnameÚtagspecÚ	classattrÚclss        r	   Ú__getattr__zNamespaceMetaclass.__getattr__   s©   € Ø���Œ8�sŠ?ˆ?Ý  Ñ&Ô&Ð&Ø•9ÒÐÝÐ:Ñ;Ô;Ð;ØÔ"ˆØÐ 4¨wÐ#6Ð#6Ý  Ñ&Ô&Ð&Øˆ	ØÔð 	(Ø#'ˆI�iÑ Ý�4˜$Ô+Ð-¨yÑ9Ô9ˆÝ��d˜CÑ Ô Ð Øˆ
r   N)Ú__name__Ú
__module__Ú__qualname__r(   r   r   r	   r   r      s#   € € € € € ðð ð ð ð r   r   c                   óR   ‡ — e Zd Z G d„ de¦  «        Zˆ fd„Zd„ ZeZdd„Zd„ Z	ˆ xZ
S )	ÚTagc                   ó   — e Zd Zd„ ZdS )úTag.Attrc                 ó:   — | j                              |¦  «         d S r   )Ú__dict__Úupdate)r#   Úkwargss     r	   Ú__init__zTag.Attr.__init__(   s   € ØŒM× Ò  Ñ(Ô(Ð(Ð(Ð(r   N©r)   r*   r+   r4   r   r   r	   ÚAttrr/   '   s#   € € € € € ð	)ð 	)ð 	)ð 	)ð 	)r   r6   c                 ó|   •— t          t          | ¦  «                             |¦  «          | j        di |¤Ž| _        d S )Nr   )Úsuperr-   r4   r6   Úattr)r#   Úargsr3   Ú	__class__s      €r	   r4   zTag.__init__+   s>   ø€ Ý�c�4ÑÔ×!Ò! $Ñ'Ô'Ð'Ø�D”IÐ'Ð' Ð'Ð'ˆŒ	ˆ	ˆ	r   c                 ó.   — |                       d¬¦  «        S )Nr   )Úindentr   ©r#   s    r	   r   zTag.__unicode__/   s   € Ø�|Š| 1ˆ|Ñ%Ô%Ð%r   é   c                 óš   — g }t          |j        |¦  «                             | ¦  «         t          d¦  «                             |¦  «        S ©NÚ )ÚSimpleUnicodeVisitorÚappendÚvisitr
   Újoin©r#   r=   Úls      r	   r   zTag.unicode3   s=   € ØˆÝ˜QœX vÑ.Ô.×4Ò4°TÑ:Ô:Ð:Ý�‰uŒu�zŠz˜!‰}Œ}Ðr   c                 óB   — | j         j        }d|t          | ¦  «        fz  S )Nz<%r tag object %d>)r;   r)   Úid)r#   r$   s     r	   Ú__repr__zTag.__repr__8   s"   € ØŒ~Ô&ˆØ# t­R°©X¬XÐ&6Ñ6Ð6r   ©r?   )r)   r*   r+   Úobjectr6   r4   r   Ú__str__r   rK   Ú__classcell__©r;   s   @r	   r-   r-   &   s™   ø€ € € € € ð)ð )ð )ð )ð )ˆvñ )ô )ð )ð(ð (ð (ð (ð (ð&ð &ð &à€Gðð ð ð ð
7ð 7ð 7ð 7ð 7ð 7ð 7r   r-   r   F)r   r!   r   c                   ó   — e Zd Zdd„ZdS )ÚHtmlTagr?   c                 óž   — g }t          |j        |d¬¦  «                             | ¦  «         t          d¦  «                             |¦  «        S )NF©Ú
shortemptyrB   )ÚHtmlVisitorrD   rE   r
   rF   rG   s      r	   r   zHtmlTag.unicodeC   sB   € ØˆÝ�A”H˜f°Ð7Ñ7Ô7×=Ò=¸dÑCÔCÐCÝ�‰uŒu�zŠz˜!‰}Œ}Ðr   NrL   )r)   r*   r+   r   r   r   r	   rR   rR   B   s(   € € € € € ðð ð ð ð ð r   rR   c                   ó‚   — e Zd ZeZdZ ed„ d                     d¦  «        D ¦   «         ¦  «        Z G d„ de	¦  «        Z
dS )ÚhtmlTc                 ó   — g | ]}|¯|d f‘Œ	S ©r   r   ©Ú.0r   s     r	   ú
<listcomp>zhtml.<listcomp>L   s2   € ð ð ð  !ð ð˜˜1˜ð ð ð r   aÉ  a,abbr,acronym,address,applet,area,article,aside,audio,b,base,basefont,bdi,bdo,big,blink,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,comment,datalist,dd,del,details,dfn,dir,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,font,form,frame,frameset,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,img,input,ins,isindex,kbd,keygen,label,legend,li,link,listing,map,mark,marquee,menu,meta,meter,multicol,nav,nobr,noembed,noframes,noscript,object,ol,optgroup,option,output,p,param,pre,progress,q,rp,rt,ruby,s,samp,script,section,select,small,source,span,strike,strong,style,sub,summary,sup,table,tbody,td,textarea,tfoot,th,thead,time,title,tr,track,tt,u,ul,xmp,var,video,wbrú,c                   ó   — e Zd Zd„ ZdS )ú
html.Stylec                 óˆ   — |                      ¦   «         D ],\  }}|                     dd¦  «        }t          | ||¦  «         Œ-d S )Nr   ú-)ÚitemsÚreplacer"   )r#   Úkwr   Úys       r	   r4   zhtml.Style.__init__\   sO   € ØŸš™
œ
ð $ð $‘��1Ø—I’I˜c 3Ñ'Ô'�Ý˜˜a Ñ#Ô#Ð#Ð#ð$ð $r   Nr5   r   r   r	   ÚStyler`   [   s#   € € € € € ð	$ð 	$ð 	$ð 	$ð 	$r   rg   N)r)   r*   r+   rR   r!   r   ÚdictÚsplitr   rM   rg   r   r   r	   rX   rX   I   s…   € € € € € Ø€LØ€NØ�$ð ð ð	G÷ ‚eˆC�j„jðñ ô ñ ô €Kð$ð $ð $ð $ð $�ñ $ô $ð $ð $ð $r   rX   c                   ó   — e Zd ZdZd„ ZdS )Úrawz]just a box that can contain a unicode string that will be
    included directly in the outputc                 ó   — || _         d S r   )Úuniobj)r#   rm   s     r	   r4   zraw.__init__e   s   € ØˆŒˆˆr   N)r)   r*   r+   Ú__doc__r4   r   r   r	   rk   rk   b   s-   € € € € € ð'ð 'ðð ð ð ð r   rk   c                   óV   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ ZdS )rC   z% recursive visitor to write unicode. r   Tc                 óh   — || _         i | _        i | _        || _        || _        g | _        || _        d S r   )ÚwriteÚcacheÚvisitedr=   Ú	curindentÚparentsrU   )r#   rq   r=   rt   rU   s        r	   r4   zSimpleUnicodeVisitor.__init__j   s7   € ØˆŒ
ØˆŒ
ØˆŒØˆŒØ"ˆŒØˆŒØ$ˆŒˆˆr   c                 óÒ   — |j         }	 | j        |         }nE# t          $ r8 |j        D ]}t	          | |j        d¦  «        }|� nŒ| j        }|| j        |<   Y nw xY w ||¦  «         dS )z( dispatcher on node's class/bases name. N)r;   rr   ÚKeyErrorÚ__mro__Úgetattrr)   Ú_SimpleUnicodeVisitor__object)r#   Únoder'   ÚvisitmethodÚsubclasss        r	   rE   zSimpleUnicodeVisitor.visits   s›   € àŒnˆð		*Øœ* Sœ/ˆKˆKøÝð 	*ð 	*ð 	*ØœKð ,ð ,�Ý% d¨HÔ,=¸tÑDÔD�ØÐ*Ø�Eð +ð #œm�Ø)ˆDŒJ�s‰OˆOˆOð	*øøøð 	ˆ�DÑÔÐÐÐs   ‰ —?AÁAc                 ód   — |                       t          t          |¦  «        ¦  «        ¦  «         d S r   )rq   Úescaper   ©r#   Úobjs     r	   Ú__objectzSimpleUnicodeVisitor.__object„   s(   € à�
Š
•6�' #™,œ,Ñ'Ô'Ñ(Ô(Ð(Ð(Ð(r   c                 ó:   — |                       |j        ¦  «         d S r   )rq   rm   r€   s     r	   rk   zSimpleUnicodeVisitor.rawˆ   s   € Ø�
Š
�3”:ÑÔÐÐÐr   c                 ó˜   — t          |¦  «        | j        vsJ ‚d| j        t          |¦  «        <   |D ]}|                      |¦  «         Œd S )Nr   )rJ   rs   rE   )r#   r�   Úelems      r	   ÚlistzSimpleUnicodeVisitor.list‹   s[   € Ý�#‰wŒw˜dœlÐ*Ð*Ð*Ð*Ø !ˆŒ•R˜‘W”WÑØð 	ð 	ˆDØ�JŠJ�tÑÔÐÐð	ð 	r   c                 ó.  — t          |¦  «        | j        vsJ ‚	 | j        d         |_        n# t          $ r
 d |_        Y nw xY wd| j        t          |¦  «        <   t          |d|j        j        ¦  «        }| j        rB|  	                    |¦  «        s-|  
                    dt          d¦  «        | j        z  z   ¦  «         |rØ| xj        | j        z  c_        |  
                    t          d¦  «        ||                      |¦  «        fz  ¦  «         | j                             |¦  «         |D ]}|                      |¦  «         Œ| j                             ¦   «          |  
                    t          d¦  «        |z  ¦  «         | xj        | j        z  c_        d S ||                      |¦  «        z   }|                      |¦  «        r(|  
                    t          d¦  «        |fz  ¦  «         d S |  
                    t          d	¦  «        ||fz  ¦  «         d S )
Néÿÿÿÿr   r   ú
ú z<%s%s>z</%s>z<%s/>z	<%s></%s>)rJ   rs   ru   ÚparentÚ
IndexErrorry   r;   r)   rt   Ú	_isinlinerq   r
   r=   Ú
attributesrD   rE   ÚpopÚ_issingleton)r#   ÚtagÚtagnamer   Únameattrs        r	   r-   zSimpleUnicodeVisitor.Tag‘   sÿ  € Ý�#‰wŒw˜dœlÐ*Ð*Ð*Ð*ð	Øœ bÔ)ˆCŒJˆJøÝð 	ð 	ð 	ØˆCŒJˆJˆJð	øøøà !ˆŒ•R˜‘W”WÑÝ˜#˜y¨#¬-Ô*@ÑAÔAˆØŒ>ð 	7 $§.¢.°Ñ"9Ô"9ð 	7Ø�JŠJ�t�a ™fœf t¤~Ñ5Ñ5Ñ6Ô6Ð6Øð 	AØˆNŒN˜dœkÑ)ˆNŒNØ�JŠJ•q˜‘{”{ g¨t¯ª¸sÑ/CÔ/CÐ%DÑDÑEÔEÐEØŒL×Ò Ñ$Ô$Ð$Øð ð �Ø—
’
˜1‘”��ØŒL×ÒÑÔÐØ�JŠJ•q˜‘z”z GÑ+Ñ,Ô,Ð,ØˆNŒN˜dœkÑ)ˆNŒNˆNˆNà˜tŸš¨sÑ3Ô3Ñ3ˆHØ× Ò  Ñ)Ô)ð AØ—
’
�1˜W™:œ:¨¨Ñ3Ñ4Ô4Ð4Ð4Ð4à—
’
�1˜[™>œ>¨X°wÐ,?Ñ?Ñ@Ô@Ð@Ð@Ð@s   š- ­AÁ Ac                 óX  — t          |j        ¦  «        }|                     ¦   «          g }|D ]4}|                      |j        |¦  «        }|�|                     |¦  «         Œ5|                     |                      |¦  «        ¦  «         t          d¦  «                             |¦  «        S rA   )	Údirr9   ÚsortÚrepr_attributerD   ÚextendÚgetstyler
   rF   )r#   r‘   ÚattrlistrH   r$   Úress         r	   rŽ   zSimpleUnicodeVisitor.attributes«   s�   € å�s”x‘=”=ˆØ�Š‰ŒˆØˆØð 	ð 	ˆDØ×%Ò% c¤h°Ñ5Ô5ˆCØˆØ—’˜‘”�øØ	�Š�—’˜sÑ#Ô#Ñ$Ô$Ð$Ý�‰uŒu�zŠz˜!‰}Œ}Ðr   c                 ó  — |d d…         dk    rqt          ||¦  «        }|                     d¦  «        r
|d d…         }t          |t          ¦  «        r|j        }nt          t          |¦  «        ¦  «        }d|›d|›d�S d S )Nr?   Ú__r   rˆ   rŠ   z="ú")ry   ÚendswithÚ
isinstancerk   rm   r   r   )r#   Úattrsr$   ÚvalueÚinserts        r	   r—   z#SimpleUnicodeVisitor.repr_attribute·   s�   € Ø���Œ8�tÒÐÝ˜E 4Ñ(Ô(ˆEØ�}Š}˜SÑ!Ô!ð !Ø˜C˜R˜C”y�Ý˜%¥Ñ%Ô%ð 0Øœ��å¥¨¡¤Ñ/Ô/�øØ!%   v v vÐ.Ð.ð Ðr   c                 óâ   — 	 |j         j        }d„ |                     ¦   «         D ¦   «         }t          d¦  «        t          d¦  «                             |¦  «        z  gS # t
          $ r g cY S w xY w)z- return attribute list suitable for styling. c                 ó$   — g | ]\  }}|d z   |z   ‘ŒS )z: r   )r\   r   rf   s      r	   r]   z1SimpleUnicodeVisitor.getstyle.<locals>.<listcomp>É   s$   € ÐAÐAÐA©¨¨!˜˜4™ !™ÐAÐAÐAr   z style="%s"z; )Ústyler1   rc   r
   rF   r   )r#   r‘   Ú	styledictÚ	stylelists       r	   r™   zSimpleUnicodeVisitor.getstyleÂ   s€   € ð	@Øœ	Ô*ˆIð BÐA¨y¯ªÑ/@Ô/@ÐAÑAÔAˆIÝ�mÑ$Ô$¥q¨¡w¤w§|¢|°IÑ'>Ô'>Ñ>Ð?Ð?øõ	 ð 	ð 	ð 	ØˆIˆIˆIð	øøøs   ‚A ÁA.Á-A.c                 ó   — | j         S )ú*can (and will) be overridden in subclassesrT   ©r#   r’   s     r	   r�   z!SimpleUnicodeVisitor._issingletonÌ   s
   € àŒÐr   c                 ó   — dS )rª   Fr   r«   s     r	   r�   zSimpleUnicodeVisitor._isinlineÐ   s   € àˆur   N)r   r   T)r)   r*   r+   rn   r4   rE   rz   rk   r†   r-   rŽ   r—   r™   r�   r�   r   r   r	   rC   rC   h   sÊ   € € € € € Ø/Ð/ð%ð %ð %ð %ðð ð ð")ð )ð )ðð ð ðð ð ðAð Að Að4
ð 
ð 
ð	/ð 	/ð 	/ð@ð @ð @ðð ð ðð ð ð ð r   rC   c                   óÊ   ‡ — e Zd Z ed„ d                     d¦  «        D ¦   «         ¦  «        Z ed„ d                     d¦  «        D ¦   «         ¦  «        Zˆ fd„Zd„ Zd	„ Z	ˆ xZ
S )
rV   c                 ó   — g | ]}|d f‘ŒS rZ   r   r[   s     r	   r]   zHtmlVisitor.<listcomp>Ö   s(   € ð /ð /ð /˜a�A�q�6ð /ð /ð /r   z3br,img,area,param,col,hr,meta,link,base,input,framer^   c                 ó   — g | ]}|d f‘ŒS rZ   r   r[   s     r	   r]   zHtmlVisitor.<listcomp>Ù   s.   € ð Að Að A˜a�A�q�6ð Að Að Ar   z“a abbr acronym b basefont bdo big br cite code dfn em font i img input kbd label q s samp select small span strike strong sub sup textarea tt u varrŠ   c                 óŠ   •— |dk    rt          ||¦  «        }|€d S t          t          | ¦  «                             ||¦  «        S )NÚclass_)ry   r8   rV   r—   )r#   r¡   r$   r¢   r;   s       €r	   r—   zHtmlVisitor.repr_attributeÞ   sG   ø€ Ø�8ÒÐÝ˜E 4Ñ(Ô(ˆEØˆ}Ø�Ý•[ $Ñ'Ô'×6Ò6°u¸dÑCÔCÐCr   c                 ó   — || j         v S r   )Úsingler«   s     r	   r�   zHtmlVisitor._issingletonå   ó   € Ø˜$œ+Ð%Ð%r   c                 ó   — || j         v S r   )Úinliner«   s     r	   r�   zHtmlVisitor._isinlineè   r´   r   )r)   r*   r+   rh   ri   r³   r¶   r—   r�   r�   rO   rP   s   @r	   rV   rV   Ô   sØ   ø€ € € € € àˆTð /ð /ð"ß#(¢5¨¡:¤:ð/ñ /ô /ñ 0ô 0€Fð ˆTð Að Að4ç49²E¸#±J´JðAñ Aô Añ Bô B€Fð
Dð Dð Dð Dð Dð&ð &ð &ð&ð &ð &ð &ð &ð &ð &r   rV   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú_escapec                 óÌ  — t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d	¦  «        t          d
¦  «        i| _        t          j        t          d¦  «                             | j                             ¦   «         ¦  «        ¦  «        | _        d S )Nrž   z&quot;ú<z&lt;ú>z&gt;ú&z&amp;ú'z&apos;ú|)r
   r   ÚreÚcompilerF   ÚkeysÚ
charef_rexr>   s    r	   r4   z_escape.__init__í   s”   € åˆc‰FŒF•Q�x‘[”[¥! C¡&¤&­1¨V©9¬9µa¸±f´f½qÀ¹y¼yÝˆc‰FŒF•Q�w‘Z”Z¥ 3¡¤­!¨H©+¬+ðˆŒõ œ*¥Q s¡V¤V§[¢[°´×1AÒ1AÑ1CÔ1CÑ%DÔ%DÑEÔEˆŒˆˆr   c                 óB   — | j         |                     d¦  «                 S )Nr   )r   Úgroup)r#   Úmatchs     r	   Ú	_replacerz_escape._replacerô   s   € ØŒ{˜5Ÿ;š; q™>œ>Ô*Ð*r   c                 ó¨   — 	 t          |¦  «        }n"# t          $ r t          |dd¬¦  «        }Y nw xY w| j                             | j        |¦  «        S )z& xml-escape the given unicode string. zutf-8rd   )r   )r   ÚUnicodeDecodeErrorrÂ   ÚsubrÆ   )r#   Úustrings     r	   Ú__call__z_escape.__call__÷   sh   € ð	BÝ˜gÑ&Ô&ˆGˆGøÝ!ð 	Bð 	Bð 	BÝ˜g w°yÐAÑAÔAˆGˆGˆGð	BøøøàŒ×"Ò" 4¤>°7Ñ;Ô;Ð;s   ‚ ’1°1N)r)   r*   r+   r4   rÆ   rË   r   r   r	   r¸   r¸   ì   sD   € € € € € ðFð Fð Fð+ð +ð +ð<ð <ð <ð <ð <r   r¸   r   )rn   Úsysr¿   Úversion_infor
   r   r    r   r†   r-   rM   r   rR   rX   rk   rC   rV   r¸   r   r   r   r	   ú<module>rÎ      s  ððð ð €€€€€€€àÔ�uÒÐðð ð ðð ð ð ð ð
ð ð à€Gðð ð ð ð ˜ñ ô ð ð 7ð 7ð 7ð 7ð 7ˆ$ñ 7ô 7ð 7ð, Ð˜{¨V¨JØØØð9ð 9ñ ô €	ðð ð ð ð ˆcñ ô ð ð$ð $ð $ð $ð $ˆ9ñ $ô $ð $ð2ð ð ð ð ˆ&ñ ô ð ðjð jð jð jð j˜6ñ jô jð jðX&ð &ð &ð &ð &Ð&ñ &ô &ð &ð0<ð <ð <ð <ð <ñ <ô <ð <ð& 
ˆ‰Œ€€€r   