
^Q\                 @   s   d  d l  m Z m Z d  d l m Z d  d l Z d  d l m Z d  d l	 m
 Z
 y d  d l m Z Wn" e k
 r d  d l m Z Yn XGd d   d e j  Z d S)	    )make_parserhandler)InputSourceN)Element)OFFICENS)StringIOc            	   @   s   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 zautomatic-stylesbodyzfont-face-declszmaster-stylesmetascriptssettingsstylesc             C   s(   | |  _  g  |  _ d |  _ d |  _ d  S)Nr   F)docdatalevelparse)selfZdocument r   =/var/www/dbchiro/venv/lib/python3.4/site-packages/odf/load.py__init__0   s    			zLoadParser.__init__c             C   s'   |  j  d k r d  S|  j j |  d  S)NF)r   r   append)r   r   r   r   r   
characters6   s    zLoadParser.charactersc       
      C   s  | |  j  k r d |  _ n  |  j j d k rK | t d f k rK d |  _ n  |  j d k r^ d  S|  j d |  _ d j |  j  } | r |  j j	 | d d g  |  _ n  i  } x$ | j
   D] \ } } | | | <q Wy( t d | d	 | d d  } | |  _ Wn3 t k
 r2}	 z t d
 |	  WYd  d  }	 ~	 Xn X| t d f k rT|  j j } n!| t d f k ru|  j j } n | 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 r|  j j } n| | t d f k r|  j j } n[ |  j j d k rM| t d f k rM|  j j } n( t |  d  ru|  j j | d d n  | |  _ d  S)NTz
styles.xmlzfont-face-declsF    check_grammarqnameZqattributesz	Error: %szautomatic-stylesr	   zmaster-stylesr
   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   s   |  j  d k r d  S|  j d |  _ d j |  j  } | rT |  j j | d d n  g  |  _ |  j j |  _ |  j |  _ | |  j k r d |  _  n  d  S)NFr   r   r   )	r   r   r   r   r!   r   Z
parentNoder   r   )r   r%   r   strr   r   r   endElementNSh   s    	zLoadParser.endElementNSN)
__name__
__module____qualname____doc__r   r   r   r   r+   r-   r   r   r   r   r   (   s   -r   )Zxml.saxr   r   Zxml.sax.xmlreaderr   Zxml.sax.saxutilsZxmlZodf.elementr   Zodf.namespacesr   	cStringIOr   ImportErrorioZContentHandlerr   r   r   r   r   <module>   s   