global: simplification of ExctractorColormanaged

so it caches `imageioSettings` to context.data for speeding up processing of all instances in context.
This commit is contained in:
Jakub Jezek 2023-01-11 17:26:45 +01:00
parent 2cf862e1ef
commit 5cab4d0501
No known key found for this signature in database
GPG key ID: 730D7C02726179A7
3 changed files with 19 additions and 10 deletions

View file

@ -21,10 +21,6 @@ class NukeRenderLocal(publish.ExtractorColormanaged):
families = ["render.local", "prerender.local", "still.local"]
def process(self, instance):
# get colorspace settings data
config_data, file_rules = self.get_colorspace_settings(
instance.context)
families = instance.data["families"]
node = None
@ -98,7 +94,6 @@ class NukeRenderLocal(publish.ExtractorColormanaged):
# inject colorspace data
self.set_representation_colorspace(
repre, instance.context,
config_data, file_rules,
colorspace=colorspace
)

View file

@ -317,6 +317,9 @@ class ExtractorColormanaged(Extractor):
Returns:
tuple | bool: config, file rules or None
"""
if "imageioSettings" in context.data:
return context.data["imageioSettings"]
project_name = context.data["projectName"]
host_name = context.data["hostName"]
anatomy_data = context.data["anatomyData"]
@ -331,12 +334,16 @@ class ExtractorColormanaged(Extractor):
project_name, host_name,
project_settings=project_settings_
)
# caching settings for future instance processing
context.data["imageioSettings"] = (config_data, file_rules)
return config_data, file_rules
def set_representation_colorspace(
self, representation, context,
config_data, file_rules,
colorspace=None
colorspace=None,
colorspace_settings=None
):
"""Sets colorspace data to representation.
@ -346,6 +353,9 @@ class ExtractorColormanaged(Extractor):
config_data (dict): host resolved config data
file_rules (dict): host resolved file rules data
colorspace (str, optional): colorspace name. Defaults to None.
colorspace_settings (tuple[dict, dict], optional):
Settings for config_data and file_rules.
Defaults to None.
Example:
```
@ -362,6 +372,12 @@ class ExtractorColormanaged(Extractor):
```
"""
if colorspace_settings is None:
colorspace_settings = self.get_colorspace_settings(context)
# unpack colorspace settings
config_data, file_rules = colorspace_settings
if not config_data:
# warn in case no colorspace path was defined
self.log.warning("No colorspace management was defined")

View file

@ -35,7 +35,6 @@ class ExtractColorspaceData(publish.ExtractorColormanaged):
# get colorspace settings
context = instance.context
config_data, file_rules = self.get_colorspace_settings(context)
# loop representations
for representation in representations:
@ -44,6 +43,5 @@ class ExtractColorspaceData(publish.ExtractorColormanaged):
continue
self.set_representation_colorspace(
representation, context,
config_data, file_rules
representation, context
)