Fix passing task-type to clearml-task (issue #422)

Fix passing clearml-task --version throwing an error (issue #422)
This commit is contained in:
allegroai 2021-08-13 23:55:18 +03:00
parent ce8f35a232
commit 7927f909f2
2 changed files with 12 additions and 6 deletions

View File

@ -307,12 +307,15 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin):
def _auto_generate(self, project_name=None, task_name=None, task_type=TaskTypes.training):
created_msg = make_message('Auto-generated at %(time)s UTC by %(user)s@%(host)s')
if task_type.value not in (self.TaskTypes.training, self.TaskTypes.testing) and \
if isinstance(task_type, self.TaskTypes):
task_type = task_type.value
if task_type not in (self.TaskTypes.training.value, self.TaskTypes.testing.value) and \
not Session.check_min_api_version('2.8'):
print('WARNING: Changing task type to "{}" : '
'clearml-server does not support task type "{}", '
'please upgrade clearml-server.'.format(self.TaskTypes.training, task_type.value))
task_type = self.TaskTypes.training
'please upgrade clearml-server.'.format(self.TaskTypes.training, task_type))
task_type = self.TaskTypes.training.value
project_id = None
if project_name:
@ -322,7 +325,7 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin):
extra_properties = {'system_tags': tags} if Session.check_min_api_version('2.3') else {'tags': tags}
req = tasks.CreateRequest(
name=task_name or make_message('Anonymous task (%(user)s@%(host)s %(time)s)'),
type=tasks.TaskTypeEnum(task_type.value),
type=tasks.TaskTypeEnum(task_type),
comment=created_msg,
project=project_id,
input={'view': {}},

View File

@ -3,6 +3,7 @@ from argparse import ArgumentParser
from pathlib2 import Path
from clearml import Task
from clearml.version import __version__
from clearml.backend_interface.task.populate import CreateAndPopulate
@ -12,7 +13,7 @@ def setup_parser(parser):
parser.add_argument('--project', type=str, default=None,
help='Required: set the project name for the task. '
'If --base-task-id is used, this arguments is optional.')
parser.add_argument('--name', type=str, default=None, required=True,
parser.add_argument('--name', type=str, default=None,
help='Required: select a name for the remote task')
parser.add_argument('--repo', type=str, default=None,
help='remote URL for the repository to use. '
@ -80,10 +81,12 @@ def cli():
args = parser.parse_args()
if args.version:
from ...version import __version__
print('Version {}'.format(__version__))
exit(0)
if not args.name:
raise ValueError("Task name must be provided, use `--name <task-name>`")
if args.docker_bash_setup_script and Path(args.docker_bash_setup_script).is_file():
with open(args.docker_bash_setup_script, "r") as bash_setup_script_file:
bash_setup_script = bash_setup_script_file.readlines()