ó
h€
\c           @   s	  d  d l  Z  d  d l m Z d  d l Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 m Z i e	 j d 6e	 j d 6Z e d	 e d d
 i e	 j d 6ƒ Z e d	 e d d
 i e	 j d 6ƒ Z e j e d d ƒ Z d „  Z d d „ Z d „  Z d „  Z d S(   iÿÿÿÿN(   t   uuid4(   t   etree(   t   ElementMaker(   t   ns(   t   get_or_create_headert   wsset   wsut	   namespacet   nsmapt   Idc         C   sM   t  |  ƒ } | j d d t ƒ} | d k rI t j ƒ  } | j | ƒ n  | S(   sU   Return the security header. If the header doesn't exist it will be
    created.

    s   wsse:Securityt
   namespacesN(   R   t   findt   NSMAPt   Nonet   WSSEt   Securityt   append(   t   doct   headert   security(    (    sD   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/wsse/utils.pyt   get_security_header   s    c         C   s:   |  p t  j  j ƒ  }  |  j d t j d d ƒ }  |  j ƒ  S(   Nt   tzinfot   microsecondi    (   t   datetimet   utcnowt   replacet   pytzt   utct	   isoformat(   t	   timestamp(    (    sD   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/wsse/utils.pyt   get_timestamp!   s    c           C   s   d j  t ƒ  ƒ S(   Ns   id-{0}(   t   formatR    (    (    (    sD   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/wsse/utils.pyt   get_unique_id'   s    c         C   sG   |  d k	 s t ‚ |  j t ƒ } | sC t ƒ  } |  j t | ƒ n  | S(   sq   Ensure given node has a wsu:Id attribute; add unique one if not.

    Return found/created attribute value.

    N(   R   t   AssertionErrort   gett   ID_ATTRR    t   set(   t   nodet   id_val(    (    sD   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/wsse/utils.pyt	   ensure_id+   s    	(   R   t   uuidR    R   t   lxmlR   t   lxml.builderR   t   zeepR   t   zeep.wsdl.utilsR   R   t   WSUR   t   QNameR#   R   R   R   R    R'   (    (    (    sD   /data/av2000/b2b/venv/lib/python2.7/site-packages/zeep/wsse/utils.pyt   <module>   s    
##		