in darabonba/core.py [0:0]
def compose_url(request):
host = request.headers.get('host')
if not host:
raise RequiredArgumentException('endpoint')
else:
host = host.rstrip('/')
protocol = f'{request.protocol.lower()}://'
pathname = request.pathname
if host.startswith(('http://', 'https://')):
protocol = ''
if request.port == 80:
port = ''
else:
port = f':{request.port}'
url = protocol + host + port + pathname
if request.query:
if "?" in url:
if not url.endswith("&"):
url += "&"
else:
url += "?"
encode_query = {}
for key in request.query:
value = request.query[key]
if value is not None:
encode_query[key] = str(value)
url += urlencode(encode_query)
return url.rstrip("?&")