
2!V                 @   sz   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 m Z Gd d   d e	  Z d	 S)
    )absolute_import)ImproperlyConfigured)
smart_text)ParserError)
ParserBase)cached_propertyc                   s   e  Z d  Z   f d d   Z d d   Z d d   Z e d d    Z d	 d
   Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z   S)Html5LibParserc                s/   t  t |   j |  d d  l } | |  _ d  S)Nr   )superr   __init__html5lib)selfcontentr   )	__class__ G/tmp/pip-build-0sboevxh/django-compressor/compressor/parser/html5lib.pyr
      s    zHtml5LibParser.__init__c          
   C   s(   |  j  j | d d d d d d d d S)Ntreeetreequote_attr_valuesTomit_optional_tagsFuse_trailing_solidus)r   	serialize)r   elemr   r   r   
_serialize   s    	zHtml5LibParser._serializec             g   s/   x( |  j  D] } | j | k r
 | Vq
 q
 Wd  S)N)htmltag)r   namesr   r   r   r   _find   s    zHtml5LibParser._findc             C   s   y |  j  j |  j d d SWni t k
 rT } z t d |   WYd  d  } ~ Xn5 t k
 r } z t d |   WYd  d  } ~ Xn Xd  S)Ntreebuilderr   z"Error while importing html5lib: %sz#Error while initializing Parser: %s)r   parseFragmentr   ImportErrorr   	Exceptionr   )r   errr   r   r   r      s    "zHtml5LibParser.htmlc             C   s   |  j  d d  S)Nz"{http://www.w3.org/1999/xhtml}linkz#{http://www.w3.org/1999/xhtml}style)r   )r   r   r   r   	css_elems%   s    	zHtml5LibParser.css_elemsc             C   s   |  j  d  S)Nz${http://www.w3.org/1999/xhtml}script)r   )r   r   r   r   js_elems)   s    zHtml5LibParser.js_elemsc             C   s   | j  S)N)attrib)r   r   r   r   r   elem_attribs,   s    zHtml5LibParser.elem_attribsc             C   s   t  | j  S)N)r   text)r   r   r   r   r   elem_content/   s    zHtml5LibParser.elem_contentc             C   s*   d | j  k r# | j  j d  d S| j  S)N}   )r   split)r   r   r   r   r   	elem_name2   s    zHtml5LibParser.elem_namec             C   s   t  |  j |   S)N)r   r   )r   r   r   r   r   elem_str7   s    zHtml5LibParser.elem_str)__name__
__module____qualname__r
   r   r   r   r   r"   r#   r%   r'   r+   r,   r   r   )r   r   r   
   s   	r   N)
__future__r   Zdjango.core.exceptionsr   Zdjango.utils.encodingr   Zcompressor.exceptionsr   Zcompressor.parserr   Zcompressor.utils.decoratorsr   r   r   r   r   r   <module>   s   