ó
|•·\c           @   sÙ   d  Z  d d l Z d d l Z e j d d k Z e e j j d ƒ sU e	 d ƒ ‚ n  d e
 f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z d S(   s1   Common constants, exceptions and helpe functions
iÿÿÿÿNi    i   t   ParserCreatet   pyexpatt   DefusedXmlExceptionc           B   s   e  Z d  Z d „  Z RS(   s   Base exception
    c         C   s
   t  |  ƒ S(   N(   t   str(   t   self(    (    s0   lib/python2.7/site-packages/defusedxml/common.pyt   __repr__   s    (   t   __name__t
   __module__t   __doc__R   (    (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR      s   t   DTDForbiddenc           B   s    e  Z d  Z d „  Z d „  Z RS(   s*   Document type definition is forbidden
    c         C   s2   t  t |  ƒ j ƒ  | |  _ | |  _ | |  _ d  S(   N(   t   superR	   t   __init__t   namet   sysidt   pubid(   R   R   R   R   (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR      s    		c         C   s"   d } | j  |  j |  j |  j ƒ S(   Ns7   DTDForbidden(name='{}', system_id={!r}, public_id={!r})(   t   formatR   R   R   (   R   t   tpl(    (    s0   lib/python2.7/site-packages/defusedxml/common.pyt   __str__$   s    (   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR	      s   	t   EntitiesForbiddenc           B   s    e  Z d  Z d „  Z d „  Z RS(   s#   Entity definition is forbidden
    c         C   sM   t  t |  ƒ j ƒ  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(	   R
   R   R   R   t   valuet   baseR   R   t   notation_name(   R   R   R   R   R   R   R   (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR   -   s    					c         C   s"   d } | j  |  j |  j |  j ƒ S(   Ns<   EntitiesForbidden(name='{}', system_id={!r}, public_id={!r})(   R   R   R   R   (   R   R   (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR   6   s    (   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR   )   s   		t   ExternalReferenceForbiddenc           B   s    e  Z d  Z d „  Z d „  Z RS(   s1   Resolving an external reference is forbidden
    c         C   s;   t  t |  ƒ j ƒ  | |  _ | |  _ | |  _ | |  _ d  S(   N(   R
   R   R   t   contextR   R   R   (   R   R   R   R   R   (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR   ?   s
    			c         C   s   d } | j  |  j |  j ƒ S(   Ns8   ExternalReferenceForbidden(system_id='{}', public_id={})(   R   R   R   (   R   R   (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR   F   s    (   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR   ;   s   	t   NotSupportedErrorc           B   s   e  Z d  Z RS(   s#   The operation is not supported
    (   R   R   R   (    (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyR   K   s   c         C   s²   |  t  j |  j k s t ‚ |  j } t | i  i  d g ƒ t  j | } t t | ƒ ƒ } xQ t |  ƒ j	 ƒ  D]= \ } } | j
 d ƒ sm | | k rš qm n  t | | | ƒ qm W| S(   Nt   *t   _(   t   syst   modulesR   t   AssertionErrort
   __origin__t
   __import__t   sett   dirt   varst   itemst
   startswitht   setattr(   t   defused_modt   stdlib_namet
   stdlib_modt   stdlib_namesR   t   obj(    (    s0   lib/python2.7/site-packages/defusedxml/common.pyt   _apply_defusingP   s    	c            sm   d t t t ‡  ‡ ‡ f d † } d d t t t ‡  ‡ ‡ f d † } t t t ‡  ‡ f d † } | | | f S(   sd   Factory for functions needed by etree, dependent on whether
    cElementTree or ElementTree is used.c      	      s@   | d  k r3 ˆ  d ˆ ƒ  d | d | d | ƒ } n  ˆ |  | ƒ S(   Nt   targett
   forbid_dtdt   forbid_entitiest   forbid_external(   t   None(   t   sourcet   parserR-   R.   R/   (   t   DefusedXMLParsert   _TreeBuildert   _parse(    s0   lib/python2.7/site-packages/defusedxml/common.pyt   parsea   s    	c      	      sC   | d  k r3 ˆ  d ˆ ƒ  d | d | d | ƒ } n  ˆ |  | | ƒ S(   NR,   R-   R.   R/   (   R0   (   R1   t   eventsR2   R-   R.   R/   (   R3   R4   t
   _iterparse(    s0   lib/python2.7/site-packages/defusedxml/common.pyt	   iterparsek   s    	c      	      s;   ˆ  d ˆ ƒ  d | d | d | ƒ } | j  |  ƒ | j ƒ  S(   NR,   R-   R.   R/   (   t   feedt   close(   t   textR-   R.   R/   R2   (   R3   R4   (    s0   lib/python2.7/site-packages/defusedxml/common.pyt
   fromstring|   s    		N(   R0   t   Falset   True(   R3   R4   R5   R8   R6   R9   R=   (    (   R3   R4   R8   R5   s0   lib/python2.7/site-packages/defusedxml/common.pyt   _generate_etree_functions]   s    !
(   R   R   t   xml.parsers.expatt   xmlt   version_infot   PY3t   hasattrt   parserst   expatt   ImportErrort
   ValueErrorR   R	   R   R   R   R+   R@   (    (    (    s0   lib/python2.7/site-packages/defusedxml/common.pyt   <module>   s   	