diff --git a/clearml/backend_interface/task/task.py b/clearml/backend_interface/task/task.py index 444c1133..634811b9 100644 --- a/clearml/backend_interface/task/task.py +++ b/clearml/backend_interface/task/task.py @@ -2133,3 +2133,19 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin): :return: boolean offline-mode state """ return cls._offline_mode + + @classmethod + def _get_task_status(cls, task_id): + # type: (str) -> (Optional[str], Optional[str]) + if cls._offline_mode: + return tasks.TaskStatusEnum.created, 'offline' + + # noinspection PyBroadException + try: + all_tasks = cls._get_default_session().send( + tasks.GetAllRequest(id=[task_id], only_fields=['status', 'status_message']), + ).response.tasks + return all_tasks[0].status, all_tasks[0].status_message + except Exception: + return None, None + diff --git a/clearml/backend_interface/util.py b/clearml/backend_interface/util.py index bbdacab1..89ab1b43 100644 --- a/clearml/backend_interface/util.py +++ b/clearml/backend_interface/util.py @@ -56,7 +56,7 @@ def get_or_create_project(session, project_name, description=None): return None if res.response.projects: return res.response.projects[0].id - res = session.send(projects.CreateRequest(name=project_name, description=description)) + res = session.send(projects.CreateRequest(name=project_name, description=description or '')) return res.response.id