Skip to content

Commit

Permalink
Merge pull request #103 from ynput/enhancement/OP-8316_Use-folder-in-…
Browse files Browse the repository at this point in the history
…current-context

Chore: Use folder path in current context
  • Loading branch information
iLLiCiTiT authored Feb 27, 2024
2 parents 4a78526 + fb28784 commit 3dd124a
Show file tree
Hide file tree
Showing 25 changed files with 58 additions and 58 deletions.
2 changes: 1 addition & 1 deletion client/ayon_core/cli_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ def publish(paths, targets=None, gui=False):
context = get_global_context()
env = get_app_environments_for_context(
context["project_name"],
context["asset_name"],
context["folder_path"],
context["task_name"],
app_full_name,
launch_type=LaunchTypes.farm_publish,
Expand Down
2 changes: 1 addition & 1 deletion client/ayon_core/hooks/pre_copy_template_workfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def execute(self):
self.log.info("Last workfile does not exist.")

project_name = self.data["project_name"]
asset_name = self.data["asset_name"]
asset_name = self.data["folder_path"]
task_name = self.data["task_name"]
host_name = self.application.host_name

Expand Down
4 changes: 2 additions & 2 deletions client/ayon_core/hooks/pre_global_host_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def execute(self):
app = self.launch_context.application
temp_data = EnvironmentPrepData({
"project_name": self.data["project_name"],
"asset_name": self.data["asset_name"],
"folder_path": self.data["folder_path"],
"task_name": self.data["task_name"],

"app": app,
Expand Down Expand Up @@ -66,7 +66,7 @@ def prepare_global_data(self):
project_doc = get_project(project_name)
self.data["project_doc"] = project_doc

asset_name = self.data.get("asset_name")
asset_name = self.data.get("folder_path")
if not asset_name:
self.log.warning(
"Asset name was not set. Skipping asset document query."
Expand Down
2 changes: 1 addition & 1 deletion client/ayon_core/hooks/pre_ocio_hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def execute(self):

template_data = get_template_data_with_names(
project_name=self.data["project_name"],
asset_name=self.data["asset_name"],
asset_name=self.data["folder_path"],
task_name=self.data["task_name"],
host_name=self.host_name,
system_settings=self.data["system_settings"]
Expand Down
6 changes: 3 additions & 3 deletions client/ayon_core/host/host.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,12 @@ def get_current_context(self):
Returns:
Dict[str, Union[str, None]]: Context with 3 keys 'project_name',
'asset_name' and 'task_name'. All of them can be 'None'.
'folder_path' and 'task_name'. All of them can be 'None'.
"""

return {
"project_name": self.get_current_project_name(),
"asset_name": self.get_current_asset_name(),
"folder_path": self.get_current_asset_name(),
"task_name": self.get_current_task_name()
}

Expand All @@ -161,7 +161,7 @@ def get_context_title(self):
# Use current context to fill the context title
current_context = self.get_current_context()
project_name = current_context["project_name"]
asset_name = current_context["asset_name"]
asset_name = current_context["folder_path"]
task_name = current_context["task_name"]
items = []
if project_name:
Expand Down
2 changes: 1 addition & 1 deletion client/ayon_core/hosts/aftereffects/api/lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def set_settings(frames, resolution, comp_ids=None, print_msg=True):
current_context = get_current_context()

asset_doc = get_asset_by_name(current_context["project_name"],
current_context["asset_name"])
current_context["folder_path"])
settings = get_asset_settings(asset_doc)

msg = ''
Expand Down
2 changes: 1 addition & 1 deletion client/ayon_core/hosts/houdini/api/lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -835,7 +835,7 @@ def get_current_context_template_data_with_asset_data():

context = get_current_context()
project_name = context["project_name"]
asset_name = context["asset_name"]
asset_name = context["folder_path"]
task_name = context["task_name"]
host_name = get_current_host_name()

Expand Down
5 changes: 1 addition & 4 deletions client/ayon_core/hosts/nuke/api/lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -1950,10 +1950,7 @@ def __init__(self, root_node=None, nodes=None, **kwargs):

Context._project_doc = project_doc
self._project_name = project_name
self._asset = (
kwargs.get("asset_name")
or get_current_asset_name()
)
self._asset = get_current_asset_name()
self._asset_entity = get_asset_by_name(project_name, self._asset)
self._root_node = root_node or nuke.root()
self._nodes = self.get_nodes(nodes=nodes)
Expand Down
6 changes: 4 additions & 2 deletions client/ayon_core/hosts/tvpaint/api/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def get_current_asset_name(self):
Union[str, None]: Current asset name.
"""

return self.get_current_context().get("asset_name")
return self.get_current_context().get("folder_path")

def get_current_task_name(self):
"""
Expand All @@ -115,11 +115,13 @@ def get_current_context(self):
return get_global_context()

if "project_name" in context:
if "asset_name" in context:
context["folder_path"] = context["asset_name"]
return context
# This is legacy way how context was stored
return {
"project_name": context.get("project"),
"asset_name": context.get("asset"),
"folder_path": context.get("asset"),
"task_name": context.get("task")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def load(self, context, name, namespace, options):
if not asset_name:
context = get_current_context()
project_name = context["project_name"]
asset_name = context["asset_name"]
asset_name = context["folder_path"]
task_name = context["task_name"]

template_key = get_workfile_template_key_from_context(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def process(self, context):
# Collect and store current context to have reference
current_context = {
"project_name": context.data["projectName"],
"asset_name": context.data["folderPath"],
"folder_path": context.data["folderPath"],
"task_name": context.data["task"]
}
self.log.debug("Current context is: {}".format(current_context))
Expand All @@ -77,26 +77,26 @@ def process(self, context):
if "project" in workfile_context:
workfile_context = {
"project_name": workfile_context.get("project"),
"asset_name": workfile_context.get("asset"),
"folder_path": workfile_context.get("asset"),
"task_name": workfile_context.get("task"),
}
# Store workfile context to pyblish context
context.data["workfile_context"] = workfile_context
if workfile_context:
# Change current context with context from workfile
key_map = (
("AYON_FOLDER_PATH", "asset_name"),
("AYON_FOLDER_PATH", "folder_path"),
("AYON_TASK_NAME", "task_name")
)
for env_key, key in key_map:
os.environ[env_key] = workfile_context[key]
self.log.info("Context changed to: {}".format(workfile_context))

asset_name = workfile_context["asset_name"]
asset_name = workfile_context["folder_path"]
task_name = workfile_context["task_name"]

else:
asset_name = current_context["asset_name"]
asset_name = current_context["folder_path"]
task_name = current_context["task_name"]
# Handle older workfiles or workfiles without metadata
self.log.warning((
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class ValidateWorkfileMetadata(pyblish.api.ContextPlugin):

actions = [ValidateWorkfileMetadataRepair]

required_keys = {"project_name", "asset_name", "task_name"}
required_keys = {"project_name", "folder_path", "task_name"}

def process(self, context):
workfile_context = context.data["workfile_context"]
Expand Down
8 changes: 4 additions & 4 deletions client/ayon_core/lib/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ def launch(self, app_name, **data):
"""Launch procedure.
For host application it's expected to contain "project_name",
"asset_name" and "task_name".
"folder_path" and "task_name".
Args:
app_name (str): Name of application that should be launched.
Expand Down Expand Up @@ -1406,7 +1406,7 @@ def __init__(self, data):

def get_app_environments_for_context(
project_name,
asset_name,
folder_path,
task_name,
app_name,
env_group=None,
Expand All @@ -1417,7 +1417,7 @@ def get_app_environments_for_context(
"""Prepare environment variables by context.
Args:
project_name (str): Name of project.
asset_name (str): Name of asset.
folder_path (str): Folder path.
task_name (str): Name of task.
app_name (str): Name of application that is launched and can be found
by ApplicationManager.
Expand All @@ -1439,7 +1439,7 @@ def get_app_environments_for_context(
context = app_manager.create_launch_context(
app_name,
project_name=project_name,
asset_name=asset_name,
folder_path=folder_path,
task_name=task_name,
env_group=env_group,
launch_type=launch_type,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ class PostStartTimerHook(PostLaunchHook):

def execute(self):
project_name = self.data.get("project_name")
asset_name = self.data.get("asset_name")
asset_name = self.data.get("folder_path")
task_name = self.data.get("task_name")

missing_context_keys = set()
if not project_name:
missing_context_keys.add("project_name")
if not asset_name:
missing_context_keys.add("asset_name")
missing_context_keys.add("folder_path")
if not task_name:
missing_context_keys.add("task_name")

Expand Down
8 changes: 4 additions & 4 deletions client/ayon_core/modules/timers_manager/rest_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ async def start_timer(self, request):
data = await request.json()
try:
project_name = data["project_name"]
asset_name = data["asset_name"]
asset_name = data["folder_path"]
task_name = data["task_name"]
except KeyError:
msg = (
"Payload must contain fields 'project_name,"
" 'asset_name' and 'task_name'"
" 'folder_path' and 'task_name'"
)
self.log.error(msg)
return Response(status=400, message=msg)
Expand All @@ -71,11 +71,11 @@ async def get_task_time(self, request):
data = await request.json()
try:
project_name = data['project_name']
asset_name = data['asset_name']
asset_name = data['folder_path']
task_name = data['task_name']
except KeyError:
message = (
"Payload must contain fields 'project_name, 'asset_name',"
"Payload must contain fields 'project_name, 'folder_path',"
" 'task_name'"
)
self.log.warning(message)
Expand Down
4 changes: 2 additions & 2 deletions client/ayon_core/modules/timers_manager/timers_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ def start_timer_with_webserver(
return
data = {
"project_name": project_name,
"asset_name": asset_name,
"folder_path": asset_name,
"task_name": task_name
}

Expand Down Expand Up @@ -472,7 +472,7 @@ def on_host_install(self, host, host_name, project_name):

def _on_host_task_change(self, event):
project_name = event["project_name"]
asset_name = event["asset_name"]
asset_name = event["folder_path"]
task_name = event["task_name"]
self.log.debug((
"Sending message that timer should change to"
Expand Down
14 changes: 7 additions & 7 deletions client/ayon_core/pipeline/context_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ def get_global_context():
Example:
{
"project_name": "Commercial",
"asset_name": "Bunny",
"folder_path": "Bunny",
"task_name": "Animation",
}
Expand All @@ -366,7 +366,7 @@ def get_global_context():

return {
"project_name": os.environ.get("AYON_PROJECT_NAME"),
"asset_name": os.environ.get("AYON_FOLDER_PATH"),
"folder_path": os.environ.get("AYON_FOLDER_PATH"),
"task_name": os.environ.get("AYON_TASK_NAME"),
}

Expand All @@ -389,7 +389,7 @@ def get_current_asset_name():
host = registered_host()
if isinstance(host, HostBase):
return host.get_current_asset_name()
return get_global_context()["asset_name"]
return get_global_context()["folder_path"]


def get_current_task_name():
Expand Down Expand Up @@ -481,7 +481,7 @@ def get_template_data_from_session(session=None, system_settings=None):
else:
context = get_current_context()
project_name = context["project_name"]
asset_name = context["asset_name"]
asset_name = context["folder_path"]
task_name = context["task_name"]
host_name = get_current_host_name()

Expand All @@ -502,7 +502,7 @@ def get_current_context_template_data(system_settings=None):

context = get_current_context()
project_name = context["project_name"]
asset_name = context["asset_name"]
asset_name = context["folder_path"]
task_name = context["task_name"]
host_name = get_current_host_name()

Expand Down Expand Up @@ -573,7 +573,7 @@ def get_custom_workfile_template_from_session(
else:
context = get_current_context()
project_name = context["project_name"]
asset_name = context["asset_name"]
asset_name = context["folder_path"]
task_name = context["task_name"]
host_name = get_current_host_name()

Expand Down Expand Up @@ -634,7 +634,7 @@ def change_current_context(asset_doc, task_name, template_key=None):

# Convert env keys to human readable keys
data["project_name"] = project_name
data["asset_name"] = get_asset_name_identifier(asset_doc)
data["folder_path"] = get_asset_name_identifier(asset_doc)
data["task_name"] = task_name
data["workdir_path"] = workdir

Expand Down
2 changes: 1 addition & 1 deletion client/ayon_core/pipeline/create/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -1686,7 +1686,7 @@ def _get_current_host_context(self):
host_context = self.host.get_current_context()
if host_context:
project_name = host_context.get("project_name")
asset_name = host_context.get("asset_name")
asset_name = host_context.get("folder_path")
task_name = host_context.get("task_name")

if isinstance(self.host, IWorkfileHost):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def get_current_context(self):
return self._host.get_current_context()
return {
"project_name": self.project_name,
"asset_name": self.current_asset_name,
"folder_path": self.current_asset_name,
"task_name": self.current_task_name
}

Expand Down Expand Up @@ -1795,7 +1795,7 @@ def populate_create_placeholder(self, placeholder, pre_create_data=None):
# create subset name
context = self._builder.get_current_context()
project_name = context["project_name"]
asset_name = context["asset_name"]
asset_name = context["folder_path"]
task_name = context["task_name"]

if legacy_create:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def process(self, context):
context.data["projectName"] = current_context["project_name"]

if not asset_name:
context.data["folderPath"] = current_context["asset_name"]
context.data["folderPath"] = current_context["folder_path"]

if not task_name:
context.data["task"] = current_context["task_name"]
Expand Down
2 changes: 1 addition & 1 deletion client/ayon_core/tools/adobe_webserver/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ async def send_context_change(self, host):

context = get_global_context()
project = context["project_name"]
asset = context["asset_name"]
asset = context["folder_path"]
task = context["task_name"]
log.info("Sending context change to {}-{}-{}".format(project,
asset,
Expand Down
Loading

0 comments on commit 3dd124a

Please sign in to comment.