Source code for bittensor.utils.test_utils
import socket
from random import randint
from typing import Set
max_tries = 10
[docs]
def get_random_unused_port(allocated_ports: Set = set()):
def port_in_use(port: int) -> bool:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
return s.connect_ex(("localhost", port)) == 0
tries = 0
while tries < max_tries:
tries += 1
port = randint(2**14, 2**16 - 1)
if port not in allocated_ports and not port_in_use(port):
allocated_ports.add(port)
return port
raise RuntimeError(f"Tried {max_tries} random ports and could not find an open one")