style: отформатировать validator.py с black

This commit is contained in:
qwen.ai[bot] 2026-08-12 13:21:46 +00:00
parent f99a06985e
commit 34a0e193ac

View file

@ -9,11 +9,11 @@ import typer
# Запрещённые префиксы (private, reserved, multicast) # Запрещённые префиксы (private, reserved, multicast)
FORBIDDEN_PREFIXES: Final = [ FORBIDDEN_PREFIXES: Final = [
"127.", # localhost "127.", # localhost
"0.", # current network "0.", # current network
"10.", # private class A "10.", # private class A
"192.168.", # private class C "192.168.", # private class C
"172.16.", # private class B (начало диапазона) "172.16.", # private class B (начало диапазона)
"172.17.", "172.17.",
"172.18.", "172.18.",
"172.19.", "172.19.",
@ -29,26 +29,26 @@ FORBIDDEN_PREFIXES: Final = [
"172.29.", "172.29.",
"172.30.", "172.30.",
"172.31.", "172.31.",
"224.", # multicast "224.", # multicast
"240.", # reserved "240.", # reserved
"::1", # IPv6 localhost "::1", # IPv6 localhost
"fe80:", # IPv6 link-local "fe80:", # IPv6 link-local
"fc00:", # IPv6 unique local "fc00:", # IPv6 unique local
"fd00:", # IPv6 unique local "fd00:", # IPv6 unique local
] ]
def validate_target(value: str) -> str: def validate_target(value: str) -> str:
"""Валидировать целевой адрес (target). """Валидировать целевой адрес (target).
Проверяет, что адрес не является private/reserved IP. Проверяет, что адрес не является private/reserved IP.
Args: Args:
value: IP-адрес или hostname для проверки value: IP-адрес или hostname для проверки
Returns: Returns:
Оригинальное значение если валидно Оригинальное значение если валидно
Raises: Raises:
typer.BadParameter: Если адрес запрещён typer.BadParameter: Если адрес запрещён
""" """
@ -64,52 +64,48 @@ def validate_target(value: str) -> str:
except ValueError: except ValueError:
# Не IP-адрес (hostname), проверяем что это не выглядит как private IP # Не IP-адрес (hostname), проверяем что это не выглядит как private IP
pass pass
# Для hostnames - простая проверка что не начинается с цифр (не похоже на IP) # Для hostnames - простая проверка что не начинается с цифр (не похоже на IP)
# Hostnames могут содержать буквы, цифры, дефисы и точки # Hostnames могут содержать буквы, цифры, дефисы и точки
if value[0].isdigit(): if value[0].isdigit():
# Похоже на IP но не распарсился - возможно невалидный, но не блокируем # Похоже на IP но не распарсился - возможно невалидный, но не блокируем
pass pass
return value return value
def validate_bind_address(value: str) -> str: def validate_bind_address(value: str) -> str:
"""Валидировать адрес для привязки (--my-server). """Валидировать адрес для привязки (--my-server).
Args: Args:
value: IP-адрес для проверки value: IP-адрес для проверки
Returns: Returns:
Оригинальное значение если валидно Оригинальное значение если валидно
Raises: Raises:
typer.BadParameter: Если адрес невалиден typer.BadParameter: Если адрес невалиден
""" """
try: try:
ipaddress.ip_address(value) ipaddress.ip_address(value)
except ValueError: except ValueError:
raise typer.BadParameter( raise typer.BadParameter(f"'{value}' is not a valid IP address for --my-server")
f"'{value}' is not a valid IP address for --my-server"
)
return value return value
def validate_port(value: int) -> int: def validate_port(value: int) -> int:
"""Валидировать номер порта. """Валидировать номер порта.
Args: Args:
value: Номер порта value: Номер порта
Returns: Returns:
Номер порта если валиден Номер порта если валиден
Raises: Raises:
typer.BadParameter: Если порт вне диапазона typer.BadParameter: Если порт вне диапазона
""" """
if not (1 <= value <= 65535): if not (1 <= value <= 65535):
raise typer.BadParameter( raise typer.BadParameter(f"Port {value} must be between 1 and 65535")
f"Port {value} must be between 1 and 65535"
)
return value return value