[Bf-blender-cvs] [23d9953c807] master: I18n tools: Fix issue when extracting messages on release builds.

Bastien Montagne noreply at git.blender.org
Mon Oct 4 12:18:16 CEST 2021


Commit: 23d9953c807f3376212b1a0a31f7a7669e9eb1ac
Author: Bastien Montagne
Date:   Mon Oct 4 12:16:55 2021 +0200
Branches: master
https://developer.blender.org/rB23d9953c807f3376212b1a0a31f7a7669e9eb1ac

I18n tools: Fix issue when extracting messages on release builds.

This was also affecting prototype of buildbot-driven UI messages
extraction...

===================================================================

M	release/scripts/modules/bl_i18n_utils/bl_extract_messages.py

===================================================================

diff --git a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
index 3355e9075a0..6c9c212387e 100644
--- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
+++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
@@ -378,7 +378,15 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
             if cls in blacklist_rna_class:
                 return cls.__name__
             cls_id = ""
-            bl_rna = cls.bl_rna
+            bl_rna = getattr(cls, "bl_rna", None)
+            # It seems that py-defined 'wrappers' RNA classes (like `MeshEdge` in `bpy_types.py`) need to be accessed
+            # once from `bpy.types` before they have a valid `bl_rna` member.
+            # Weirdly enough, this is only triggered on release builds, debug builds somehow do not have that issue.
+            if bl_rna is None:
+                if getattr(bpy.types, cls.__name__, None) is not None:
+                    bl_rna = getattr(cls, "bl_rna", None)
+                if bl_rna is None:
+                    raise TypeError("Unknown RNA class")
             while bl_rna:
                 cls_id = bl_rna.identifier + "." + cls_id
                 bl_rna = bl_rna.base



More information about the Bf-blender-cvs mailing list