-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Skip invalid containers with a warning #179
base: develop
Are you sure you want to change the base?
Conversation
…ng, loader, inventory, etc.
required = ["id", "name", "namespace", "loader", "representation"] | ||
missing = [key for key in required if key not in data] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
required = ["id", "name", "namespace", "loader", "representation"] | |
missing = [key for key in required if key not in data] | |
required = {"id", "name", "namespace", "loader", "representation"} | |
missing = required - set(data.keys()) |
if missing: | ||
log.warning("Container '%s' is missing required keys: %s", | ||
container, missing) | ||
return {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shoulnd't this return None
rather than empty dictionary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not according to the functions type hint :D
Checked the usage of the function and noticed this may also influence setdress
in maya - so I may want to do this differently.
Changelog Description
Skip invalid containers with a warning - instead of breaking publishi…ng, loader, inventory, etc.
Additional review information
This avoids similar issues as #178 does - but is a 'fix' that would avoid the issue being problematic in existing scenes (instead of just on containerise) or if the container breaks in any other way.
The most likely case for these containers to become invalid was the issue #178 solves by 'bundling' undo so that users can't undo "half of the container creation" deleting only a few of its attributes. However, users can still break things in magical ways, time has shown us.
It would now log e.g. this if the container is incomplete and incomplete containers are not listed in the scene inventory either, because well they are incomplete:
Testing notes:
loader
,representation
, etc.A warning should be logged if any of the required keys ends up missing. The required keys are considered to be
["id", "name", "namespace", "loader", "representation"]