diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-02-24 15:36:15 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-02-24 15:39:38 +0300 |
commit | 0c0553ace7b31107ba03952e013d802a5f6b1f35 (patch) | |
tree | 6dbc17716de0ad4ff56f4c76dc83d2d27d49257e /release | |
parent | 5c098ef58c4b1b8e9111d33ae64fda8a300dd84d (diff) |
Fix T85915: Cannot save new theme preset
Since making bpy.types a real module `dir(bpy.types)` now includes
__dir__ and __getattr__ methods which need to be ignored.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/modules/rna_xml.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/release/scripts/modules/rna_xml.py b/release/scripts/modules/rna_xml.py index d9fc09e7d18..58abb5c90db 100644 --- a/release/scripts/modules/rna_xml.py +++ b/release/scripts/modules/rna_xml.py @@ -26,14 +26,21 @@ def build_property_typemap(skip_classes, skip_typemap): property_typemap = {} for attr in dir(bpy.types): + # Skip internal methods. + if attr.startswith("_"): + continue cls = getattr(bpy.types, attr) if issubclass(cls, skip_classes): continue + bl_rna = getattr(cls, "bl_rna", None) + # Needed to skip classes added to the modules `__dict__`. + if bl_rna is None: + continue # # to support skip-save we can't get all props - # properties = cls.bl_rna.properties.keys() + # properties = bl_rna.properties.keys() properties = [] - for prop_id, prop in cls.bl_rna.properties.items(): + for prop_id, prop in bl_rna.properties.items(): if not prop.is_skip_save: properties.append(prop_id) |