15 loglevel = logging.INFO
19 loglevel = logging.DEBUG
21 loglevel = logging.INFO
23 loglevel = logging.WARNING
25 loglevel = logging.ERROR
27 loglevel = logging.CRITICAL
29 loglevel = logging.INFO
31 FORMAT =
"%(message)s"
33 level=
"NOTSET", format=FORMAT, datefmt=
"[%X]", handlers=[RichHandler()]
35 logging.getLogger().setLevel(loglevel)
97 with socket.socket()
as s:
99 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
100 port = s.getsockname()[1]
105 if min_port_num < 1024:
108 port = random.randint(min_port_num, max_port_num)
109 with socket.socket(socket.AF_INET, socket.SOCK_STREAM)
as s:
111 s.bind((
"0.0.0.0", port))