Przeglądaj źródła

Remove the upper version constraint for pandas (#4122)

* Remove the upper limit of pandas version

* Accommodate old pandas version

* Trigger
Lin Manhui 5 miesięcy temu
rodzic
commit
e062337da4
3 zmienionych plików z 22 dodań i 11 usunięć
  1. 19 8
      paddlex/inference/models/common/ts/funcs.py
  2. 2 2
      paddlex/utils/deps.py
  3. 1 1
      setup.py

+ 19 - 8
paddlex/inference/models/common/ts/funcs.py

@@ -17,10 +17,11 @@ from typing import Callable, Dict, List, Optional, Union
 
 import numpy as np
 import pandas as pd
+from packaging.version import Version
 from pandas.tseries import holiday as hd
 from pandas.tseries.offsets import DateOffset, Day, Easter
 
-from .....utils.deps import function_requires_deps, is_dep_available
+from .....utils.deps import function_requires_deps, get_dep_version, is_dep_available
 
 if is_dep_available("chinese-calendar"):
     import chinese_calendar
@@ -496,13 +497,23 @@ def time_feature(
     # Extend the time series if no known_cov_numeric
     if not kcov:
         freq = freq if freq is not None else pd.infer_freq(tf_kcov[time_col])
-        extend_time = pd.date_range(
-            start=tf_kcov[time_col][-1],
-            freq=freq,
-            periods=extend_points + 1,
-            closed="right",
-            name=time_col,
-        ).to_frame()
+        pd_version = get_dep_version("pandas")
+        if Version(pd_version) >= Version("1.4"):
+            extend_time = pd.date_range(
+                start=tf_kcov[time_col][-1],
+                freq=freq,
+                periods=extend_points + 1,
+                inclusive="right",
+                name=time_col,
+            ).to_frame()
+        else:
+            extend_time = pd.date_range(
+                start=tf_kcov[time_col][-1],
+                freq=freq,
+                periods=extend_points + 1,
+                closed="right",
+                name=time_col,
+            ).to_frame()
         tf_kcov = pd.concat([tf_kcov, extend_time])
 
     # Extract and add time features to known_cov_numeric

+ 2 - 2
paddlex/utils/deps.py

@@ -73,7 +73,7 @@ def _get_dep_specs():
 DEP_SPECS = _get_dep_specs()
 
 
-def _get_dep_version(dep):
+def get_dep_version(dep):
     try:
         return importlib.metadata.version(dep)
     except importlib.metadata.PackageNotFoundError:
@@ -101,7 +101,7 @@ def is_dep_available(dep, /, check_version=None):
             check_version = True
         else:
             check_version = False
-    version = _get_dep_version(dep)
+    version = get_dep_version(dep)
     if version is None:
         return False
     if check_version:

+ 1 - 1
setup.py

@@ -51,7 +51,7 @@ DEP_SPECS = {
     "opencv-contrib-python": "== 4.10.0.84",
     "openpyxl": "",
     "packaging": "",
-    "pandas": "<= 1.5.3",
+    "pandas": ">= 1.3",
     "pillow": "",
     "premailer": "",
     "prettytable": "",