21 lines
511 B
Python
21 lines
511 B
Python
from __future__ import annotations
|
|
|
|
import math
|
|
from typing import Any
|
|
|
|
|
|
def finite_number(value: Any, default: float = 0.0) -> float:
|
|
try:
|
|
number = float(value)
|
|
return number if math.isfinite(number) else default
|
|
except (TypeError, ValueError):
|
|
return default
|
|
|
|
|
|
def non_nan_number(value: Any, default: float = 0.0) -> float:
|
|
try:
|
|
number = float(value)
|
|
return number if number == number else default
|
|
except (TypeError, ValueError):
|
|
return default
|