Repository URL to install this package:
|
Version:
3.4.0 ▾
|
"""
zeep.wsdl.utils
~~~~~~~~~~~~~~~
"""
from lxml import etree
from six.moves.urllib.parse import urlparse, urlunparse
from zeep.utils import detect_soap_env
def get_or_create_header(envelope):
soap_env = detect_soap_env(envelope)
# look for the Header element and create it if not found
header_qname = "{%s}Header" % soap_env
header = envelope.find(header_qname)
if header is None:
header = etree.Element(header_qname)
envelope.insert(0, header)
return header
def etree_to_string(node):
return etree.tostring(
node, pretty_print=False, xml_declaration=True, encoding="utf-8"
)
def url_http_to_https(value):
parts = urlparse(value)
if parts.scheme != "http":
return value
# Check if the url contains ':80' and remove it if that is the case
netloc_parts = parts.netloc.rsplit(":", 1)
if len(netloc_parts) == 2 and netloc_parts[1] == "80":
netloc = netloc_parts[0]
else:
netloc = parts.netloc
return urlunparse(("https", netloc) + parts[2:])