o
    g                     @   sl   d dl 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
 eejdejidZG d	d
 d
eZdS )    N)etree)ElementMaker)ns)Plugin)get_or_create_headerwsa)	namespacensmapc                   @   s.   e Zd ZdejiZddefddZdd ZdS )	WsAddressingPluginr   Naddress_urlc                 C   s
   || _ d S N)r   )selfr    r   A/home/ubuntu/webapp/venv/lib/python3.10/site-packages/zeep/wsa.py__init__   s   
zWsAddressingPlugin.__init__c                 C   s   |j j}|s	|j}t|}t|tdtt	  t
| jp#|d g}|| tjdd dkrBtj||j| jd ||fS t| ||fS )z6Apply the ws-addressing headers to the given envelope.z	urn:uuid:addressN   )      )keep_ns_prefixes	top_nsmap)abstract
wsa_action
soapactionr   WSAAction	MessageIDstruuiduuid4Tor   extendr   LXML_VERSIONcleanup_namespacesr	   )r   envelopehttp_headers	operationbinding_optionsr   headerheadersr   r   r   egress   s    


zWsAddressingPlugin.egressr   )	__name__
__module____qualname__r   r   r	   r   r   r*   r   r   r   r   r
      s    
r
   )r   lxmlr   lxml.builderr   zeepr   zeep.pluginsr   zeep.wsdl.utilsr   r   r
   r   r   r   r   <module>   s    