Source code for specdash.utilities

import socket

[docs]def get_specid_list(specid_text): specid_text = specid_text.strip("\n") separators = ["\n", "|"] specids = [] for sep in separators: if sep in specid_text: specids = specids + [specid.strip() for specid in specid_text.split(sep) if specid != ""] break if len(specids) == 0: specids = [specid_text] return specids
[docs]def is_server_port_used(address, port): # Create a TCP socket s = socket.socket() #print("Attempting to connect to %s on port %s" % (address, port)) try: s.connect((address, port)) #print("Connected to %s on port %s" % (address, port)) return True except socket.error as e: #print("Connection to %s on port %s failed: %s" % (address, port, e)) return False finally: s.close()
[docs]def get_unused_port(initial_port, address="127.0.0.1", max_tries=10): for i in range(max_tries): port = initial_port + i if not is_server_port_used(address, port): return port raise Exception("Could not find free port for Dash app (" + str(max_tries)+" tries)")