From 06ea6c7e797e82a48cc280026337e6f015daf935 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 14 Dec 2022 04:32:02 -0600 Subject: [PATCH] [python] remove unnecessary conversions between data structures (#8546) Co-authored-by: Jiaming Yuan --- python-package/setup.py | 3 +-- python-package/xgboost/core.py | 3 +-- python-package/xgboost/tracker.py | 4 ++-- python-package/xgboost/training.py | 3 +-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/python-package/setup.py b/python-package/setup.py index 7e4bb7f7d..9cb8c9154 100644 --- a/python-package/setup.py +++ b/python-package/setup.py @@ -279,8 +279,7 @@ class Install(install.install): # pylint: disable=too-many-instance-attributes arguments. ''' - user_options = install.install.user_options + list( - (k, v[0], v[1]) for k, v in USER_OPTIONS.items()) + user_options = install.install.user_options + [(k, v[0], v[1]) for k, v in USER_OPTIONS.items()] def initialize_options(self) -> None: super().initialize_options() diff --git a/python-package/xgboost/core.py b/python-package/xgboost/core.py index 14558b036..c28f8849a 100644 --- a/python-package/xgboost/core.py +++ b/python-package/xgboost/core.py @@ -1160,7 +1160,7 @@ class DMatrix: # pylint: disable=too-many-instance-attributes,too-many-public-m raise ValueError(msg) # prohibit to use symbols may affect to parse. e.g. []< if not all(isinstance(f, str) and - not any(x in f for x in set(('[', ']', '<'))) + not any(x in f for x in ['[', ']', '<']) for f in feature_names): raise ValueError('feature_names must be string, and may not contain [, ] or <') feature_names_bytes = [bytes(f, encoding='utf-8') for f in feature_names] @@ -1508,7 +1508,6 @@ def _configure_metrics(params: BoosterParam) -> BoosterParam: and "eval_metric" in params and isinstance(params["eval_metric"], list) ): - params = dict((k, v) for k, v in params.items()) eval_metrics = params["eval_metric"] params.pop("eval_metric", None) params_list = list(params.items()) diff --git a/python-package/xgboost/tracker.py b/python-package/xgboost/tracker.py index bc179a674..eb0a11dd5 100644 --- a/python-package/xgboost/tracker.py +++ b/python-package/xgboost/tracker.py @@ -141,7 +141,7 @@ class WorkerEntry: ) -> List[int]: while True: ngood = self.sock.recvint() - goodset = set([]) + goodset = set() for _ in range(ngood): goodset.add(self.sock.recvint()) assert goodset.issubset(nnset) @@ -255,7 +255,7 @@ class RabitTracker: return a list starting from rank """ nset = set(tree_map[rank]) - cset = nset - set([parent_map[rank]]) + cset = nset - {parent_map[rank]} if not cset: return [rank] rlst = [rank] diff --git a/python-package/xgboost/training.py b/python-package/xgboost/training.py index 88ffa888c..5bec6a041 100644 --- a/python-package/xgboost/training.py +++ b/python-package/xgboost/training.py @@ -509,13 +509,12 @@ def cv( if isinstance(metrics, str): metrics = [metrics] + params = params.copy() if isinstance(params, list): _metrics = [x[1] for x in params if x[0] == 'eval_metric'] params = dict(params) if 'eval_metric' in params: params['eval_metric'] = _metrics - else: - params = dict((k, v) for k, v in params.items()) if (not metrics) and 'eval_metric' in params: if isinstance(params['eval_metric'], list):