imlemented action that check and reset invalid metadata key

This commit is contained in:
iLLiCiTiT 2020-12-11 14:42:01 +01:00
parent 364a52bfb6
commit 04da60da6f

View file

@ -6,6 +6,36 @@ import avalon.api
from avalon.tvpaint import pipeline, lib
class ResetTVPaintWorkfileMetadata(pyblish.api.Action):
"""Fix invalid metadata in workfile."""
label = "Reset invalid workfile metadata"
on = "failed"
def process(self, context, plugin):
metadata_keys = {
pipeline.SECTION_NAME_CONTEXT: {},
pipeline.SECTION_NAME_INSTANCES: [],
pipeline.SECTION_NAME_CONTAINERS: []
}
for metadata_key, default in metadata_keys.items():
json_string = pipeline.get_workfile_metadata_string(metadata_key)
if not json_string:
continue
try:
return json.loads(json_string)
except Exception:
self.log.warning(
(
"Couldn't parse metadata from key \"{}\"."
" Will reset to default value \"{}\"."
" Loaded value was: {}"
).format(metadata_key, default, json_string),
exc_info=True
)
pipeline.write_workfile_metadata(metadata_key, default)
class CollectWorkfileData(pyblish.api.ContextPlugin):
label = "Collect Workfile Data"
order = pyblish.api.CollectorOrder - 1.01