o
    öÇ\µ  ã                   @   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/env/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   ÿ