
    eB1i                         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 	 d dlmZ  G d d	ej                         Zy# e$ r	 d dlmZ Y #w xY w)
    )make_parser)handler)InputSourceN)Element)OFFICENS)StringIOc            	       \    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
 Zd Zd Zd Z	y)
LoadParserz2 Extract headings from content.xml of an ODT file automatic-stylesbodyfont-face-declsmaster-stylesmetascriptssettingsstylesc                 <    || _         g | _        d| _        d| _        y )Nr   F)docdatalevelparse)selfdocuments     ;/var/www/html/venv/lib/python3.12/site-packages/odf/load.py__init__zLoadParser.__init__1   s    	

    c                 Z    | j                   dk(  ry | j                  j                  |       y )NF)r   r   append)r   r   s     r   
characterszLoadParser.characters7   s#    ::		r   c                 $   || j                   v rd| _        | j                  j                  dk7  r|t        dfk(  rd| _        | j                  dk(  ry | j
                  dz   | _        dj                  | j                        }|r$| j                  j                  |d       g | _        i }|j                         D ]
  \  }}|||<    	 t        ||d      }|| _        |t        d
fk(  r| j                  j                  }|| _        y |t        dfk(  r| j                  j                   }|| _        y |t        dfk(  r| j                  j"                  }|| _        y |t        dfk(  r| j                  j$                  }|| _        y |t        dfk(  r| j                  j&                  }|| _        y |t        dfk(  r| j                  j(                  }|| _        y |t        dfk(  r| j                  j*                  }|| _        y | j                  j                  dk(  r)|t        dfk(  r| j                  j,                  }|| _        y t/        | d      r| j                  j1                  d       | _        y # t        $ r}	t        d	|	z         Y d }	~	d }	~	ww xY w)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vs
             r   startElementNSzLoadParser.startElementNS<   s]   $--DJ88,CT8U1UDJ::ZZ!^
''$))$KKu=DI ;;= 	"KS!HSM	"	$OADI 8/00((A" ! Xv&&A  X//%%A  Xv&&A  Xi((  A  Xj))!!A  Xh''A
 	 XX,.38EV:W3W&&A  T(#KK""1E":+  	$;?##	$s   I- -	J6J

Jc                 R   | j                   dk(  ry | j                  dz
  | _        dj                  | j                        }|r| j                  j                  |d       g | _        | j                  j                  | _        | j                  | _        || j                  v rd| _         y y )NFr!   r"   r#   )	r   r   r*   r   r-   r+   
parentNoder'   r(   )r   r5   r%   strs       r   endElementNSzLoadParser.endElementNSi   s    ::ZZ!^
ggdii IIc7	II((	ii$--DJ  r   N)
__name__
__module____qualname____doc__r   r(   r   r   r=   rA    r   r   r
   r
   )   s_    <$%&'9#$x&A&Hi0*(3	6H
*Zr   r
   )defusedxml.saxr   xml.saxr   xml.sax.xmlreaderr   xml.sax.saxutilsxmlodf.elementr   odf.namespacesr   	cStringIOr   ImportErrorioContentHandlerr
   rF   r   r   <module>rR      sI   6 '  )   #"K'' K  s   A   AA