host.py (1020B)
1 # standard imports 2 from socket import getservbyname 3 import urllib.parse 4 5 6 def url_apply_port(url_parts, as_origin=False): 7 url_parts_origin_host = url_parts[1].split(":") 8 host = url_parts_origin_host[0] 9 port = None 10 try: 11 port = ':' + url_parts_origin_host[1] 12 except IndexError: 13 port = ':' + str(getservbyname(url_parts[0])) 14 #logg.info('changed origin with missing port number from {} to {}'.format(url_parts[1], host)) 15 host += port 16 path = '' 17 query = '' 18 fragment = '' 19 if not as_origin: 20 path=url_parts[2] 21 query=url_parts[3] 22 fragment=url_parts[4] 23 24 return urllib.parse.SplitResult( 25 scheme=url_parts[0], 26 netloc=host, 27 path=path, 28 query=query, 29 fragment=fragment, 30 ) 31 32 33 def url_apply_port_string(url_string, as_origin=False): 34 url_parts = urllib.parse.urlsplit(url_string) 35 u = url_apply_port(url_parts, as_origin=as_origin) 36 return urllib.parse.urlunsplit(u)