U
    6#^                     @   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k
rt   d dlmZ Y nX 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)selfZdocument r   H/var/www/html/UseVoiceDocker/env/lib/python3.8/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 krd| _| jjdkr.|tdfkr.d| _| jdkr<d S | jd | _d| j}|rn| jj	|dd g | _i }|
 D ]\}}|||< qzzt||dd}|| _W n. tk
r }	 ztd	|	  W 5 d }	~	X Y nX |td
fkr| jj}n|tdfkr| jj}n|tdfkr| jj}n|tdfkr2| jj}n|tdfkrJ| jj}nr|tdfkrb| jj}nZ|tdfkrz| jj}nB| 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)qnameZqattributesr   z	Error: %sr	   r
   r   r   r   r   r   parent)triggersr   r   Z_parsingr   r   joinr   r    addTextitemsr   currAttributeErrorprintZautomaticstylesr
   Zmasterstylesr   r   r   r   ZfontfacedeclshasattrZ
addElement)
r   tagr   attrscontentZattrdictZattvalueevr   r   r   startElementNS<   sL    











zLoadParser.startElementNSc                 C   sf   | j dkrd S | jd | _d| j}|r:| jj|dd g | _| jj| _| j| _|| jkrbd| _ d S )NFr   r   r   )	r   r   r"   r   r%   r#   Z
parentNoder    r!   )r   r)   r   strr   r   r   endElementNSi   s    


zLoadParser.endElementNSN)
__name__
__module____qualname____doc__r   r!   r   r   r/   r1   r   r   r   r   r   )   s       -r   )Zdefusedxml.saxr   Zxml.saxr   Zxml.sax.xmlreaderr   Zxml.sax.saxutilsxmlZodf.elementr   Zodf.namespacesr   	cStringIOr   ImportErrorioZContentHandlerr   r   r   r   r   <module>   s   