diff --git a/clearml/backend_api/session/session.py b/clearml/backend_api/session/session.py index 54f2b88a..b70027d8 100644 --- a/clearml/backend_api/session/session.py +++ b/clearml/backend_api/session/session.py @@ -156,6 +156,19 @@ class Session(TokenManager): self._connect() + @classmethod + def add_client(cls, client, value, first=True): + # noinspection PyBroadException + try: + if not any(True for c in cls._client if c[0] == client): + if first: + cls._client.insert(0, (client, value)) + else: + cls._client.append((client, value)) + cls.client = ", ".join("{}-{}".format(*x) for x in cls._client) + except Exception: + pass + def _connect(self): if self._offline_mode: return @@ -219,8 +232,7 @@ class Session(TokenManager): if not api_version: api_version = '2.2' if token_dict.get('env', '') == 'prod' else Session.api_version if token_dict.get('server_version'): - if not any(True for c in Session._client if c[0] == 'clearml-server'): - Session._client.append(('clearml-server', token_dict.get('server_version'), )) + self.add_client('clearml-server', token_dict.get('server_version')) Session.max_api_version = Session.api_version = str(api_version) Session.feature_set = str(token_dict.get('feature_set', self.feature_set) or "basic") diff --git a/clearml/cli/data/__main__.py b/clearml/cli/data/__main__.py index 202b98d5..2d6bf82f 100644 --- a/clearml/cli/data/__main__.py +++ b/clearml/cli/data/__main__.py @@ -7,7 +7,11 @@ from typing import Sequence from pathlib2 import Path +import clearml.backend_api.session from clearml.datasets import Dataset +from clearml.version import __version__ + +clearml.backend_api.session.Session.add_client("clearml-data", __version__) def check_null_id(args): diff --git a/clearml/cli/hpo/__main__.py b/clearml/cli/hpo/__main__.py index 56a87d08..97d0506a 100644 --- a/clearml/cli/hpo/__main__.py +++ b/clearml/cli/hpo/__main__.py @@ -1,7 +1,9 @@ -import sys import json +import sys from argparse import ArgumentParser, RawTextHelpFormatter +import clearml.backend_api.session +from clearml import Task from clearml.automation import ( DiscreteParameterRange, UniformIntegerParameterRange, @@ -11,8 +13,11 @@ from clearml.automation import ( RandomSearch, GridSearch, ) -from clearml import Task from clearml.backend_interface.task.populate import CreateAndPopulate +from clearml.version import __version__ + +clearml.backend_api.session.Session.add_client("clearml-param-search", __version__) + try: from clearml.automation.optuna import OptimizerOptuna # noqa diff --git a/clearml/cli/task/__main__.py b/clearml/cli/task/__main__.py index 4e807fb2..50829582 100644 --- a/clearml/cli/task/__main__.py +++ b/clearml/cli/task/__main__.py @@ -3,9 +3,12 @@ from argparse import ArgumentParser from pathlib2 import Path +import clearml.backend_api.session from clearml import Task -from clearml.version import __version__ from clearml.backend_interface.task.populate import CreateAndPopulate +from clearml.version import __version__ + +clearml.backend_api.session.Session.add_client("clearml-task", __version__) def setup_parser(parser):