From b98c821cf92d2a648733955fc709b3f42596e844 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Sun, 15 Sep 2019 00:02:23 +0300 Subject: [PATCH] Fix task cloning --- trains/backend_api/services/v2_2/tasks.py | 1 + trains/backend_interface/task/task.py | 10 ++++++++-- trains/task.py | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/trains/backend_api/services/v2_2/tasks.py b/trains/backend_api/services/v2_2/tasks.py index d2d5df77..8db56b9f 100644 --- a/trains/backend_api/services/v2_2/tasks.py +++ b/trains/backend_api/services/v2_2/tasks.py @@ -1705,6 +1705,7 @@ class CreateRequest(Request): self.assert_isinstance(value, "project", six.string_types) self._property_project = value + @schema_property('input') def input(self): return self._property_input diff --git a/trains/backend_interface/task/task.py b/trains/backend_interface/task/task.py index e39c63f4..563b8317 100644 --- a/trains/backend_interface/task/task.py +++ b/trains/backend_interface/task/task.py @@ -805,11 +805,17 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin): execution = task.execution.to_dict() if task.execution else {} execution = ConfigTree.merge_configs(ConfigFactory.from_dict(execution), ConfigFactory.from_dict(execution_overrides or {})) + # clear all artifacts + execution['artifacts'] = [e for e in execution['artifacts'] if e.get('mode') != 'output'] + + if not tags and task.tags: + tags = [t for t in task.tags if t != cls._development_tag] + req = tasks.CreateRequest( name=name or task.name, type=task.type, - input=task.input, - tags=tags if tags is not None else task.tags, + input=task.input if hasattr(task, 'input') else {'view': {}}, + tags=tags, comment=comment or task.comment, parent=parent, project=project if project else task.project, diff --git a/trains/task.py b/trains/task.py index b58c7f86..93688f1c 100644 --- a/trains/task.py +++ b/trains/task.py @@ -1252,7 +1252,7 @@ class Task(_Task): tasks.GetAllRequest( project=[project.id], name=exact_match_regex(task_name), - only_fields=['id', 'name'] + only_fields=['id', 'name', 'last_update'] ) ) task = get_single_result(entity='task', query=task_name, results=res.response.tasks)