From 13778315dbff4ec29d492fe97728b813836ca728 Mon Sep 17 00:00:00 2001 From: Rupayon Haldar <80724680+rupayon123@users.noreply.github.com> Date: Wed, 28 Oct 2026 09:49:50 -0400 Subject: [PATCH] Accept float defaults in to_float type annotation --- _python_utils_tests/test_converters.py | 10 ++++++++++ python_utils/converters.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/_python_utils_tests/test_converters.py b/_python_utils_tests/test_converters.py index 9ad4dc9..2d6c8e0 100644 --- a/_python_utils_tests/test_converters.py +++ b/_python_utils_tests/test_converters.py @@ -37,3 +37,13 @@ def test_scale_1024_small_number(value: float) -> None: def test_scale_1024_without_prefixes(n_prefixes: int) -> None: """Never return a negative power when there are no prefixes.""" assert converters.scale_1024(2048, n_prefixes) == (2048.0, 0) + + +@pytest.mark.parametrize('default', [0.0, -1.25]) +def test_to_float_float_default(default: float) -> None: + """Accept the documented float fallback in typed consumer code.""" + assert converters.to_float('missing', default=default) is default + assert ( + converters.to_float('missing', default=default, regexp=True) is default + ) + assert converters.to_float('1.5', default=default) == 1.5 diff --git a/python_utils/converters.py b/python_utils/converters.py index 2206459..35340de 100644 --- a/python_utils/converters.py +++ b/python_utils/converters.py @@ -139,7 +139,7 @@ def to_int( def to_float( input_: str, - default: int = 0, + default: _aliases.Number = 0, exception: _aliases.ExceptionsType = (ValueError, TypeError), regexp: _RegexpType = None, ) -> _aliases.Number: