2828import numpy as np
2929import xgboost as xgb
3030import unittest
31- from distutils .version import LooseVersion
31+ from packaging .version import Version
3232
3333# import io
3434# from contextlib import redirect_stdout, redirect_stderr
4343 RayXGBRFClassifier , RayXGBRFRegressor ,
4444 RayXGBRanker )
4545
46- from xgboost_ray .main import (XGBOOST_LOOSE_VERSION , RayDMatrix , RayParams ,
47- train , predict )
46+ from xgboost_ray .main import (XGBOOST_VERSION , RayDMatrix , RayParams , train ,
47+ predict )
4848from xgboost_ray .matrix import RayShardingMode
4949
5050
@@ -135,7 +135,7 @@ def test_binary_classification_dmatrix_params(self):
135135 ray_dmatrix_params = {"sharding" : RayShardingMode .BATCH })
136136
137137 # ray: added for legacy CI test
138- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.0.0" ),
138+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.0.0" ),
139139 f"not supported in xgb version { xgb .__version__ } " )
140140 def test_binary_rf_classification (self ):
141141 self .run_binary_classification (RayXGBRFClassifier )
@@ -194,7 +194,7 @@ def check_pred(preds, labels, output_margin):
194194 assert proba .shape [0 ] == X .shape [0 ]
195195 assert proba .shape [1 ] == cls .n_classes_
196196
197- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.4.0" ),
197+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.4.0" ),
198198 f"not supported in xgb version { xgb .__version__ } " )
199199 def test_best_ntree_limit (self ):
200200 self ._init_ray ()
@@ -307,13 +307,13 @@ def test_num_parallel_tree(self):
307307 dump = bst .get_booster ().get_dump (dump_format = "json" )
308308 assert len (dump ) == 16
309309
310- if XGBOOST_LOOSE_VERSION != LooseVersion ("0.90" ):
310+ if XGBOOST_VERSION != Version ("0.90" ):
311311 reg = RayXGBRFRegressor (n_estimators = 4 )
312312 bst = reg .fit (X = boston ["data" ], y = boston ["target" ])
313313 dump = bst .get_booster ().get_dump (dump_format = "json" )
314314 assert len (dump ) == 4
315315
316- if XGBOOST_LOOSE_VERSION >= LooseVersion ("1.6.0" ):
316+ if XGBOOST_VERSION >= Version ("1.6.0" ):
317317 config = json .loads (bst .get_booster ().save_config ())
318318 assert (int (config ["learner" ]["gradient_booster" ][
319319 "gbtree_model_param" ]["num_parallel_tree" ]) == 4 )
@@ -351,7 +351,7 @@ def test_boston_housing_regression(self):
351351 assert mean_squared_error (preds3 , labels ) < 25
352352 assert mean_squared_error (preds4 , labels ) < 350
353353
354- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.0.0" ),
354+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.0.0" ),
355355 f"not supported in xgb version { xgb .__version__ } " )
356356 def run_boston_housing_rf_regression (self , tree_method ):
357357 from sklearn .metrics import mean_squared_error
@@ -523,7 +523,7 @@ def test_sklearn_api_gblinear(self):
523523 if p != l ]) * 1.0 / len (te_l ))
524524 assert err < 0.5
525525
526- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.0.0" ),
526+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.0.0" ),
527527 f"not supported in xgb version { xgb .__version__ } " )
528528 def test_sklearn_random_state (self ):
529529 self ._init_ray ()
@@ -538,7 +538,7 @@ def test_sklearn_random_state(self):
538538 clf = RayXGBClassifier (random_state = random_state )
539539 assert isinstance (clf .get_xgb_params ()["random_state" ], int )
540540
541- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.0.0" ),
541+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.0.0" ),
542542 f"not supported in xgb version { xgb .__version__ } " )
543543 def test_sklearn_n_jobs (self ):
544544 self ._init_ray ()
@@ -549,7 +549,7 @@ def test_sklearn_n_jobs(self):
549549 clf = RayXGBClassifier (n_jobs = 2 )
550550 assert clf .get_xgb_params ()["n_jobs" ] == 2
551551
552- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.3.0" ),
552+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.3.0" ),
553553 f"not supported in xgb version { xgb .__version__ } " )
554554 def test_parameters_access (self ):
555555 self ._init_ray ()
@@ -615,7 +615,7 @@ def test_sklearn_clone(self):
615615 clf .n_jobs = - 1
616616 clone (clf )
617617
618- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.0.0" ),
618+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.0.0" ),
619619 f"not supported in xgb version { xgb .__version__ } " )
620620 def test_sklearn_get_default_params (self ):
621621 self ._init_ray ()
@@ -630,7 +630,7 @@ def test_sklearn_get_default_params(self):
630630 cls .fit (X [:4 , ...], y [:4 , ...])
631631 assert cls .get_params ()["base_score" ] is not None
632632
633- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.1.0" ),
633+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.1.0" ),
634634 f"not supported in xgb version { xgb .__version__ } " )
635635 def test_validation_weights_xgbmodel (self ):
636636 self ._init_ray ()
@@ -802,7 +802,7 @@ def save_load_model(self, model_path):
802802 xgb_model = xgb .XGBModel ()
803803 xgb_model .load_model (model_path )
804804
805- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.3.0" ),
805+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.3.0" ),
806806 f"not supported in xgb version { xgb .__version__ } " )
807807 def test_save_load_model (self ):
808808 self ._init_ray ()
@@ -956,7 +956,7 @@ def test_XGBClassifier_resume(self):
956956 assert np .any (pred1 != pred2 )
957957 assert log_loss1 > log_loss2
958958
959- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.0.0" ),
959+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.0.0" ),
960960 f"not supported in xgb version { xgb .__version__ } " )
961961 def test_constraint_parameters (self ):
962962 self ._init_ray ()
@@ -967,7 +967,7 @@ def test_constraint_parameters(self):
967967 reg .fit (X , y )
968968
969969 config = json .loads (reg .get_booster ().save_config ())
970- if XGBOOST_LOOSE_VERSION >= LooseVersion ("1.6.0" ):
970+ if XGBOOST_VERSION >= Version ("1.6.0" ):
971971 assert (config ["learner" ]["gradient_booster" ]["updater" ][
972972 "grow_histmaker" ]["train_param" ]["interaction_constraints" ] ==
973973 "[[0, 1], [2, 3, 4]]" )
@@ -1176,12 +1176,12 @@ def boost_from_prediction(self, tree_method):
11761176
11771177 self .run_boost_from_prediction (tree_method )
11781178
1179- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.0.0" ),
1179+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.0.0" ),
11801180 f"not supported in xgb version { xgb .__version__ } " )
11811181 def test_boost_from_prediction_hist (self ):
11821182 self .run_boost_from_prediction ("hist" )
11831183
1184- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.2.0" ),
1184+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.2.0" ),
11851185 f"not supported in xgb version { xgb .__version__ } " )
11861186 def test_boost_from_prediction_approx (self ):
11871187 self .run_boost_from_prediction ("approx" )
@@ -1192,7 +1192,7 @@ def test_boost_from_prediction_exact(self):
11921192 with self .assertRaises (ValueError ):
11931193 self .run_boost_from_prediction ("exact" )
11941194
1195- @unittest .skipIf (XGBOOST_LOOSE_VERSION < LooseVersion ("1.4.0" ),
1195+ @unittest .skipIf (XGBOOST_VERSION < Version ("1.4.0" ),
11961196 f"not supported in xgb version { xgb .__version__ } " )
11971197 def test_estimator_type (self ):
11981198 self ._init_ray ()
0 commit comments