Source code for ml.utils.networking
"""Networking utility functions."""
import socket
[docs]def get_unused_port(default: int | None = None) -> int:
"""Returns an unused port number on the local machine.
Args:
default: A default port to try before trying other ports.
Returns:
A port number which is currently unused
"""
if default is not None:
sock = socket.socket()
try:
sock.bind(("", default))
return default
except OSError:
pass
finally:
sock.close()
sock = socket.socket()
sock.bind(("", 0))
return sock.getsockname()[1]