mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
support adding tool group env per task level
This commit is contained in:
parent
39a3271d0c
commit
e669ac7ab2
1 changed files with 18 additions and 42 deletions
|
|
@ -287,17 +287,24 @@ def prepare_app_environments(
|
|||
groups_by_name = {}
|
||||
tool_by_group_name = collections.defaultdict(dict)
|
||||
if task_entity:
|
||||
groups_by_name, environments, app_and_tool_labels = (
|
||||
get_tool_group_enviornment_by_entities(app, task_entity, groups_by_name,
|
||||
tool_by_group_name, environments,
|
||||
app_and_tool_labels)
|
||||
)
|
||||
elif folder_entity:
|
||||
groups_by_name, environments, app_and_tool_labels = (
|
||||
get_tool_group_enviornment_by_entities(app, folder_entity, groups_by_name,
|
||||
tool_by_group_name, environments,
|
||||
app_and_tool_labels)
|
||||
)
|
||||
# Make sure each tool group can be added only once
|
||||
tools_group_by_entity = task_entity["attrib"].get("tools")
|
||||
if folder_entity and not tools_group_by_entity:
|
||||
tools_group_by_entity = folder_entity["attrib"].get("tools")
|
||||
for key in tools_group_by_entity or []:
|
||||
tool = app.manager.tools.get(key)
|
||||
if not tool or not tool.is_valid_for_app(app):
|
||||
continue
|
||||
groups_by_name[tool.group.name] = tool.group
|
||||
tool_by_group_name[tool.group.name][tool.name] = tool
|
||||
|
||||
for group_name in sorted(groups_by_name.keys()):
|
||||
group = groups_by_name[group_name]
|
||||
environments.append(group.environment)
|
||||
for tool_name in sorted(tool_by_group_name[group_name].keys()):
|
||||
tool = tool_by_group_name[group_name][tool_name]
|
||||
environments.append(tool.environment)
|
||||
app_and_tool_labels.append(tool.full_name)
|
||||
|
||||
log.debug(
|
||||
"Will add environments for apps and tools: {}".format(
|
||||
|
|
@ -351,37 +358,6 @@ def prepare_app_environments(
|
|||
data["env"].pop(key, None)
|
||||
|
||||
|
||||
def get_tool_group_enviornment_by_entities(app, entity, groups_by_name,
|
||||
tool_by_group_name, environments,
|
||||
app_and_tool_labels):
|
||||
"""Function to get tool group environment by entities
|
||||
|
||||
Args:
|
||||
app (dict): application
|
||||
entity (dict): entity
|
||||
groups_by_name (dict): group by name
|
||||
tool_by_group_name (dict): tools by group name
|
||||
environments (list): enviornments
|
||||
app_and_tool_labels (list): full name of the application
|
||||
"""
|
||||
# Make sure each tool group can be added only once
|
||||
for key in entity["attrib"].get("tools") or []:
|
||||
tool = app.manager.tools.get(key)
|
||||
if not tool or not tool.is_valid_for_app(app):
|
||||
continue
|
||||
groups_by_name[tool.group.name] = tool.group
|
||||
tool_by_group_name[tool.group.name][tool.name] = tool
|
||||
|
||||
for group_name in sorted(groups_by_name.keys()):
|
||||
group = groups_by_name[group_name]
|
||||
environments.append(group.environment)
|
||||
for tool_name in sorted(tool_by_group_name[group_name].keys()):
|
||||
tool = tool_by_group_name[group_name][tool_name]
|
||||
environments.append(tool.environment)
|
||||
app_and_tool_labels.append(tool.full_name)
|
||||
return groups_by_name, environments, app_and_tool_labels
|
||||
|
||||
|
||||
def apply_project_environments_value(
|
||||
project_name, env, project_settings=None, env_group=None
|
||||
):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue