This is an automated email from the ASF dual-hosted git repository.

ColinLeeo pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git


The following commit(s) were added to refs/heads/develop by this push:
     new 27655ab77 Fix/relax pyarrow constraint (#922)
27655ab77 is described below

commit 27655ab772910a9f4237f913c71a4c882bbb2c62
Author: Colin Lee <[email protected]>
AuthorDate: Wed Aug 26 22:20:13 2026 +0800

    Fix/relax pyarrow constraint (#922)
    
    * fix(python): relax pyarrow version constraints
    
    * fix(python): align numpy and pandas constraints
---
 python/pyproject.toml          | 20 +++++++++++++-------
 python/requirements.txt        | 14 ++++++++++----
 python/tests/test_dataframe.py | 10 ++++++++--
 python/tests/test_to_tsfile.py | 10 ++++++++--
 4 files changed, 39 insertions(+), 15 deletions(-)

diff --git a/python/pyproject.toml b/python/pyproject.toml
index c2a753bb5..8cd7d00c0 100644
--- a/python/pyproject.toml
+++ b/python/pyproject.toml
@@ -21,7 +21,9 @@ requires = [
     "setuptools>=69",
     "wheel", 
     "Cython>=3", 
-    "numpy>=1.26.4,<3"
+    "numpy>=1.26.4; python_version<'3.13'",
+    "numpy>=2.1.0; python_version>='3.13' and python_version<'3.14'",
+    "numpy>=2.3.2; python_version>='3.14'"
     ]
 
 build-backend = "setuptools.build_meta"
@@ -36,12 +38,16 @@ maintainers = [
     {name = "Apache TsFile Developers", email = "[email protected]"}
 ]
 dependencies = [
-    "numpy>=1.26.4,<3",
-    "pandas>=2.0,<2.3; python_version < '3.13'",
-    "pandas>=2.3.3; python_version >= '3.13'",
-    "pyarrow>=16.0,<18; python_version<'3.10'",
-    "pyarrow>=18.0,<20; python_version>='3.10' and python_version<'3.14'",
-    "pyarrow>=22.0,<24; python_version>='3.14'"
+    "numpy>=1.26.4; python_version<'3.13'",
+    "numpy>=2.1.0; python_version>='3.13' and python_version<'3.14'",
+    "numpy>=2.3.2; python_version>='3.14'",
+    "pandas>=2.0.0; python_version<'3.12'",
+    "pandas>=2.1.1; python_version>='3.12' and python_version<'3.13'",
+    "pandas>=2.2.3; python_version>='3.13' and python_version<'3.14'",
+    "pandas>=2.3.3; python_version>='3.14'",
+    "pyarrow>=16.0; python_version<'3.13'",
+    "pyarrow>=18.0; python_version>='3.13' and python_version<'3.14'",
+    "pyarrow>=22.0; python_version>='3.14'"
 ]
 
 [project.urls]
diff --git a/python/requirements.txt b/python/requirements.txt
index a45f49ca7..86398a3eb 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -20,9 +20,15 @@
 cython==3.0.10
 black==25.11.0; python_version < "3.10"
 black==26.3.1; python_version >= "3.10"
-numpy>=1.26.4,<3
-pandas==2.2.2; python_version < "3.13"
-pandas>=2.3.3; python_version >= "3.13"
+numpy>=1.26.4; python_version < "3.13"
+numpy>=2.1.0; python_version >= "3.13" and python_version < "3.14"
+numpy>=2.3.2; python_version >= "3.14"
+pandas>=2.0.0; python_version < "3.12"
+pandas>=2.1.1; python_version >= "3.12" and python_version < "3.13"
+pandas>=2.2.3; python_version >= "3.13" and python_version < "3.14"
+pandas>=2.3.3; python_version >= "3.14"
 setuptools==78.1.1
 wheel==0.46.2
-pyarrow>=8.0.0
+pyarrow>=16.0; python_version < "3.13"
+pyarrow>=18.0; python_version >= "3.13" and python_version < "3.14"
+pyarrow>=22.0; python_version >= "3.14"
diff --git a/python/tests/test_dataframe.py b/python/tests/test_dataframe.py
index aecaa877c..7eb110c90 100644
--- a/python/tests/test_dataframe.py
+++ b/python/tests/test_dataframe.py
@@ -285,8 +285,14 @@ def test_write_dataframe_all_datatypes():
         assert df_read["bool_col"].equals(df_sorted["bool_col"])
         assert df_read["int32_col"].equals(df_sorted["int32_col"])
         assert df_read["int64_col"].equals(df_sorted["int64_col"])
-        assert np.allclose(df_read["float_col"], df_sorted["float_col"])
-        assert np.allclose(df_read["double_col"], df_sorted["double_col"])
+        assert np.allclose(
+            df_read["float_col"].to_numpy(dtype=np.float32, na_value=np.nan),
+            df_sorted["float_col"].to_numpy(dtype=np.float32, na_value=np.nan),
+        )
+        assert np.allclose(
+            df_read["double_col"].to_numpy(dtype=np.float64, na_value=np.nan),
+            df_sorted["double_col"].to_numpy(dtype=np.float64, 
na_value=np.nan),
+        )
         assert df_read["string_col"].equals(df_sorted["string_col"])
         assert df_read["blob_col"].equals(df_sorted["blob_col"])
         assert df_read["text_col"].equals(df_sorted["text_col"])
diff --git a/python/tests/test_to_tsfile.py b/python/tests/test_to_tsfile.py
index 147b0bea8..d7f00801d 100644
--- a/python/tests/test_to_tsfile.py
+++ b/python/tests/test_to_tsfile.py
@@ -299,8 +299,14 @@ def test_dataframe_to_tsfile_all_datatypes():
         assert df_read["bool_col"].equals(df_sorted["bool_col"])
         assert df_read["int32_col"].equals(df_sorted["int32_col"])
         assert df_read["int64_col"].equals(df_sorted["int64_col"])
-        assert np.allclose(df_read["float_col"], df_sorted["float_col"])
-        assert np.allclose(df_read["double_col"], df_sorted["double_col"])
+        assert np.allclose(
+            df_read["float_col"].to_numpy(dtype=np.float32, na_value=np.nan),
+            df_sorted["float_col"].to_numpy(dtype=np.float32, na_value=np.nan),
+        )
+        assert np.allclose(
+            df_read["double_col"].to_numpy(dtype=np.float64, na_value=np.nan),
+            df_sorted["double_col"].to_numpy(dtype=np.float64, 
na_value=np.nan),
+        )
         assert df_read["string_col"].equals(df_sorted["string_col"])
         assert df_read["text_col"].equals(df_sorted["text_col"])
         assert df_read["date_col"].equals(df_sorted["date_col"])

Reply via email to