
    !Sh                        d Z ddlmZ ddlmZ ddlmZmZmZmZm	Z	 ddl
Z
ddlmZmZmZ ddgZ e
j        d	e
j                  Zd dZd!dZd"dZd"dZd#dZd$d%dZd&dZd&dZdS )'a  
Python-Markdown provides two serializers which render [`ElementTree.Element`][xml.etree.ElementTree.Element]
objects to a string of HTML. Both functions wrap the same underlying code with only a few minor
differences as outlined below:

1. Empty (self-closing) tags are rendered as `<tag>` for HTML and as `<tag />` for XHTML.
2. Boolean attributes are rendered as `attrname` for HTML and as `attrname="attrname"` for XHTML.
    )annotations)ProcessingInstruction)CommentElementTreeElementQName
HTML_EMPTYN)CallableLiteralNoReturnto_html_stringto_xhtml_stringz)&(?!(?:\#[0-9]+|\#x[0-9a-f]+|[0-9a-z]+);)textstrreturnr   c                l    t          d                    | t          |           j                            )Nzcannot serialize {!r} (type {}))	TypeErrorformattype__name__r   s    Z/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/markdown/serializers.py_raise_serialization_errorr   :   s0    
)00tDzz7JKK
 
 
    c                    	 d| v rt                               d|           } d| v r|                     dd          } d| v r|                     dd          } | S # t          t          f$ r t          |            Y d S w xY w)N&&amp;<&lt;>&gt;RE_AMPsubreplacer   AttributeErrorr   r   s    r   _escape_cdatar'   @   s    ) $;;::gt,,D$;;<<V,,D$;;<<V,,D~& ) ) )"4(((((()s   AA  A;:A;c                d   	 d| v rt                               d|           } d| v r|                     dd          } d| v r|                     dd          } d| v r|                     dd          } d	| v r|                     d	d
          } | S # t          t          f$ r t          |            Y d S w xY w)Nr   r   r   r   r    r!   "&quot;
z&#10;r"   r   s    r   _escape_attribr,   R   s    )$;;::gt,,D$;;<<V,,D$;;<<V,,D4<<<<h//D4<<<<g..D~& ) ) )"4(((((()s   BB  B/.B/c                0   	 d| v rt                               d|           } d| v r|                     dd          } d| v r|                     dd          } d| v r|                     dd          } | S # t          t          f$ r t          |            Y d S w xY w)	Nr   r   r   r   r    r!   r)   r*   r"   r   s    r   _escape_attrib_htmlr.   e   s    )$;;::gt,,D$;;<<V,,D$;;<<V,,D4<<<<h//D~& ) ) )"4(((((()s   A.A1 1 BBwriteCallable[[str], None]elemr   r   Literal['html', 'xhtml']Nonec                N   |j         }|j        }|t          u r | dt          |          z             nJ|t          u r | dt          |          z             n$|2|r | t          |                     |D ]}t          | ||           nd }t          |t                    rI|j        d d         dk    r'|j        dd                              dd          \  }}nt          d           | d|z              |
                                }|rt          |          }|D ]\  }}	t          |t                    r|j        }t          |	t                    r|	j        }	nt          |	          }	||	k    r|dk    r | d	|	z             h | d
                    ||	                     |r | dt          |          z             |dk    r'|                                t           v r | d           n | d           |r:|                                dv r | |           n | t          |                     |D ]}t          | ||           |                                t           vr | d|z   dz              |j        r | t          |j                             d S d S )Nz	<!--%s-->z<?%s?>   {}z QName objects must define a tag.r   htmlz %sz {}="{}"z xmlns="%s"xhtmlz />r    )scriptstylez</)tagr   r   r'   r   _serialize_html
isinstancer   split
ValueErroritemssortedr.   r   r,   lowerr	   tail)
r/   r1   r   r<   r   enamespace_urirA   kvs
             r   r=   r=   v   s   
(C9D
g~~kM$///0000	%	%	%ht,,,----	 	'E-%%&&& 	. 	.AE1f----	. c5!! 	Ex|s""%(Xabb\%7%7Q%?%?"ss !CDDDcCi

 	35MME 3 31a'' Aa'' /AA+A..A66f..E%!)$$$$E*++Aq112222 	CE->-#@#@ABBBW
!:!:E%LLLLE#JJJ /99;;"555E$KKKKE---... 2 2q&1111yy{{*,,dSj3&'''y (mDI&&'''''( (r   r8   rootc                h    | J g }|j         }t          || |           d                    |          S )N )appendr=   join)rI   r   datar/   s       r   _write_htmlrO      s<    DKEE4(((774==r   elementc                b    t          t          |                                           d          S )z: Serialize element and its children to a string of HTML5. r8   r   rO   r   getrootrP   s    r   r   r      s)    {7++3355fEEEEr   c                b    t          t          |                                           d          S )z: Serialize element and its children to a string of XHTML. r9   rR   rS   rU   s    r   r   r      s)    {7++3355gFFFFr   )r   r   r   r   )r   r   )r   r   r   r   )r/   r0   r1   r   r   r2   r   r3   )r8   )rI   r   r   r2   r   r   )rP   r   r   r   )__doc__
__future__r   xml.etree.ElementTreer   r   r   r   r   r	   retypingr
   r   r   __all__compileIr#   r   r'   r,   r.   r=   rO   r   r    r   r   <module>r`      sb  J  # " " " " " 7 7 7 7 7 7 R R R R R R R R R R R R R R 				 . . . . . . . . . ..
/	@"$	G	G
 
 
 
) ) ) )$) ) ) )&) ) ) )"6( 6( 6( 6(r    F F F F
G G G G G Gr   