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"])