from __future__ import annotations import math from typing import Any PONTO_RAIO_MIN_PADRAO = 3.0 PONTO_RAIO_MAX_PADRAO = 18.0 PONTO_RAIO_MIN_LIMITE = 1.0 PONTO_RAIO_MAX_LIMITE = 64.0 def _normalizar_numero(value: Any, fallback: float) -> float: try: number = float(value) except (TypeError, ValueError): return float(fallback) if not math.isfinite(number): return float(fallback) return float(number) def normalizar_faixa_raio_pontos( raio_min: Any = None, raio_max: Any = None, ) -> tuple[float, float]: min_norm = _normalizar_numero(raio_min, PONTO_RAIO_MIN_PADRAO) max_norm = _normalizar_numero(raio_max, PONTO_RAIO_MAX_PADRAO) min_norm = min(max(min_norm, PONTO_RAIO_MIN_LIMITE), PONTO_RAIO_MAX_LIMITE) max_norm = min(max(max_norm, PONTO_RAIO_MIN_LIMITE), PONTO_RAIO_MAX_LIMITE) if min_norm > max_norm: min_norm, max_norm = max_norm, min_norm return float(min_norm), float(max_norm)