From 2c603f6dee85052060fa5a491976da0e8051d014 Mon Sep 17 00:00:00 2001 From: "Terence D. Honles" Date: Tue, 23 Sep 2025 12:58:46 +0200 Subject: [PATCH 1/3] fix: fix DataFrame.from_records with data as an iterator --- pandas-stubs/core/frame.pyi | 4 ++-- tests/test_frame.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/pandas-stubs/core/frame.pyi b/pandas-stubs/core/frame.pyi index 27fb80f45..d073b80fc 100644 --- a/pandas-stubs/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -544,8 +544,8 @@ class DataFrame(NDFrame, OpsMixin, _GetItemHack): cls, data: ( np_2darray - | Sequence[SequenceNotStr] - | Sequence[Mapping[str, Any]] + | Iterator[SequenceNotStr] + | Iterator[Mapping[str, Any]] | Mapping[str, Any] | Mapping[str, SequenceNotStr[Any]] ), diff --git a/tests/test_frame.py b/tests/test_frame.py index e16a973fd..315c8b10c 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -4710,6 +4710,15 @@ def test_from_records() -> None: pd.DataFrame, ) + # testing with an iterator of tuples + check( + assert_type( + pd.DataFrame.from_records(iter(data_tuples), columns=["id", "name"]), + pd.DataFrame, + ), + pd.DataFrame, + ) + # testing with pd.Index as columns parameter check( assert_type( @@ -4739,6 +4748,15 @@ def test_from_records() -> None: pd.DataFrame, ) + # test with an iterator of dictionaries + check( + assert_type( + pd.DataFrame.from_records(iter(data_dict_list), columns=["id", "name"]), + pd.DataFrame, + ), + pd.DataFrame, + ) + # test with single dictionary data_single_dict = {"id": 1, "name": "a"} check( From 2c145f587536052b045d1807036988619ec7107f Mon Sep 17 00:00:00 2001 From: Loic Diridollou Date: Tue, 11 Nov 2025 14:06:12 -0500 Subject: [PATCH 2/3] Remove tuple-based DataFrame test case (duplicate) Removed test case for list of tuples in DataFrame assertions. --- tests/test_frame.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tests/test_frame.py b/tests/test_frame.py index 315c8b10c..3f5574065 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -4728,16 +4728,6 @@ def test_from_records() -> None: pd.DataFrame, ) - # Testing with list of tuples (instead of structured array for type compatibility) - data_array_tuples = [(1, "a"), (2, "b")] - check( - assert_type( - pd.DataFrame.from_records(data_array_tuples, columns=["id", "name"]), - pd.DataFrame, - ), - pd.DataFrame, - ) - # testing with list of dictionaries data_dict_list = [{"id": 1, "name": "a"}, {"id": 2, "name": "b"}] check( From aef081f735a1851271f565495aa92d2c7ff92ae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Diridollou?= Date: Tue, 11 Nov 2025 14:35:39 -0500 Subject: [PATCH 3/3] Fix ty --- pandas-stubs/core/frame.pyi | 2 ++ pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pandas-stubs/core/frame.pyi b/pandas-stubs/core/frame.pyi index cd198d5e7..a05b0458a 100644 --- a/pandas-stubs/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -547,6 +547,8 @@ class DataFrame(NDFrame, OpsMixin, _GetItemHack): cls, data: ( np_2darray + | Sequence[SequenceNotStr] + | Sequence[Mapping[str, Any]] | Iterator[SequenceNotStr] | Iterator[Mapping[str, Any]] | Mapping[str, Any] diff --git a/pyproject.toml b/pyproject.toml index fa9ac2b70..54771f994 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,7 +42,7 @@ pandas = "2.3.3" pyarrow = ">=10.0.1" pytest = ">=8.4.2" pyright = ">=1.1.407" -ty = ">=0.0.1a24" +ty = "0.0.1a25" pyrefly = ">=0.38.2" poethepoet = ">=0.16.5" loguru = ">=0.6.0"