def get_addresses_with_unique_ports(addresses):
# type: (str) -> List[Tuple[str, int]]
address_tuples = [tuple(address.strip().split(':')) for address in
addresses.split(',')]
result = [] # type: List[Tuple[str, int]]
ports = set() # type: Set[int]
for address in address_tuples:
host = address[0]
if len(address) > 1 and address[1]:
port_str = address[1]
port = int(port_str)
if port < 1 or port > 65535:
raise ValueError(
"Port {} is out of range".format(port_str))
if port in ports:
raise ValueError(
"Port {} is already specified before".format(port_str))
else:
port = DEFAULT_PORT
result.append((host, port))
ports.add(port)
return result
评论列表
文章目录