ó
h€
\c           @   sÓ   d  d l  Z  d  d l m Z d  d l m Z m Z d  d l m Z d  d l m	 Z	 m
 Z
 d  d l m Z d  d l m Z d  d l m Z e  j e ƒ Z d	 d
 g Z d	 e f d „  ƒ  YZ d
 e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   etree(   t
   exceptionst   ns(   t
   qname_attr(   t   NotSett   xsi_ns(   t   Base(   t   max_occurs_iter(   t	   AnyObjectt   Anyt   AnyAttributec           B   s¡   e  Z d Z d  d  d d d „ Z d „  Z d „  Z d „  Z d d „ Z d „  Z	 d d d „ Z
 d d	 „ Z d
 „  Z d „  Z d „  Z d „  Z d e d „ Z RS(   i   t   strictc         C   sW   t  t |  ƒ j ƒ  | |  _ | |  _ | |  _ | |  _ d d l m } | ƒ  |  _	 d S(   s  

        :param process_contents: Specifies how the XML processor should handle
                                 validation against the elements specified by
                                 this any element
        :type process_contents: str (strict, lax, skip)

        iÿÿÿÿ(   t   AnyTypeN(
   t   superR	   t   __init__t
   max_occurst
   min_occurst   restrictt   process_contentst   zeep.xsdR   t   type(   t   selfR   R   R   R   R   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyR      s    
				c         C   s   | S(   N(    (   R   t
   any_object(    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   __call__)   s    c         C   s   d |  j  j |  j f S(   Ns   <%s(name=%r)>(   t	   __class__t   __name__t   name(   R   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   __repr__,   s    c         C   s   t  S(   N(   t   True(   R   t   value(    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   accept/   s    c   	      C   so  |  j  d k r | St j | j ƒ } | r¶ | j r¶ x | j D]% } | j j | j ƒ r> | } Pq> q> WxL | j D]> } y! | j t	 | ƒ d ƒ } | SWqq t
 k
 r® qq qq Xqq Wn  t | t d ƒ ƒ } | d  k	 rü | j | ƒ } | j | | d | ƒS|  j r|  j j | | d | ƒSy, | j | j ƒ } | j | | d | ƒSWn t j t j
 f k
 rj| SXd  S(   Nt   skipi    R   t   context(   R   R    t   QNamet   tagt   schemast	   documentst   has_schema_document_for_nst	   namespacet   deserializet   listt   LookupErrorR   R   t   Nonet   get_typet   parse_xmlelementR   t   get_elementt   parseR   t   NamespaceError(	   R   t
   xmlelementt   schemaR    t   qnamet   context_schemat   datat   xsd_typet   element(    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyR.   2   s4    		c         C   s2   | | k r. | j  | ƒ | | } i | | 6Si  S(   N(   t   remove(   R   t   kwargsR   t   available_kwargsR   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   parse_kwargsW   s
    
c   	      C   s   g  } xa t  |  j ƒ D]P } | re | j ƒ  } |  j | | d | ƒ} | d k	 rf | j | ƒ qf q Pq W|  j sŒ | rƒ | d n d } n  | S(   s  Consume matching xmlelements and call parse() on each of them

        :param xmlelements: Dequeue of XML element objects
        :type xmlelements: collections.deque of lxml.etree._Element
        :param schema: The parent XML schema
        :type schema: zeep.xsd.Schema
        :param name: The name of the parent element
        :type name: str
        :param context: Optional parsing context (for inline schemas)
        :type context: zeep.xsd.context.XmlParserContext
        :return: dict or None

        R    i    N(   R   R   t   popleftR.   R*   t   appendt   accepts_multiple(	   R   t   xmlelementsR1   R   R    t   resultt   _unusedR0   t   item(    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   parse_xmlelements^   s    	c         C   s7  | d  k	 s t ‚ |  j | | ƒ |  j r t | t ƒ r d d l m } t |  j | ƒ r± x¾ | D]G } t	 j
 | d ƒ } | j t d ƒ |  j j ƒ |  j | | | ƒ qc Wq3|  j rù x` | D]1 } t	 j
 | |  j j ƒ } |  j | | | ƒ qÁ Wq3x7 | D] } |  j | | | ƒ q Wn |  j | | | ƒ d  S(   Niÿÿÿÿ(   t   AnySimpleTypeRA   R   (   R*   t   AssertionErrort   validateR=   t
   isinstanceR(   R   RC   R   R    t
   SubElementt   setR   R2   t   _render_value_itemR   (   R   t   parentR   t   render_pathRC   t   valt   node(    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   render{   s     	c         C   sõ   | d  t f k r d  St | t j ƒ r8 | j | ƒ n¹ |  j r™ t | t ƒ r} xC | D] } |  j j | | d  | ƒ qW Wqñ |  j j | | d  | ƒ nX t | j	 t ƒ rØ xC | j	 D] } | j
 j | | | ƒ qµ Wn | j
 j | | j	 | ƒ d  S(   N(   R*   R   RF   R    t   _ElementR<   R   R(   RN   R   t   xsd_elm(   R   RJ   R   RK   RL   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyRI   ’   s    	 c         C   sé   |  j  r§ t | t ƒ r§ t | ƒ |  j k  rF t j d |  j ƒ ‚ n  |  j d k rƒ t | ƒ |  j k rƒ t j d |  j ƒ ‚ n  x_ | D] } |  j | | ƒ qŠ Wn> |  j	 rÕ | d  t f k rÕ t j d ƒ ‚ n  |  j | | ƒ d  S(   Ns,   Expected at least %d items (minOccurs check)t	   unboundeds+   Expected at most %d items (maxOccurs check)s   Missing element for Any(   R=   RF   R(   t   lenR   R   t   ValidationErrorR   t   _validate_itemt   is_optionalR*   R   (   R   R   RK   RL   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyRE   ¦   s    $c         C   s   | d  k r d  S|  j r5 t j t f |  j j } n t j t t f } | d  t f k r„ |  j sü t	 j
 d |  j d | ƒ‚ qü nx t | | ƒ sü g  | D] } d | j | j f ^ qš } d t | ƒ j d j | ƒ f } t d j | d f ƒ ƒ ‚ n  d  S(   Ns   Missing element %st   paths   %s.%ss3   Any element received object of type %r, expected %ss    or s   
s^   See http://docs.python-zeep.org/en/master/datastructures.html#any-objects for more information(   R*   R   R    RO   t   dictt   accepted_typesR   R   RU   R   RS   R   RF   t
   __module__R   R   t   joint	   TypeError(   R   R   RK   t   expected_typest   tt
   type_namest   err_message(    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyRT   ¹   s     		)	c         C   s   |  S(   N(    (   R   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   resolveÖ   s    c         C   s3   |  j  r |  j  j } n d } |  j r/ d | S| S(   Nt   ANYs   %s[](   R   R   R=   (   R   R1   t
   standalonet   base(    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt	   signatureÙ   s    		N(   R   RY   R*   R   R   R   R   R   R.   R:   RB   RN   RI   RE   RT   R`   R   Rd   (    (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyR	      s   				%					c           B   sb   e  Z d Z e j e j d  ƒ g Z d d „ Z	 d d „ Z
 d „  Z d d „ Z d e d „ Z RS(   R   R   c         C   s   d  |  _ | |  _ d  S(   N(   R*   R2   R   (   R   R   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyR   ê   s    	c         C   sC   i  } x6 | j  ƒ  D]( \ } } | |  j k r | | | <q q W| S(   N(   t   itemst   _ignore_attributes(   R   t
   attributesR    R?   t   keyR   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyR.   î   s
    c         C   s   |  S(   N(    (   R   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyR`   õ   s    c         C   sG   | d  t f k r d  Sx* | j ƒ  D] \ } } | j | | ƒ q# Wd  S(   N(   R*   R   Re   RH   (   R   RJ   R   RK   R   RL   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyRN   ø   s    c         C   s   d S(   Ns   {}(    (   R   R1   Rb   (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyRd   ÿ   s    N(   R   RY   R*   R   R    R!   R   t   XSIRf   R   R.   R`   RN   R   Rd   (    (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyR
   ä   s   	(   t   loggingt   lxmlR    t   zeepR   R   t
   zeep.utilsR   t   zeep.xsd.constR   R   t   zeep.xsd.elements.baseR   t   zeep.xsd.utilsR   t   zeep.xsd.valueobjectsR   t	   getLoggerR   t   loggert   __all__R	   R
   (    (    (    sJ   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/elements/any.pyt   <module>   s   Ò