Fix Task.get_models()['input'] returns string instead of clearml.Model

This commit is contained in:
allegroai 2021-10-30 12:15:06 +03:00
parent 308bbe88ed
commit 95f7fb2bd5

View File

@ -80,19 +80,20 @@ class TaskModels(UserDict):
except Exception:
pass
# remove duplicates and preserve order
input_models = OrderedDict(
(m_id, "Input Model #{}".format(i))
for i, m_id in enumerate(
filter(None, map(get_model, OrderedDict.fromkeys(parsed_ids)))
)
)
if not input_models and Session.check_min_api_version("2.13"):
# Only new 2.13 task.models.input in case we have no parsed models
# noinspection PyProtectedMember
if Session.check_min_api_version("2.13") and task._get_task_property(
"models.input", raise_on_error=False, log_on_error=False):
input_models = OrderedDict(
(x.name, get_model(x.model)) for x in task.data.models.input
)
else:
# remove duplicates and preserve order
input_models = OrderedDict(
("Input Model #{}".format(i), a_model)
for i, a_model in enumerate(
filter(None, map(get_model, OrderedDict.fromkeys(parsed_ids)))
)
)
return ModelsList(input_models)