o
    e                     @   s   d dl mZ d dlmZ d dlmZ d dlZd dlm	Z	 d dl
mZ zd dlmZ W n ey9   d dlmZ Y nw G dd	 d	ejZdS )
    )make_parser)handler)InputSourceN)Element)OFFICENS)StringIOc                	   @   sd   e Zd ZdZedfedfedfedfedfedfedfed	ffZd
d Zdd Zdd Zdd Z	dS )
LoadParserz2 Extract headings from content.xml of an ODT file automatic-stylesbodyfont-face-declsmaster-stylesmetascriptssettingsstylesc                 C   s   || _ g | _d| _d| _d S )Nr   F)docdatalevelparse)selfdocument r   ;/var/www/html/venv/lib/python3.10/site-packages/odf/load.py__init__1   s   
zLoadParser.__init__c                 C   s   | j dkrd S | j| d S )NF)r   r   append)r   r   r   r   r   
characters7   s   
zLoadParser.charactersc           
   
   C   s  || j v rd| _| jjdkr|tdfkrd| _| jdkrd S | jd | _d| j}|r7| jj	|dd g | _i }|
 D ]\}}|||< q=zt||dd}|| _W n tyj }	 ztd	|	  W Y d }	~	nd }	~	ww |td
fkrv| jj}n`|tdfkr| jj}nU|tdfkr| jj}nJ|tdfkr| jj}n?|tdfkr| jj}n4|tdfkr| jj}n)|tdfkr| jj}n| jjdkr|tdfkr| jj}nt| dr| jj|dd || _d S )NTz
styles.xmlr   F    check_grammar)qnameqattributesr   z	Error: %sr	   r
   r   r   r   r   r   parent)triggersr   r   _parsingr   r   joinr   r"   addTextitemsr   currAttributeErrorprintautomaticstylesr
   masterstylesr   r   r   r   fontfacedeclshasattr
addElement)
r   tagr    attrscontentattrdictattvalueevr   r   r   startElementNS<   sP   













zLoadParser.startElementNSc                 C   sj   | j dkrd S | jd | _d| j}|r| jj|dd g | _| jj| _| j| _|| jv r3d| _ d S d S )NFr   r   r   )	r   r   r%   r   r(   r&   
parentNoder"   r#   )r   r0   r    strr   r   r   endElementNSi   s   



zLoadParser.endElementNSN)
__name__
__module____qualname____doc__r   r#   r   r   r8   r;   r   r   r   r   r   )   s    -r   )defusedxml.saxr   xml.saxr   xml.sax.xmlreaderr   xml.sax.saxutilsxmlodf.elementr   odf.namespacesr   	cStringIOr   ImportErrorioContentHandlerr   r   r   r   r   <module>   s   