ar08's picture
Upload 1040 files
246d201 verified
import random
import socket
import time
def check_port_available(port: int) -> bool:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.bind(('localhost', port))
return True
except OSError:
time.sleep(0.1) # Short delay to further reduce chance of collisions
return False
finally:
sock.close()
def find_available_tcp_port(min_port=30000, max_port=39999, max_attempts=10) -> int:
"""Find an available TCP port in a specified range.
Args:
min_port (int): The lower bound of the port range (default: 30000)
max_port (int): The upper bound of the port range (default: 39999)
max_attempts (int): Maximum number of attempts to find an available port (default: 10)
Returns:
int: An available port number, or -1 if none found after max_attempts
"""
rng = random.SystemRandom()
ports = list(range(min_port, max_port + 1))
rng.shuffle(ports)
for port in ports[:max_attempts]:
if check_port_available(port):
return port
return -1
def display_number_matrix(number: int) -> str | None:
if not 0 <= number <= 999:
return None
# Define the matrix representation for each digit
digits = {
'0': ['###', '# #', '# #', '# #', '###'],
'1': [' #', ' #', ' #', ' #', ' #'],
'2': ['###', ' #', '###', '# ', '###'],
'3': ['###', ' #', '###', ' #', '###'],
'4': ['# #', '# #', '###', ' #', ' #'],
'5': ['###', '# ', '###', ' #', '###'],
'6': ['###', '# ', '###', '# #', '###'],
'7': ['###', ' #', ' #', ' #', ' #'],
'8': ['###', '# #', '###', '# #', '###'],
'9': ['###', '# #', '###', ' #', '###'],
}
# alternatively, with leading zeros: num_str = f"{number:03d}"
num_str = str(number) # Convert to string without padding
result = []
for row in range(5):
line = ' '.join(digits[digit][row] for digit in num_str)
result.append(line)
matrix_display = '\n'.join(result)
return f'\n{matrix_display}\n'