Files
Click/utils/helpers.py
T
Yuriy Yuriev 858d40d923 fix format
2026-05-22 19:49:54 +07:00

46 lines
1.7 KiB
Python

"""Utility helper functions."""
def fmt_price(price: float) -> str:
"""Форматирует цену: убирает лишние нули (1.4 → '1.4', 2.0 → '2')."""
return f"{price:g}"
def parse_range(value: str, default_min: int = 5) -> tuple:
"""Парсит строку диапазона 'мин-макс' или одиночное число."""
# Очищаем от кавычек и пробелов
value = str(value).replace("'", "").replace('"', "").replace("`", "").strip()
if '-' in value:
parts = value.split('-')
if len(parts) != 2:
raise ValueError(f"Неверный формат: {value}. Пример: 10-30")
try:
min_val = int(parts[0].strip())
max_val = int(parts[1].strip())
except ValueError:
raise ValueError(f"Не числа: {value}. Пример: 10-30")
if min_val < default_min:
raise ValueError(f"Минимум: {default_min}")
if min_val >= max_val:
raise ValueError("Мин должно быть меньше макс")
return min_val, max_val
else:
try:
val = int(value)
except ValueError:
raise ValueError(f"Не число: {value}")
if val < default_min:
raise ValueError(f"Минимум: {default_min}")
return val, val
def format_range(min_val: int, max_val: int) -> str:
"""Format range for display."""
return f"{min_val}-{max_val}" if min_val != max_val else str(min_val)
def extract_domain(url: str) -> str:
"""Extract domain from URL."""
return url.replace("https://", "").replace("http://", "").split("/")[0]