Skip to content
This repository was archived by the owner on Jan 12, 2026. It is now read-only.

Commit f16521a

Browse files
authored
Fix modin import with mismatched pandas version (#267)
* Fix modin import with mismatched pandas version Signed-off-by: Antoni Baum <antoni.baum@protonmail.com> * Fix Signed-off-by: Antoni Baum <antoni.baum@protonmail.com> * Lint Signed-off-by: Antoni Baum <antoni.baum@protonmail.com> --------- Signed-off-by: Antoni Baum <antoni.baum@protonmail.com>
1 parent dcdc4b7 commit f16521a

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

xgboost_ray/data_sources/modin.py

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@
1616
import modin # noqa: F401
1717
from modin.config.envvars import Engine
1818
from packaging.version import Version
19+
from modin.pandas import ( # noqa: F401
20+
DataFrame as ModinDataFrame, # noqa: F401
21+
Series as ModinSeries # noqa: F401
22+
)
23+
from modin.distributed.dataframe.pandas import ( # noqa: F401
24+
unwrap_partitions # noqa: F401
25+
)
1926
MODIN_INSTALLED = Version(modin.__version__) >= Version("0.9.0")
2027

2128
# Check if importing the Ray engine leads to errors
@@ -29,8 +36,11 @@ def _assert_modin_installed():
2936
if not MODIN_INSTALLED:
3037
raise RuntimeError(
3138
"Tried to use Modin as a data source, but modin is not "
32-
"installed. This function shouldn't have been called. "
33-
"\nFIX THIS by installing modin: `pip install modin`. "
39+
"installed or it conflicts with the pandas version. "
40+
"This function shouldn't have been called. "
41+
"\nFIX THIS by installing modin: `pip install modin` "
42+
"and making sure that the installed pandas version is "
43+
"supported by modin."
3444
"\nPlease also raise an issue on our GitHub: "
3545
"https://github.com/ray-project/xgboost_ray as this part of "
3646
"the code should not have been reached.")
@@ -53,8 +63,11 @@ def is_data_type(data: Any,
5363
filetype: Optional[RayFileType] = None) -> bool:
5464
if not MODIN_INSTALLED:
5565
return False
56-
from modin.pandas import DataFrame as ModinDataFrame, \
57-
Series as ModinSeries
66+
# Has to be imported again.
67+
from modin.pandas import ( # noqa: F811
68+
DataFrame as ModinDataFrame, # noqa: F811
69+
Series as ModinSeries # noqa: F811
70+
)
5871

5972
return isinstance(data, (ModinDataFrame, ModinSeries))
6073

@@ -87,8 +100,11 @@ def load_data(
87100
@staticmethod
88101
def convert_to_series(data: Any) -> pd.Series:
89102
_assert_modin_installed()
90-
from modin.pandas import DataFrame as ModinDataFrame, \
91-
Series as ModinSeries
103+
# Has to be imported again.
104+
from modin.pandas import ( # noqa: F811
105+
DataFrame as ModinDataFrame, # noqa: F811
106+
Series as ModinSeries # noqa: F811
107+
)
92108

93109
if isinstance(data, ModinDataFrame):
94110
return pd.Series(data._to_pandas().squeeze())
@@ -104,7 +120,10 @@ def get_actor_shards(
104120
Tuple[Any, Optional[Dict[int, Any]]]:
105121
_assert_modin_installed()
106122

107-
from modin.distributed.dataframe.pandas import unwrap_partitions
123+
# Has to be imported again.
124+
from modin.distributed.dataframe.pandas import ( # noqa: F811
125+
unwrap_partitions # noqa: F811
126+
)
108127

109128
actor_rank_ips = get_actor_rank_ips(actors)
110129

0 commit comments

Comments
 (0)