[Bf-blender-cvs] [74361eebe68] blender2.8: Fix T58772: Stray "forward" and "up" options in 2.8 import addons?
Bastien Montagne
noreply at git.blender.org
Wed Dec 5 11:09:06 CET 2018
Commit: 74361eebe68c03e73e2b3587988c9d68bd742fe0
Author: Bastien Montagne
Date: Wed Dec 5 10:57:08 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB74361eebe68c03e73e2b3587988c9d68bd742fe0
Fix T58772: Stray "forward" and "up" options in 2.8 import addons?
Nice side-effect of using new __annotations__ thingy to store
dynamically-generated fields in a class: __annotations__ dict is not
ensured to exist for a given class, so we may end up modifying on of the
parents' one!
===================================================================
M release/scripts/modules/bpy_extras/io_utils.py
===================================================================
diff --git a/release/scripts/modules/bpy_extras/io_utils.py b/release/scripts/modules/bpy_extras/io_utils.py
index 4b28a9edf70..420c2bfc929 100644
--- a/release/scripts/modules/bpy_extras/io_utils.py
+++ b/release/scripts/modules/bpy_extras/io_utils.py
@@ -127,6 +127,11 @@ def orientation_helper(axis_forward='Y', axis_up='Z'):
with specified default values (axes).
"""
def wrapper(cls):
+ # Without that, we may end up adding those fields to some **parent** class' __annotations__ property
+ # (like the ImportHelper or ExportHelper ones)! See T58772.
+ if "__annotations__" not in cls.__dict__:
+ cls.__dict__["__annotations__"] = {}
+
def _update_axis_forward(self, context):
if self.axis_forward[-1] == self.axis_up[-1]:
self.axis_up = (self.axis_up[0:-1] +
More information about the Bf-blender-cvs
mailing list