From 5e530360e2eeba00c5673dc274e5f3b9ebcf3683 Mon Sep 17 00:00:00 2001 From: Carlos Adir Date: Mon, 4 Aug 2025 20:37:18 +0200 Subject: [PATCH 1/2] feat: correct transform string to integer or fraction --- src/rbool/numbs.py | 11 +++++++++++ tests/test_numbers.py | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/src/rbool/numbs.py b/src/rbool/numbs.py index 6802777..40bc2a9 100644 --- a/src/rbool/numbs.py +++ b/src/rbool/numbs.py @@ -64,6 +64,17 @@ def real(number: Any) -> Real: """ if isinstance(number, Real): return number + if isinstance(number, str): + if "/" in number: + parts = tuple(map(To.real, number.split("/"))) + number = To.rational(parts[0], 1) + for denom in parts[1:]: + number /= denom + return To.real(number) + try: + return To.integer(number) + except ValueError: + pass return float(number) @staticmethod diff --git a/tests/test_numbers.py b/tests/test_numbers.py index 1fad6e3..ab774fc 100644 --- a/tests/test_numbers.py +++ b/tests/test_numbers.py @@ -30,6 +30,12 @@ def test_to(): with pytest.raises(ValueError): To.finite("inf") + assert To.real("1") == 1 + assert isinstance(To.real("1"), int) + assert isinstance(To.real("-3"), int) + + assert To.real("1/3") == To.rational(1, 3) + @pytest.mark.order(1) @pytest.mark.timeout(1) From 1d2da9ed0e247635308c182eb537bbc4be9b6ada Mon Sep 17 00:00:00 2001 From: Carlos Adir Date: Mon, 4 Aug 2025 20:37:28 +0200 Subject: [PATCH 2/2] dev: increase version to 0.0.3 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 24465d3..17f29fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "rbool" -version = "0.0.2" +version = "0.0.3" description = "1D boolean operations" authors = ["Carlos Adir "] readme = "README.md"