ó
h€
\c           @   se   d  d l  m Z d  d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 d „ Z d „  Z	 d	 S(
   iÿÿÿÿ(   t   range(   t   nst   NamePrefixGeneratorc           B   s   e  Z d  d „ Z d „  Z RS(   t   _value_c         C   s   d |  _  | |  _ d  S(   Ni   (   t   _numt   _prefix(   t   selft   prefix(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyt   __init__   s    	c         C   s)   d |  j  |  j f } |  j d 7_ | S(   Ns   %s%di   (   R   R   (   R   t   retval(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyt   get_name   s    (   t   __name__t
   __module__R   R
   (    (    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyR      s   t   UniqueNameGeneratorc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   i  |  _  d  S(   N(   t   _unique_count(   R   (    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyR      s    c         C   sL   | |  j  k r7 |  j  | c d 7<d | |  j  | f Sd |  j  | <| Sd  S(   Ni   s   %s__%di    (   R   (   R   t   name(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyt   create_name   s
    (   R   R   R   R   (    (    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyR      s   	c         c   s   |  d  k	 s t ‚ t d |  d k r* |  n d ƒ } | d  k	 rg x; t | | ƒ D] \ } } | VqO Wn x | D] } | Vqn Wd  S(   Ni    t	   unboundedi   i   i   l        l   ÿÿ (   t   Nonet   AssertionErrorR    t   zip(   t
   max_occurst   itemst	   generatort   it
   sub_kwargs(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyt   max_occurs_iter   s    !c         C   s   |  s
 d S| rE |  j  rE | j |  j  ƒ } | rx d | |  j f Sn3 |  j  t j k rx t j |  j  } d | |  j f S|  j  rˆ |  j S|  j S(   s   Convert a QName to a xsd:name ('ns1:myType').

    :type qname: lxml.etree.QName
    :type schema: zeep.xsd.schema.Schema
    :rtype: str

    Ns   %s:%s(   t	   namespacet   get_shorthand_for_nst	   localnameR   t   NAMESPACE_TO_PREFIXt   text(   t   qnamet   schemaR   (    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyt   create_prefixed_name*   s    	N(
   t	   six.movesR    t   zeepR   t   objectR   R   R   R   R"   (    (    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/xsd/utils.pyt   <module>   s
   