
    g                     &    d dl mZ  G d de      Zy)   )UndeclaredNamespacec                   V     e Zd Z fdZed        Zd Zd Zd Zd Z	d Z
e
Zd Z xZS )	_StrictFeedParserc                     d| _         d | _        i | _        |xs d| _        || _        || _        t        t        | #          y )N     )	bozoexcdeclsbaseurilangencodingsuperr   __init__)selfr   baselangr   	__class__s       L/var/www/html/venv/lib/python3.12/site-packages/feedparser/parsers/strict.pyr   z_StrictFeedParser.__init__!   s?    	
}"	 /1    c                 p    | d   j                         }|dv xr | d   j                         xs | d   }||fS )Nr   )reltype   )lower)kvkvs      r   _normalize_attributesz'_StrictFeedParser._normalize_attributes*   s<    qEKKM 2RU[[];be!tr   c                 p    |sy |xs d }| j                  ||       |r|dk(  r|| j                  d|z   <   y y y )Nzhttp://www.w3.org/1999/xlinkzxmlns:)track_namespacer   )r   prefixuris      r   startPrefixMappingz$_StrictFeedParser.startPrefixMapping0   sF    4VS)c;;,/DJJx&() <6r   c                 |   |\  }}t        |xs d      j                         }|j                  d      dk7  rd}|}|r)|j                  d      dkD  r|j                  d      d   }nd }| j                  j                  ||      }|r(|
|dk(  r!|dk(  r|| j                  vrt        d|z        t        |      j                         }| j                  i c}	| _        |dk(  r
|d	k(  r||	d
<   |dk(  r
|dk(  r||	d
<   |r|j                         dz   |z   }n8|r6|s4| j                  j                         D ]  \  }}
|s	|
|k(  s|dz   |z   } n |j                         D ]^  \  \  }}}|xs dj                         }| j                  j                  |d      }|r|dz   |z   }||	t        |      j                         <   ` |j                         D ]-  }|j                  |      |	t        |      j                         <   / t        |      j                         }| j                  |t        |	j                                      y )Nr   zbackend.userland.com/rsszhttp://backend.userland.com/rss:r   z''%s' is not associated with a namespacemathz"http://www.w3.org/1998/Math/MathMLxmlnssvgzhttp://www.w3.org/2000/svg)strr   findsplit_matchnamespacesgetnamespaces_in_user   r   items	getQNamesgetValueByQNameunknown_starttaglist)r   nameqnameattrs	namespace	localnamelowernamespacegivenprefixr!   attrsDvalueattrlocalname	attrvalues                r   startElementNSz _StrictFeedParser.startElementNS9   sT   #	9Y_"-3359:b@9I&NUZZ_q(++c*1-KK&&**>;GFNv|RT@T[fnr  oE  oE  \E%&OR]&]^^	N((*	 "ZZ
90T#T'F7O)/K"K'F7O,y8Iu#55;;= eEY. $s
Y 6I
 6;[[] 	;1&Y	'o2446N**..~rBF &} <1:F3}%++-.	; __& 	FE).)>)>u)EF3u:##%&	F	N((*	iflln)=>r   c                 &    | j                  |       y N)handle_data)r   texts     r   
charactersz_StrictFeedParser.charactersi   s    r   c                    |\  }}t        |xs d      j                         }|r)|j                  d      dkD  r|j                  d      d   }nd}| j                  j                  ||      }|r	|dz   |z   }n8|r6|s4| j                  j                         D ]  \  }}|s	||k(  s|dz   |z   } n t        |      j                         }| j                  |       y )Nr   r&   r   )	r*   r   r+   r,   r-   r.   r/   r0   unknown_endtag)	r   r5   r6   r8   r9   r:   r;   r!   r=   s	            r   endElementNSz_StrictFeedParser.endElementNSl   s    #	9Y_"-335UZZ_q(++c*1-KK&&**>;Gy0Iu#55;;= eEY. $s
Y 6I 	N((*	I&r   c                      d| _         || _        y )Nr   )r	   r
   r   r
   s     r   errorz_StrictFeedParser.error~   s    	r   c                 (    | j                  |       |rB   )rK   rJ   s     r   
fatalErrorz_StrictFeedParser.fatalError   s    

3	r   )__name__
__module____qualname__r   staticmethodr   r#   r@   rE   rH   rK   warningrM   __classcell__)r   s   @r   r   r       sB    2  
0.?`'$
 Gr   r   N)
exceptionsr   objectr    r   r   <module>rW      s   : -g gr   